prevent rapid api calls when running into post rate limit

This commit is contained in:
muskit
2023-08-20 16:06:17 -07:00
parent 492d96e68b
commit 8bde1b5356
+2 -2
View File
@@ -93,7 +93,7 @@ class TwAPI:
tweet = self.client.create_tweet(text=text, media_ids=media_ids, in_reply_to_tweet_id=reply_to_tweet, quote_tweet_id=quote_tweet_id) tweet = self.client.create_tweet(text=text, media_ids=media_ids, in_reply_to_tweet_id=reply_to_tweet, quote_tweet_id=quote_tweet_id)
return tweet return tweet
except tweepy.TooManyRequests as e: except tweepy.TooManyRequests as e:
wait_for = float(e.response.headers["x-rate-limit-reset"]) - datetime.datetime.now().timestamp() + 1 wait_for = abs(float(e.response.headers["x-rate-limit-reset"]) - datetime.datetime.now().timestamp()) + 1
print(f'\thit rate limit -- attempting to create Tweet again in {wait_for} seconds...') print(f'\thit rate limit -- attempting to create Tweet again in {wait_for} seconds...')
await asyncio.sleep(wait_for) await asyncio.sleep(wait_for)
return await self.post_tweet(text=text, media_ids=media_ids, reply_to_tweet=reply_to_tweet) return await self.post_tweet(text=text, media_ids=media_ids, reply_to_tweet=reply_to_tweet)
@@ -164,4 +164,4 @@ class TwAPI:
return False return False
print(f'Posting {ttweet.username}/{ttweet.tweet_id}...') print(f'Posting {ttweet.username}/{ttweet.tweet_id}...')
return await self.post_ttweet(ttweet) return await self.post_ttweet(ttweet)