diff --git a/social/backends/reddit.py b/social/backends/reddit.py index 96be7f811..d7eaa1219 100644 --- a/social/backends/reddit.py +++ b/social/backends/reddit.py @@ -5,6 +5,7 @@ import base64 from social.backends.oauth import BaseOAuth2 +import sys class RedditOAuth2(BaseOAuth2): @@ -49,3 +50,13 @@ def refresh_token_params(self, token, redirect_uri=None, *args, **kwargs): params = super(RedditOAuth2, self).refresh_token_params(token) params['redirect_uri'] = self.redirect_uri or redirect_uri return params + + def request(self, url, method='GET', *args, **kwargs): + """override request so User-Agent does not get lumped in with all urllib hits on reddit (results in "429 Too Many Requests") + http://stackoverflow.com/questions/13213048/urllib2-http-error-429""" + ua = 'python-social-auth-' + sys.modules['social'].__version__ + if 'headers' not in kwargs: + kwargs.set('headers', {}) + if 'User-Agent' not in kwargs['headers']: + kwargs['headers']['User-Agent'] = ua + return super(RedditOAuth2, self).request(url, method, *args, **kwargs)