Skip to content

Instantly share code, notes, and snippets.

@as1ndu
Forked from JamieMason/unfollow.js.md
Created March 17, 2020 00:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save as1ndu/026bb8da1abcac1baf4104d31b140992 to your computer and use it in GitHub Desktop.
Save as1ndu/026bb8da1abcac1baf4104d31b140992 to your computer and use it in GitHub Desktop.
Unfollow everyone on twitter.com
// Unfollow everyone on twitter.com, by Jamie Mason (https://twitter.com/fold_left)
// https://gist.github.com/JamieMason/7580315
//
// 1. Go to https://twitter.com/YOUR_USER_NAME/following
// 2. Open the Developer Console. (COMMAND+ALT+I on Mac)
// 3. Paste this into the Developer Console and run it
(() => {
const followButtonQuery = '[data-testid$="-unfollow"]';
const confirmButtonQuery = '[data-testid="confirmationSheetConfirm"]';
const sleep = ({ seconds }) =>
new Promise(proceed => {
console.log(`WAITING FOR ${seconds} SECONDS...`);
setTimeout(proceed, seconds * 1000);
});
const nextBatch = async () => {
window.scrollTo(0, document.body.scrollHeight);
await sleep({ seconds: 1 });
const followButtons = Array.from(document.querySelectorAll(followButtonQuery));
const followButtonCount = followButtons.length;
if (followButtonCount === 0) {
console.log(`NO ACCOUNTS FOUND, SO I THINK WE'RE DONE`);
console.log(`RELOAD PAGE AND RE-RUN SCRIPT IF ANY WERE MISSED`);
return;
}
console.log(`UNFOLLOWING ${followButtonCount} USERS...`);
await Promise.all(
followButtons.map(async followButton => {
followButton.click();
await sleep({ seconds: 1 });
const confirmButton = document.querySelector(confirmButtonQuery);
if (confirmButton) confirmButton.click();
})
);
await sleep({ seconds: 2 });
nextBatch();
};
nextBatch();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment