Skip to content

Instantly share code, notes, and snippets.

@n-eq
Forked from intentionally-left-nil/deloldtweets.py
Last active March 21, 2021 13:06
Show Gist options
  • Save n-eq/d6bd3438cd87ab419888edbc4dc1f0f5 to your computer and use it in GitHub Desktop.
Save n-eq/d6bd3438cd87ab419888edbc4dc1f0f5 to your computer and use it in GitHub Desktop.
Delete old tweets based on twitter archive
#!/bin/python3
# Fork of https://gist.github.com/davej/113241
# Requirements:
# - twitter API credentials (replace the correponding variables)
# - tweet.js file you get by extracting your twitter archive zip file (located in data/)
# License : Unlicense http://unlicense.org/
import tweepy
import
import json
from datetime import datetime, timedelta
from dateutil import parser
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''
days_to_keep = 365
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
utc = pytz.UTC
cutoff_date = utc.localize(datetime.now() - timedelta(days=days_to_keep))
fp = open("tweet.js","r")
fp.seek(25) # skip to '[' which is the beginning of the json part
myjson = json.load(fp)
for i in range(len(myjson)):
parsed_date = parser.parse(myjson[i]['tweet']['created_at'])
# print(parsed_date)
if parsed_date < cutoff_date:
# beware, this operation is irreversible
try:
# print("Destroying tweet %s" % myjson[i]['tweet']['id_str'])
api.destroy_status(myjson[i]['tweet']['id_str'])
except Exception as e:
print("There was an exception: %s." % e)
pass
@Carolinewk
Copy link

Hi @Carolinewk, no worries.
There are two main requirements actually:

  1. You need to get access to Twitter API, navigate http://apps.twitter.com/ and create an app from your account. You'll then need to fill some basic information but this operation is quite straightforward. Upon success, you'll get 4 elements (consumer_key, consumer_secret, access_token, access_token_secret). Replace with the corresponding values in lines 15-19, make sure you are the only one to know the values.
  2. You need to download your personal twitter archive. For this, please see https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive. Once downloaded, you'll get a zip file, unzip it and extract a file named tweet.js located in data/.

Once you completed these 2 steps you'll just have to configure and run the script above.
Are you using windows ?

Yeah. I'm using windows. Actually I did everything and the keys are already with me. I just can't run the code haha, pretty stupid but It still very confusing to me (I have no experience with python).

I think it's supposed to configure it with IDLE, right? I just put the keys there.
I created a folder, put your script there (deloldtweets.py), edited it with the IDLE (putting the keys in the beginning), and finally, put the tweet.js file there.

So, in the folder there's only these 2 files. But I don't know how to run them. I tried CMD and Powershell. With cmd: I put (cd + folder location) and then python deloldtweets.py. It didn't work. And with powershell I did the same. Nothing happens :(

Sorry if it's not clear.

@n-eq
Copy link
Author

n-eq commented Jul 7, 2020

Hi @Carolinewk, no worries.
There are two main requirements actually:

  1. You need to get access to Twitter API, navigate http://apps.twitter.com/ and create an app from your account. You'll then need to fill some basic information but this operation is quite straightforward. Upon success, you'll get 4 elements (consumer_key, consumer_secret, access_token, access_token_secret). Replace with the corresponding values in lines 15-19, make sure you are the only one to know the values.
  2. You need to download your personal twitter archive. For this, please see https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive. Once downloaded, you'll get a zip file, unzip it and extract a file named tweet.js located in data/.

Once you completed these 2 steps you'll just have to configure and run the script above.
Are you using windows ?

Yeah. I'm using windows. Actually I did everything and the keys are already with me. I just can't run the code haha, pretty stupid but It still very confusing to me (I have no experience with python).

I think it's supposed to configure it with IDLE, right? I just put the keys there.
I created a folder, put your script there (deloldtweets.py), edited it with the IDLE (putting the keys in the beginning), and finally, put the tweet.js file there.

So, in the folder there's only these 2 files. But I don't know how to run them. I tried CMD and Powershell. With cmd: I put (cd + folder location) and then python deloldtweets.py. It didn't work. And with powershell I did the same. Nothing happens :(

Sorry if it's not clear.

Okay, it might be tricky as I don't have a Windows machine on hand.
Basically you're all set once you have defined the parameters in lines 15-19 and put the tweet.js file in the same directory.
Can you try running execfile('deloldtweets.py') from the IDLE shell?

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