Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
With this script, you can remove all retweets you are retweeted on Twitter.
const timer = ms => new Promise(res => setTimeout(res, ms));
// Unretweet normally
const unretweetTweet = async (tweet) => {
await tweet.querySelector('div[data-testid="unretweet"]').click();
await timer(250);
await document.querySelector('div[data-testid="unretweetConfirm"]').click();
console.log('****// Unretweeted Successfully //****')
}
// Sometimes twitter shows your retweet but green retweet button is invisible and therefore you need to retweet again for make unreweet. This function is for that.
const unretweetUnretweetedTweet = async (tweet) => {
await tweet.querySelector('div[data-testid="retweet"]').click();
await timer(250);
await document.querySelector('div[data-testid="retweetConfirm"]').click();
console.log('****// Retweeted Successfully //****')
await timer(250);
unretweetTweet(tweet);
}
setInterval(async () =>
{
// Get all tweets
const retweetedTweetList = document.querySelectorAll('span[data-testid="socialContext"]');
console.log('****// Retweeted Tweet List Collected //****')
for (const retweet of retweetedTweetList) {
const tweetWrapper = retweet.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
tweetWrapper.scrollIntoView();
const isRetweeted = tweetWrapper.querySelector('div[data-testid="unretweet"]');
if (isRetweeted) {
console.log('****// Green Retweet Button Found - Starting "unretweetTweet" process //****')
await unretweetTweet(tweetWrapper);
} else {
console.log('****// Green Retweet Button Not Found - Starting "unretweetUnretweetedTweet" process //****')
await unretweetUnretweetedTweet(tweetWrapper);
}
await timer(2000);
}
console.log('****// List Completed //****')
console.log('****// Scrolling //****')
console.log(' ')
console.log(' ')
console.log(' ')
console.log(' ')
console.log(' ')
console.log(' ')
console.log(' ')
console.log(' ')
await window.scrollTo(0, document.body.scrollHeight);
}, 60000);
@sapphiq
Copy link

sapphiq commented Apr 28, 2022

can you please tell me how to use this and how can i tell if its working?

@antlionguard
Copy link
Author

can you please tell me how to use this and how can i tell if its working?

Here's the steps:

  1. Open your twitter profile
  2. Switch retweets tab
  3. Open your browser devtools (Pressing F12)
  4. Click the console tab
  5. Paste the code into console and wait

The script begins after 60 second.

@OutOfThisPlanet
Copy link

This still works :)

@talhatugsat
Copy link

thanks

@enosV
Copy link

enosV commented Jul 23, 2022

Sick! Works like a charm!

@WaffleThief123
Copy link

Confirmed working as of November 2022.

@viltemcduck
Copy link

Is there a way to make this delete retweets only within a specific time period? For example from June 2022 to December 2021?

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