Fix Cursor pagination mode detection.
authorJosh Roesslein <jroesslein@gmail.com>
Tue, 13 Oct 2009 22:19:22 +0000 (17:19 -0500)
committerJosh Roesslein <jroesslein@gmail.com>
Tue, 13 Oct 2009 22:19:22 +0000 (17:19 -0500)
tweepy/api.py
tweepy/binder.py
tweepy/cursor.py

index 591b88ced273e4d3393f2f14f258698e50b3450d..64a850d9c44061404b6b50992f1602a0a6692998 100644 (file)
@@ -946,6 +946,7 @@ class API(object):
             parser = parse_search_results,
             allowed_param = ['q', 'lang', 'locale', 'rpp', 'page', 'since_id', 'geocode', 'show_user'],
         )(self, *args, **kargs)
+    search.pagination_mode = 'page'
 
     """ trends
 
index bf00139bba6d1ba2c225b708d86a2cafc35d3c91..008850110ed8ab1a1d81aae9e9a830a970ea5b70 100644 (file)
@@ -21,7 +21,7 @@ except ImportError:
             raise ImportError, "Can't load a json library"
 
 
-def bind_api(path, parser, allowed_param=None, method='GET', require_auth=False,
+def bind_api(path, parser, allowed_param=[], method='GET', require_auth=False,
               timeout=None, host=None):
 
     def _call(api, *args, **kargs):
@@ -186,8 +186,12 @@ def bind_api(path, parser, allowed_param=None, method='GET', require_auth=False,
 
         return out
 
-    # Expose extra data in callable object
-    _call.allowed_param = allowed_param
+
+    # Set pagination mode
+    if 'cursor' in allowed_param:
+        _call.pagination_mode = 'cursor'
+    elif 'page' in allowed_param:
+        _call.pagination_mode = 'page'
 
     return _call
 
index 035ce8999d0f697ccf546dfb263bb3d930a427ab..1def5fd8a1ad58a108ff45edfea90c347221c548 100644 (file)
@@ -8,10 +8,11 @@ class Cursor(object):
     """Pagination helper class"""
 
     def __init__(self, method, *args, **kargs):
-        if 'cursor' in method.allowed_param:
-            self.iterator = CursorIterator(method, args, kargs)
-        elif 'page' in method.allowed_param:
-            self.iterator = PageIterator(method, args, kargs)
+        if hasattr(method, 'pagination_mode'):
+            if method.pagination_mode == 'cursor':
+                self.iterator = CursorIterator(method, args, kargs)
+            else:
+                self.iterator = PageIterator(method, args, kargs)
         else:
             raise TweepError('This method does not perform pagination')