0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Twitterのスパム報告を自動化する(途中)

Last updated at Posted at 2024-08-21

Twitterがインプレゾンビで荒れ果ててて手動でのスパム報告が追いつかなくなってきたので、Google Chrome前提でスパム報告を自動化する方法をちょっと書いておきます。悪用しないで良い方向に使ってください。

// sleep は https://qiita.com/teloppy_com/items/cd483807813af5a4a38aより
const sleep = (time) => new Promise((resolve) => setTimeout(resolve, time));

function randrange(min = 500, max = 1000) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

async function block(n){
    document.querySelectorAll('button[data-testid="caret"]')[n].click();
    await sleep(randrange());
    document.querySelectorAll('div[data-testid="report"]')[0].click();
    await sleep(randrange());
    document.querySelectorAll('input[aria-posinset="6"]')[0].click();
    await sleep(randrange());
    document.querySelectorAll('button[data-testid="ChoiceSelectionNextButton"]')[0].click();
    await sleep(randrange());
    document.querySelectorAll('button[role="button"]')[1].click();
}
// block(0);


async function block_spams(){
    var tweets = Array.from(document.querySelectorAll('article[data-testid="tweet"]')).map(i => i.innerText);
    for(i in tweets) if (tweets[i].includes("BSS11") && tweets[i].includes("CX10")) await block(i);
}

block_spams();

なおこのスクリプトは途中でスパム報告が効かなくなって止まるので大した効力は無いかもしれません。完全に自動化するにはサブウインドウなりSeleniumなりでリロードを挟めば良いのですが、今回はここに留めておくことにします。

追記: 途中で止まるのはレートリミットだったようです。時間をmin=5000, max=6000にしたところ止まらずに動きました。なおツイートリストの更新をどうするかはまだ未定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?