forked from QuincyLarson/delete-tweets
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeletetweets.py
59 lines (43 loc) · 1.5 KB
/
deletetweets.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
import argparse
import json
import sys
import time
import os
import twitter
from dateutil.parser import parse
__author__ = "Koen Rouwhorst"
__version__ = "0.1"
def delete(api, date):
with open("tweet.js") as file:
count = 0
file_string = file.read().replace('window.YTD.tweet.part0 = ', '')
tweet_list = json.loads(file_string)
for tweet in tweet_list:
tweet_id = tweet['id']
tweet_date = parse(tweet['created_at'], ignoretz=True).date()
if date != "" and tweet_date >= parse(date).date():
continue
try:
print "Deleting tweet #{0} ({1})".format(tweet_id, tweet_date)
api.DestroyStatus(tweet_id)
count += 1
time.sleep(0.5)
except twitter.TwitterError, err:
print "Exception: %s\n" % err.message
print "Number of deleted tweets: %s\n" % count
def error(msg, exit_code=1):
sys.stderr.write("Error: %s\n" % msg)
exit(exit_code)
def main():
parser = argparse.ArgumentParser(description="Delete old tweets.")
parser.add_argument("-d", dest="date", required=True,
help="Delete tweets until this date")
args = parser.parse_args()
api = twitter.Api(consumer_key="",
consumer_secret="",
access_token_key="",
access_token_secret="")
delete(api, args.date)
if __name__ == "__main__":
main()