Добавление поддержки таланта в reddit_api - PullRequest
1 голос
/ 25 ноября 2011

Я пытаюсь добавить поддержку reddit flair api в reddit_api , но, похоже, никуда не денусь.

Я добавилследующее к urls.py:

  ("api/", {
            ...
            "flair": "flair/"
           }),

и следующее к reddit.py:

@require_login
def set_flair(self, subreddit, user, text='', css_class=''):
    """Set flair of user in given subreddit"""
    url = urls["flair"]
    params = {'r': subreddit,
              'user': user,
              'text': text,
              'css_class': css_class,
              'uh': self.modhash}
    return self._request_json(url, params)

Но мой код, похоже, не имеет заметного эффекта:

import reddit

r = reddit.Reddit(user_agent='User rating modifier')
r.login(user='xxxx', password='xxxx')
r.set_flair('subreddit', 'username', 'textflair', 'cssclass')

Я не получаю сообщение об ошибке, но пользовательский талант не добавляется в Reddit.Другие функции reddit_api отлично работают для меня, и у меня есть все необходимые права модератора на reddit.Я где-то ошибся с моим кодом?

1 Ответ

2 голосов
/ 29 ноября 2011

Вот рабочая set_flair функция:

@require_login
def set_flair(self, subreddit, user, text='', css_class=''):
    """Set flair of user in given subreddit"""
    url = urls["flair"]
    params = {'r': subreddit,
              'name': user,
              'text': text,
              'css_class': css_class,
              'uh': self.user.modhash}
    return self._request_json(url, params)

Первая ошибка, которую я получил после запуска вашего кода, была .error.USER_REQUIRED («пожалуйста, войдите, чтобы сделать это»). В API конкретно указано, , что требуется модхэш пользователя. Поэтому я изменил self.modhash на self.user.modhash.

Вторая ошибка была .error.NO_USER.field-name. И это было всего лишь вопрос изменения параметра user на name.

...