Skip to content

Instantly share code, notes, and snippets.

@chrisalbon
Last active February 25, 2022 08:01
Show Gist options
  • Star 77 You must be signed in to star a gist
  • Fork 15 You must be signed in to fork a gist
  • Save chrisalbon/b9bd4a6309c9f5f5eeab41377f27a670 to your computer and use it in GitHub Desktop.
Save chrisalbon/b9bd4a6309c9f5f5eeab41377f27a670 to your computer and use it in GitHub Desktop.
# -*- 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)
@felipealfonsog
Copy link

felipealfonsog commented Feb 24, 2022

Hi,
I got several errors;

Traceback (most recent call last): File "/Users/felipe/Documents/deltwitts/deltw2.py", line 10, in <module> CONSUMER_KEY = from_env('xxxxxxxxxxxxx') NameError: name 'from_env' is not defined

and, I inserted all the keys ...

Cheers,

@askpatrickw
Copy link

@felipealfonsog the function from_env() is not part of this sample. I suggest you look at os.getenv() in the standard library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment