Unfollow everyone on twitter.com

https://www.google.com/search?q=unfollow+all+twitter+following+at+once+javascript+code

https://gist.github.com/JamieMason/7580315

https://www.calazan.com/how-to-bulk-unfollow-people-on-twitter-through-your-web-browser/


Go to https://twitter.com/YOUR_USER_NAME/following

Open the Developer Console. (COMMAND+ALT+I on Mac)

Paste this into the Developer Console and run it

// 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

//

// Last Updated: 30 October 2023




(() => {

  const $followButtons = '[data-testid$="-unfollow"]';

  const $confirmButton = '[data-testid="confirmationSheetConfirm"]';


  const retry = {

    count: 0,

    limit: 3,

  };


  const scrollToTheBottom = () => window.scrollTo(0, document.body.scrollHeight);

  const retryLimitReached = () => retry.count === retry.limit;

  const addNewRetry = () => retry.count++;


  const sleep = ({ seconds }) =>

    new Promise((proceed) => {

      console.log(`WAITING FOR ${seconds} SECONDS...`);

      setTimeout(proceed, seconds * 1000);

    });


  const unfollowAll = async (followButtons) => {

    console.log(`UNFOLLOWING ${followButtons.length} USERS...`);

    await Promise.all(

      followButtons.map(async (followButton) => {

        followButton && followButton.click();

        await sleep({ seconds: 1 });

        const confirmButton = document.querySelector($confirmButton);

        confirmButton && confirmButton.click();

      })

    );

  };


  const nextBatch = async () => {

    scrollToTheBottom();

    await sleep({ seconds: 1 });


    const followButtons = Array.from(document.querySelectorAll($followButtons));

    const followButtonsWereFound = followButtons.length > 0;


    if (followButtonsWereFound) {

      await unfollowAll(followButtons);

      await sleep({ seconds: 2 });

      return nextBatch();

    } else {

      addNewRetry();

    }


    if (retryLimitReached()) {

      console.log(`NO ACCOUNTS FOUND, SO I THINK WE'RE DONE`);

      console.log(`RELOAD PAGE AND RE-RUN SCRIPT IF ANY WERE MISSED`);

    } else {

      await sleep({ seconds: 2 });

      return nextBatch();

    }

  };


  nextBatch();

})();

Comments

Popular Posts