From: obskyr Date: Thu, 15 Oct 2015 13:54:40 +0000 (+0200) Subject: Added snippet for handling rate limit using cursors. X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=94a0e11a45720877a8c23bd2575636a49d07991d;p=tweepy.git Added snippet for handling rate limit using cursors. --- diff --git a/docs/code_snippet.rst b/docs/code_snippet.rst index 3c27d19..aed7d7c 100644 --- a/docs/code_snippet.rst +++ b/docs/code_snippet.rst @@ -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