Some corrections for twython cursor

It’s now working properly for search and get_user_timeline. I didn’t
test other functions though.
This commit is contained in:
s0ckz 2014-06-02 13:02:40 -03:00
parent f4496ec8b2
commit faeebad921

View file

@ -430,19 +430,15 @@ class Twython(EndpointsMixin, object):
if function.iter_mode == 'cursor' and content['next_cursor_str'] == '0':
raise StopIteration
try:
if function.iter_mode == 'id':
if not 'max_id' in params:
# Add 1 to the id because since_id and max_id are inclusive
if hasattr(function, 'iter_metadata'):
since_id = content[function.iter_metadata].get('since_id_str')
else:
since_id = content[0]['id_str']
params['since_id'] = (int(since_id) - 1)
elif function.iter_mode == 'cursor':
params['cursor'] = content['next_cursor_str']
except (TypeError, ValueError): # pragma: no cover
raise TwythonError('Unable to generate next page of search results, `page` is not a number.')
if function.iter_mode == 'id':
if hasattr(function, 'iter_key') and len(content[function.iter_key]) > 0:
params['max_id'] = min(content[function.iter_key], key=lambda i: i['id'])['id'] - 1
elif not hasattr(function, 'iter_key') and len(content) > 0:
params['max_id'] = min(content, key=lambda i: i['id'])['id'] - 1
else:
raise StopIteration
elif function.iter_mode == 'cursor':
params['cursor'] = content['next_cursor_str']
@staticmethod
def unicode2utf8(text):