Added snippet for handling rate limit using cursors.
authorobskyr <powpowd@gmail.com>
Thu, 15 Oct 2015 13:54:40 +0000 (15:54 +0200)
committerobskyr <powpowd@gmail.com>
Thu, 15 Oct 2015 13:54:40 +0000 (15:54 +0200)
docs/code_snippet.rst

index 3c27d1988c2d632d55ade28f7547367da744b59e..aed7d7c3d0ee4aa4129ea156aac83f91220482aa 100644 (file)
@@ -51,3 +51,29 @@ This snippet will follow every follower of the authenticated user.
 
    for follower in tweepy.Cursor(api.followers).items():
        follower.follow()
+
+Handling the rate limit using cursors
+=====================================
+   
+Since cursors raise ``RateLimitError``\ s in their ``next()`` method,
+handling them can be done by wrapping the cursor in an iterator.
+   
+Running this snippet will print all users you follow that themselves follow
+less than 300 people total - to exclude obvious spambots, for example - and
+will wait for 15 minutes each time it hits the rate limit.
+   
+.. code-block :: python
+   
+   # In this example, the handler is time.sleep(15 * 60),
+   # but you can of course handle it in any way you want.
+   
+   def limit_handled(cursor):
+       while True:
+           try:
+               yield cursor.next()
+           except tweepy.RateLimitError:
+               time.sleep(15 * 60)
+   
+   for follower in limit_handled(tweepy.Cursor(api.followers).items()):
+       if follower.friends_count < 300:
+           print follower.screen_name