-
-
Save andersy005/c984981e4991bbe3a9338646087ceabd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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