first rework

This commit is contained in:
Tobias Schmidl 2021-01-29 11:36:36 +01:00
parent b76212bc1d
commit ae271d3374

83
tweetdelete.py Normal file → Executable file
View file

@ -1,50 +1,45 @@
#!/usr/bin/env python #!/usr/bin/env python3
import tweepy import os
from datetime import datetime, timedelta from datetime import datetime, timedelta
import toml
import tweepy
from xdg import xdg_config_home
# options # options
test_mode = False twitter_config = toml.load(os.path.join(xdg_config_home(), "twitter.toml"))
verbose = True test_mode = twitter_config["test_mode"] if "test_mode" in twitter_config else False
delete_tweets = True verbose = twitter_config["verbose"] if "verbose" in twitter_config else False
days_to_keep = 30 days_to_keep = twitter_config["days_to_keep"] if "days_to_keep" in twitter_config else 30
tweets_to_save = twitter_config["tweets_to_save"] if "tweets_to_save" in twitter_config else []
tweets_to_save = [ secrets = twitter_config["secrets"]
# 1234567890
]
# auth and api # auth and api
consumer_key = 'FOOBAR' auth = tweepy.OAuthHandler(secrets['api_key'], secrets['api_key_secret'])
consumer_secret = 'FOOBAR' auth.set_access_token(secrets['access_token'], secrets['access_token_secret'])
access_token = 'FOOBAR'
access_token_secret = 'FOOBAR'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth) api = tweepy.API(auth)
# set cutoff date, use utc to match twitter # set cutoff date, use utc to match twitter
cutoff_date = datetime.utcnow() - timedelta(days=days_to_keep) cutoff_date = datetime.utcnow() - timedelta(days=days_to_keep)
# delete old tweets # get all timeline tweets
if delete_tweets: print("Retrieving timeline tweets")
# get all timeline tweets timeline = tweepy.Cursor(api.user_timeline).items()
print("Retrieving timeline tweets") deletion_count = 0
timeline = tweepy.Cursor(api.user_timeline).items() ignored_count = 0
deletion_count = 0
ignored_count = 0 for tweet in timeline:
# where tweets are not in save list and older than cutoff date
for tweet in timeline: if tweet.id not in tweets_to_save and tweet.created_at < cutoff_date:
# where tweets are not in save list and older than cutoff date if verbose:
if tweet.id not in tweets_to_save and tweet.created_at < cutoff_date: print("Deleting %d: [%s] %s" %
if verbose: (tweet.id, tweet.created_at, tweet.text))
print("Deleting %d: [%s] %s" % (tweet.id, tweet.created_at, tweet.text)) if not test_mode:
if not test_mode: api.destroy_status(tweet.id)
api.destroy_status(tweet.id)
deletion_count += 1
deletion_count += 1 else:
else: ignored_count += 1
ignored_count += 1
print("Deleted %d tweets, ignored %d" % (deletion_count, ignored_count))
print("Deleted %d tweets, ignored %d" % (deletion_count, ignored_count))
else:
print("Not deleting tweets")