Support setting the starting cursor position...
authorRuxandra Burtica <ruxandra.burtica@gmail.com>
Fri, 27 Dec 2013 18:04:19 +0000 (12:04 -0600)
committerJoshua Roesslein <jroesslein@gmail.com>
Fri, 27 Dec 2013 18:08:46 +0000 (12:08 -0600)
Ex: Cursor(api.friends_ids, cursor=123456)

The cursor will start iterating at position 12456 rather
than the first "page" (position -1).

Based on original work by Ruxandra Burtica in Pull request #194.

tests/test_cursors.py
tweepy/cursor.py

index 44e7893e4c5b2c7d7ce511c7a9c79fcf968474f6..fb048473484d8fbe1e155f820028573fe6e359ea 100644 (file)
@@ -31,3 +31,8 @@ class TweepyCursorTests(unittest.TestCase):
         pages = list(Cursor(self.api.followers_ids, 'twitter').pages(1))
         self.assert_(len(pages) == 1)
 
+    def testcursorsetstartcursor(self):
+        c = Cursor(self.api.friends_ids, cursor=123456)
+        self.assertEqual(c.iterator.next_cursor, 123456)
+        self.assertFalse('cursor' in c.iterator.kargs)
+
index 9061bfd6c50076e2156511188c661516e28d50f2..4c06f17a9f2fab3af9885f831c17c2c7fde1152a 100644 (file)
@@ -53,8 +53,9 @@ class CursorIterator(BaseIterator):
 
     def __init__(self, method, args, kargs):
         BaseIterator.__init__(self, method, args, kargs)
-        self.next_cursor = -1
-        self.prev_cursor = 0
+        start_cursor = kargs.pop('cursor', None)
+        self.next_cursor = start_cursor or -1
+        self.prev_cursor = start_cursor or 0
         self.count = 0
 
     def next(self):