# -*- coding: utf-8 -*- | |
""" Deletes all tweets below a certain retweet threshold. | |
""" | |
import tweepy | |
from datetime import datetime | |
# Constants | |
CONSUMER_KEY = '' | |
CONSUMER_SECRET = '' | |
ACCESS_TOKEN = '' | |
ACCESS_SECRET = '' | |
USER_NAME = '' | |
# Connect To Your Twitter Account via Twitter API | |
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) | |
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) | |
api = tweepy.API(auth, | |
wait_on_rate_limit=True, | |
wait_on_rate_limit_notify=True, | |
retry_count=3, | |
retry_delay=5, | |
retry_errors=set([401, 404, 500, 503])) | |
# For the account name | |
def wipe(account_name=USER_NAME, favorite_threshold=100, days=62): | |
# Get the current datetime | |
current_date = datetime.utcnow() | |
# For each tweet | |
for status in tweepy.Cursor(api.user_timeline, screen_name='@'+account_name).items(): | |
# Get the tweet id | |
status_id = status._json['id'] | |
print(datetime.now().strftime("%d/%m/%Y %H:%M:%S"), 'Examining', status_id) | |
# Get the number of favorites | |
status_favorites = status._json['favorite_count'] | |
# Get the datetime of the tweet | |
status_date = datetime.strptime(status._json['created_at'], '%a %b %d %H:%M:%S +0000 %Y') | |
# Get whether you have favorited the tweet yourself | |
status_favorited = status._json['favorited'] | |
# If the difference between the current datetime and the tweet's | |
# is more than a day threshold | |
if (datetime.utcnow() - status_date).days > days: | |
# If the number of favorites is lower than the favorite threshold | |
if status_favorites < favorite_threshold: | |
# If you haven't favorited the tweet yourself | |
if status_favorited == False: | |
# Delete the tweet | |
api.destroy_status(status_id) | |
print(datetime.now().strftime("%d/%m/%Y %H:%M:%S"), 'Deleting', status_id) | |
# Run main function | |
if __name__ == '__main__': | |
wipe(account_name='chrisalbon', favorite_threshold=100, days=62) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
is there any way to surpass the 3200 limit?