Skip to content

Mwangala/DeleteAllTweets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

S/O to ChatGPT for helping optimize the code LOL

How to:

const SELECTORS = {
  TWEET: '[data-testid="tweet"]',
  CARET: '[data-testid="caret"]',
  MENU_ITEM: '[role="menuitem"]',
  CONFIRM_SHEET_CONFIRM: '[data-testid="confirmationSheetConfirm"]',
  UNRETWEET_CONFIRM: '[data-testid="unretweetConfirm"]',
  UNRETWEET: '[data-testid="unretweet"]'
};

const DELAY_TIMES = {
  SHORT: 250,
  LONG: 3000
};

const deleteAllTweets = async () => {
  const processedButtons = new Set();
  const getDeleteButtons = () => Array.from(document.querySelectorAll(`${SELECTORS.TWEET} ${SELECTORS.CARET}`));
  const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));

  while (true) {
    const deleteButtons = getDeleteButtons().filter(button => !processedButtons.has(button));
    if (deleteButtons.length === 0) break;

    for (const button of deleteButtons) {
      try {
        processedButtons.add(button);
        button.click();
        await delay(DELAY_TIMES.SHORT);

        const menuItems = Array.from(document.querySelectorAll(SELECTORS.MENU_ITEM));
        const deleteOption = menuItems.find(item => item.textContent === 'Delete');

        if (deleteOption) {
          deleteOption.click();
          document.querySelector(SELECTORS.CONFIRM_SHEET_CONFIRM)?.click();
          await delay(DELAY_TIMES.LONG);
        } else {
          const tweetContainer = button.closest(SELECTORS.TWEET);
          const unretweetButton = tweetContainer?.querySelector(SELECTORS.UNRETWEET);

          if (unretweetButton) {
            unretweetButton.click();
            await delay(DELAY_TIMES.SHORT);
            document.querySelector(SELECTORS.UNRETWEET_CONFIRM)?.click();
            await delay(DELAY_TIMES.LONG);
          }
        }
      } catch (error) {
        console.error('An error occurred:', error);
      }
    }
  }

  console.log('All tweets deleted successfully!');
};

deleteAllTweets();

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors