@property
def rate_limit_limit(self):
"""
- Remaining requests in the current rate-limit.
+ The rate limit ceiling for that given request.
"""
return int(self.headers.get('X-Rate-Limit-Limit', "0"))
if _id:
kwargs['id'] = _id
+ # If an _timeout is specified in kwargs, use it
+ _timeout = kwargs.pop('_timeout', None)
+
secure_str = ''
if self.secure:
secure_str = 's'
body = None
else:
body = arg_data.encode('utf8')
+
req = urllib_request.Request(uriBase, body, headers)
- return self._handle_response(req, uri, arg_data)
+ return self._handle_response(req, uri, arg_data, _timeout)
- def _handle_response(self, req, uri, arg_data):
+ def _handle_response(self, req, uri, arg_data, _timeout=None):
+ kwargs = {}
+ if _timeout:
+ kwargs['timeout'] = _timeout
try:
- handle = urllib_request.urlopen(req)
+ handle = urllib_request.urlopen(req, **kwargs)
if handle.headers['Content-Type'] in ['image/jpeg', 'image/png']:
return handle
elif handle.info().get('Content-Encoding') == 'gzip':
t = Twitter(
auth=OAuth(token, token_key, con_secret, con_secret_key)))
- # Get the public timeline
- t.statuses.public_timeline()
+ # Get your "home" timeline
+ t.statuses.home_timeline()
# Get a particular friend's timeline
t.statuses.friends_timeline(id="billybob")
# into the middle of a call. You can also use replacement:
t.user.list.members(user="tamtar", list="things-that-are-rad")
+ # An *optional* `_timeout` parameter can also be used for API
+ # calls which take much more time than normal or twitter stops
+ # responding for some reasone
+ t.users.lookup(
+ screen_name=','.join(A_LIST_OF_100_SCREEN_NAMES), \
+ _timeout=1)
- Searching Twitter::
- twitter_search = Twitter(domain="search.twitter.com")
- # Find the latest search trends
- twitter_search.trends()
+ Searching Twitter::
- # Search for the latest News on #gaza
- twitter_search.search(q="#gaza")
+ # Search for the latest tweets about #pycon
+ t.search.tweets(q="#pycon")
Using the data returned
Twitter API calls return decoded JSON. This is converted into
a bunch of Python lists, dicts, ints, and strings. For example::
- x = twitter.statuses.public_timeline()
+ x = twitter.statuses.home_timeline()
# The first 'tweet' in the timeline
x[0]