Skip to content

Instantly share code, notes, and snippets.

@hassanshaikley
Created June 27, 2025 06:04
Show Gist options
  • Save hassanshaikley/35a0993ec87bcde016def867f44bcf2f to your computer and use it in GitHub Desktop.
Save hassanshaikley/35a0993ec87bcde016def867f44bcf2f to your computer and use it in GitHub Desktop.
// I only tested it on the replies page?
let sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
let deleteTweets = () => {
// Find all tweet delete buttons
let tweetButtons = document.querySelectorAll(
"div > div.css-175oi2r.r-1awozwy.r-6koalj.r-18u37iz > div > div > button > div > div"
);
let currentIndex = -1;
const processNextTweet = () => {
currentIndex++;
if (currentIndex >= tweetButtons.length) {
tweetButtons = document.querySelectorAll(
"div > div.css-175oi2r.r-1awozwy.r-6koalj.r-18u37iz > div > div > button > div > div"
);
console.log("at the end")
currentIndex = -1;
processNextTweet()
return;
}
const button = tweetButtons[currentIndex];
button.scrollIntoView();
try {
button.click();
setTimeout(() => {
let deleteOption = document.querySelector(
"#layers > div.css-175oi2r.r-zchlnj.r-1d2f490.r-u8s1d.r-ipm5af.r-1p0dtai.r-105ug2t > div > div > div > div.css-175oi2r.r-1ny4l3l > div > div.css-175oi2r.r-j2cz3j.r-kemksi.r-1q9bdsx.r-qo02w8.r-1udh08x.r-u8s1d > div > div > div > div:nth-child(1)"
);
const forSureDelete =
deleteOption &&
deleteOption.querySelector("path").getAttribute("d") ==
"M16 6V4.5C16 3.12 14.88 2 13.5 2h-3C9.11 2 8 3.12 8 4.5V6H3v2h1.06l.81 11.21C4.98 20.78 6.28 22 7.86 22h8.27c1.58 0 2.88-1.22 3-2.79L19.93 8H21V6h-5zm-6-1.5c0-.28.22-.5.5-.5h3c.27 0 .5.22.5.5V6h-4V4.5zm7.13 14.57c-.04.52-.47.93-1 .93H7.86c-.53 0-.96-.41-1-.93L6.07 8h11.85l-.79 11.07zM9 17v-6h2v6H9zm4 0v-6h2v6h-2z";
console.log({
forSureDelete,
thing:
deleteOption &&
deleteOption.querySelector("path").getAttribute("d"),
});
if (!forSureDelete) {
// get rid of the pop up
const popup = document
.querySelector(
"#layers > div.css-175oi2r.r-zchlnj.r-1d2f490.r-u8s1d.r-ipm5af.r-1p0dtai.r-105ug2t > div > div > div > div.css-175oi2r.r-1ny4l3l > div > div.css-175oi2r.r-j2cz3j.r-kemksi.r-1q9bdsx.r-qo02w8.r-1udh08x.r-u8s1d"
)
if (popup){
popup.remove()
}
// also just get rid of the the tweet too
tweetButtons[currentIndex].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement
processNextTweet();
return;
}
deleteOption.click();
setTimeout(() => {
let confirmButton = document.querySelector(
"#layers > div:nth-child(2) > div > div > div > div > div > div.css-175oi2r.r-1ny4l3l.r-18u37iz.r-1pi2tsx.r-1777fci.r-1xcajam.r-ipm5af.r-1kihuf0.r-xr3zp9.r-1awozwy.r-1pjcn9w.r-9dcw1g > div.css-175oi2r.r-kemksi.r-pm9dpa.r-1rnoaur.r-1867qdf.r-z6ln5t.r-494qqr.r-f8sm7e.r-13qz1uu.r-1ye8kvj > div.css-175oi2r.r-eqz5dr.r-1hc659g.r-7lkd7n.r-11c0sde.r-13qz1uu > button:nth-child(1)"
);
console.log(confirmButton);
if (confirmButton) {
confirmButton.click();
}
setTimeout(() => {
processNextTweet();
return;
}, 200);
}, 200);
}, 200);
} catch (error) {
processNextTweet();
}
};
// Start processing
processNextTweet();
};
// Run the function
deleteTweets();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment