PR

【インプレゾンビ対策】X(旧Twitter)でミュートワードを自動で設定する方法

Twitterをイーロン・マスクが買収しXになってからもう随分経ちました。

プレミアムアカウントへ収益を分配する仕組みを導入してから、広告収益をを目的にインプレッション(閲覧回数)を稼ぐためだけのアカウントが増えました。

アカウントブロックや報告が有効とされていますが、いくらアカウントが凍結されようがゾンビのように湧いてきます。

そこでもっと根本的に、「インプレゾンビがよく用いるワードをミュートする」のが有効です。しかし手動でやるととんでもなく手間がかかるので、自動で行う方法を紹介します

設定作業自体はPCからしか行えませんが、アカウントに対して設定を行っているので一度作業が完了してしまえばスマホでも効果があります。ブラウザ拡張機能との一番の違いはそこです。

Xの設定から「ミュートするキーワード」を開く

自分のアカウントにログインした状態で、「設定とプライバシー」→「プライバシーと安全」→「ミュートとブロック」→「ミュートするキーワード」と選択してください。

以下のリンクで直接飛ぶこともできます。

ミュートするキーワード / X (twitter.com)

以下の画面が出たらOKです。

開発者ツールの「コンソール」を開く

WebサイトやWebサービスを開発するエンジニア向けに利用される、各種ブラウザの「開発者ツール」というものがあります。デベロッパーツールとも呼ばれます。

それの「コンソール」という機能があるので開きましょう。

Chromeの場合

「表示」→「開発 / 管理」→「JavaScript コンソール」と選択してください。

次のような画面が開いたらOKです。

他にも、右クリックから「検証」を押す方法や、「Command」 + 「Shift」 +「C」(Mac)、「Ctrl」+「Shift」+「I」(Windows)のショートカットキーで開発者ツールを開き、「コンソール」タブを開いても構いません。

Microsoft Edgeの場合

「ツール」→「開発者」→「JavaScript コンソール」と選択してください。

次のような画面が開いたらOKです。

他にも、右クリックから「開発者ツールで調査する」を押す方法や、「Command」 + 「Shift」 +「C」(Mac)、「Ctrl」+「Shift」+「I」(Windows)のショートカットキーで開発者ツールを開き、「コンソール」タブを開いても構いません。Edgeの場合はアイコンだけ表示されている場合があるので注意してください。

FireFoxの場合

「ツール」→「ブラウザーツール」→「ウェブ開発ツール」と選択してください。

※ブラウザーコンソールだとうまくいかないので注意

開発者ツールが開くので、「コンソール」タブを開いてください。次のような画面が開いたらOKです。

他にも、右クリックから「開発者ツールで調査する」を押す方法や、「Command」 + 「Shift」 +「C」(Mac)、「Ctrl」+「Shift」+「I」(Windows)のショートカットキーで開発者ツールを開き、「コンソール」タブを開いても構いません。

設定用のコードをコピーし、コンソールにペーストして実行する。

コンソールでは任意のJavaScriptコードを入力して実行することができます。自動でミュートワードを設定するプログラムを作ったので、次のコードをコンソールに貼り付けてエンターキーを押してください。

環境によってコンソールへのコピペを禁止している場合があります。その場合は「allow pasting」と入力してから行なってください。

async function muteCharactersWithSkip(characters) {
  async function randomDelay() {
    const min = 1500
    const max = 2500
    const delay = Math.random() * (max - min) + min
    return new Promise((resolve) => setTimeout(resolve, delay))
  }

  const simulateInput = (element, value) => {
    const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
      window.HTMLInputElement.prototype,
      "value"
    ).set
    nativeInputValueSetter.call(element, value)

    const inputEvent = new Event("input", { bubbles: true })
    element.dispatchEvent(inputEvent)
  }

  for (const char of characters) {
    const addButton = document.querySelector(
      'a[aria-label="ミュートする単語またはフレーズを追加"]'
    )
    if (addButton) {
      addButton.click()
      await randomDelay()
    }

    const inputElement = document.querySelector('input[name="keyword"]')
    simulateInput(inputElement, char)

    document
      .querySelector('div[data-testid="settingsDetailSave"][role="button"]')
      .click()
    await randomDelay()

    let alreadyMutedMessage = document.querySelector('[aria-live="assertive"]')
    if (
      alreadyMutedMessage &&
      alreadyMutedMessage.textContent.includes("既にミュートしています")
    ) {
      console.log(`${char}は既にミュートされています。スキップします。`)
      simulateInput(inputElement, "")
      continue
    }

    console.log(`${char}をミュートリストに追加しました。`)
  }

  console.log("全ての文字のミュート処理が完了しました。")
}

const characters = ["क","ख","ग","घ","ङ","च","छ","ज","झ","ञ","य","श","ड","ढ","ण","र","ष","ड़","त","थ","द","ध","न","ल","स","फ","ब","भ","म","व","अ","आ","इ","ई","उ","ऊ","ऋ","ए","ऐ","ओ","औ","प","फ","ब","भ","म","य","र","ल","व","श","ष","स","ह","उ","ध","प","म","स","𑘁","𑘃","𑘄","𑘎","𑘐","𑘑","𑘓","𑘕","𑘰","𑘛","𑘝","𑘠","𑘢","𑘤","𑘥","𑘨","𑘭","𑘮","ق","غ","ف","ى","ء","ظ","ط","خ","ض","ص","ن","م","ح","ث","ش","ل","ذ","ر","ت","ز","ي","و","ك","ج","د","ب","ا","ぷろふから","プロフから","ぷろふのリンク","プロフのリンク","ぷろふみて","プロフみて","プロフリンク","プロフをみて","プロフを見て","プロフ見て"]

muteCharactersWithSkip(characters)

設定中の様子を動画にしたので参考にしてください。

コードには、

  • アラビア文字
  • サンスクリット文字
  • デーヴァナーガリ文字
  • (古)マラーティー語
  • 日本語の情報商材屋がよく使う単語

が含まれています。これらの文字、単語が含まれている投稿が今後非表示になります。

ちなみに、このコードはXの制限にかからないようにゆっくり実行されますので完了するまでしばらく放置してください。コンソール画面に「全ての文字のミュート処理が完了しました。」と表示されればOKです。

注意点

  • このコードはXの設定画面の仕様に依存しており、X側の仕様が変わるとうまくいかなくなります。
  • あくまで記事を書いた時点でのものになりますのでご了承ください。ご連絡いただければ、余裕がある際に対応するかもしれません。
  • ミュートしたワードによって本来は見たかった投稿が非表示になる可能性があります。
  • 製作者は、このコードによって派生したいかなる不利益などの一切の責任を負いません。

コメント

タイトルとURLをコピーしました