first rework
This commit is contained in:
parent
b76212bc1d
commit
ae271d3374
1 changed files with 39 additions and 44 deletions
83
tweetdelete.py
Normal file → Executable file
83
tweetdelete.py
Normal file → Executable file
|
@ -1,50 +1,45 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import tweepy
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
|
||||
import toml
|
||||
import tweepy
|
||||
from xdg import xdg_config_home
|
||||
|
||||
# options
|
||||
test_mode = False
|
||||
verbose = True
|
||||
delete_tweets = True
|
||||
days_to_keep = 30
|
||||
|
||||
tweets_to_save = [
|
||||
# 1234567890
|
||||
]
|
||||
|
||||
twitter_config = toml.load(os.path.join(xdg_config_home(), "twitter.toml"))
|
||||
test_mode = twitter_config["test_mode"] if "test_mode" in twitter_config else False
|
||||
verbose = twitter_config["verbose"] if "verbose" in twitter_config else False
|
||||
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 []
|
||||
secrets = twitter_config["secrets"]
|
||||
|
||||
# auth and api
|
||||
consumer_key = 'FOOBAR'
|
||||
consumer_secret = 'FOOBAR'
|
||||
access_token = 'FOOBAR'
|
||||
access_token_secret = 'FOOBAR'
|
||||
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
|
||||
auth.set_access_token(access_token, access_token_secret)
|
||||
auth = tweepy.OAuthHandler(secrets['api_key'], secrets['api_key_secret'])
|
||||
auth.set_access_token(secrets['access_token'], secrets['access_token_secret'])
|
||||
api = tweepy.API(auth)
|
||||
|
||||
|
||||
# set cutoff date, use utc to match twitter
|
||||
cutoff_date = datetime.utcnow() - timedelta(days=days_to_keep)
|
||||
|
||||
# delete old tweets
|
||||
if delete_tweets:
|
||||
# get all timeline tweets
|
||||
print("Retrieving timeline tweets")
|
||||
timeline = tweepy.Cursor(api.user_timeline).items()
|
||||
deletion_count = 0
|
||||
ignored_count = 0
|
||||
|
||||
for tweet in timeline:
|
||||
# where tweets are not in save list and older than cutoff date
|
||||
if tweet.id not in tweets_to_save and tweet.created_at < cutoff_date:
|
||||
if verbose:
|
||||
print("Deleting %d: [%s] %s" % (tweet.id, tweet.created_at, tweet.text))
|
||||
if not test_mode:
|
||||
api.destroy_status(tweet.id)
|
||||
|
||||
deletion_count += 1
|
||||
else:
|
||||
ignored_count += 1
|
||||
|
||||
print("Deleted %d tweets, ignored %d" % (deletion_count, ignored_count))
|
||||
else:
|
||||
print("Not deleting tweets")
|
||||
|
||||
# get all timeline tweets
|
||||
print("Retrieving timeline tweets")
|
||||
timeline = tweepy.Cursor(api.user_timeline).items()
|
||||
deletion_count = 0
|
||||
ignored_count = 0
|
||||
|
||||
for tweet in timeline:
|
||||
# where tweets are not in save list and older than cutoff date
|
||||
if tweet.id not in tweets_to_save and tweet.created_at < cutoff_date:
|
||||
if verbose:
|
||||
print("Deleting %d: [%s] %s" %
|
||||
(tweet.id, tweet.created_at, tweet.text))
|
||||
if not test_mode:
|
||||
api.destroy_status(tweet.id)
|
||||
|
||||
deletion_count += 1
|
||||
else:
|
||||
ignored_count += 1
|
||||
|
||||
print("Deleted %d tweets, ignored %d" % (deletion_count, ignored_count))
|
||||
|
|
Loading…
Reference in a new issue