@@ -270,29 +270,36 @@ def twitter(
270270 log .setLevel (logging .INFO )
271271 log .info (qid + " Request: Twitter" )
272272
273- if not kinds or remaining < 1 :
273+ maximum_queries = kwargs .get ("query_limit" )
274+ if maximum_queries is None :
275+ maximum_queries = 450 # Twitter allows 450 queries every 15 minutes.
276+
277+ if not kinds or remaining < 1 or maximum_queries < 1 :
274278 log .info (qid + " Success: No results were requested." )
275279 return []
276280
277281 api = kwargs .get ("api" , Twython )(
278282 keychain ["consumer_key" ],
279283 access_token = keychain ["access_token" ]
280284 )
285+
281286 limits = api .get_application_rate_limit_status ()
282- maximum_queries = 450 # Twitter allows 450 queries every 15 minutes.
283287 try :
284- maximum_queries = \
285- int (limits ["resources" ]["search" ]["/search/tweets" ]["remaining" ])
286- if maximum_queries < 1 :
288+ limit = int (
289+ limits ["resources" ]["search" ]["/search/tweets" ]["remaining" ]
290+ )
291+ if limit < 1 :
287292 log .info (qid + " Failure: Queries are being limited." )
288293 else :
289- log .debug (qid + " Status: " + str (maximum_queries )+ " queries remain." )
294+ log .debug (qid + " Status: " + str (limit )+ " queries remain." )
295+ if limit < maximum_queries :
296+ maximum_queries = limit
290297 except KeyError :
291298 log .warn (qid + " Unobtainable Rate Limit" )
292299 total = remaining
293300
294301 collection = []
295- for query in range (0 , maximum_queries ):
302+ for query in range (maximum_queries ):
296303 count = min (remaining , 100 ) # Twitter accepts a max count of 100.
297304 try :
298305 results = api .search (
0 commit comments