toc

初めに

前回 シャドウバンの現状とわかったことをまとめました。
結局どうすることもできないの放置です。
ただ毎日チェックして怯えながら利用してる方が多いので少しでも訳に立つようにと gasを使ってシャドウバンになるとdiscordに通知されるシステムを作りました。


こんな感じでバンされた項目が通知されます。今回はsearch suggestion banのみのようです。

仕組み

いくつかあるシャドウバンをチェックするサイト(url/@ユーザー名でチェックできる)を定期的に実行してバンされていたらdiscordに通知するだけです。

google apps script で自動実行します。 ただバンチェックサイトを動かさないと結果が帰ってこないのでPhantomJsCloud を利用します。登録すれば無料で使えます。

gasで定期実行→PhantomJsCloudでチェックするサイトを動かす→取得してバンされた項目があるか確認→もしあればdiscordに通知
という流れです。

手順

PhantomJsCloudに登録

PhantomJsCloud に登録します。
すると Dashboard に ApiKey という項目があります。後で使用するのでメモしておきます。

discordのwebhookを作成

次にdiscordで通知したいサーバーを選択します。 サーバー設定→連携サービス→ウェブフックの確認

から新しいウェブフックを作成。名前とチャンネルは好きな名前で大丈夫です。。
urlをコピーしてメモしておきます。

google apps script にコードを書く

google apps script にアクセス。グーグルアカウントが必要です。
新しいプロジェクトを作成します。名前はなんでもいいです。
そうするとコード.gsが出てくるのでそこに以下をコピペしてください

function getSB() {

  //調べたいtwitterの名前 "aiueo"
  var twitter_nm = "ユーザーのid";

  //shadowBANチェックするサイト
  var url_sw = "https://hisubway.online/shadowban/"+twitter_nm;

  //phantomjscloud.comのAPIkey
  var api = "phantomjscloud.comのAPIkeyで取得したapiキー";


  var url = "https://phantomjscloud.com/api/browser/v2/"+api+"/?request=%7Burl:%22"+url_sw+"%22,renderType:%22plainText%22,outputAsJson:true%7D";
  var response = UrlFetchApp.fetch(url).getContentText();
  var json = JSON.parse(response);
  var source = json["content"]["data"].toString();
  var SSB = source.indexOf( 'No search suggestion ban' );
  var SB = source.indexOf( 'No search ban' );
  var GB = source.indexOf( 'No ghost ban' );
  var RD = source.indexOf( 'No reply deboosting' );

  if(SSB=="-1"||SB=="-1"||GB=="-1"||RD=="-1"){
    send(SSB,SB,GB,RD)    
  }
}

function send(a,b,c,d) {

  //取得したWebhookURLを追加
  const WEBHOOK_URL = "discordのWebhookURLを記入";


  if(a=="-1"){SSB = "Search Suggestion Ban"}else{SSB = ""};
  if(b=="-1"){SB = "Search Ban"}else{SB = ""};
  if(c=="-1"){GB = "Ghost Ban"}else{GB = ""};
  if(d=="-1"){RD= "Reply Deboosting"}else{RD = ""};
    const payload = {
    username: "bancheck",
    content: ""+" "+SSB+"\n  "+SB+"\n  "+GB+"\n  "+RD+" " ,
  };
    UrlFetchApp.fetch(WEBHOOK_URL, {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload),
  });
}

そして下記の3つ項目を書き換えます

ユーザー名

//調べたいtwitterの名前 例 "aiueo";
var twitter_nm = "ユーザーのid";

phantomjscloud.comのAPIkey

//phantomjscloud.comのAPIkey 例 "11-11111-8y111-11110-111x5-11111"
var api = "phantomjscloud.comのAPIkeyで取得したapiキー";

discordのWebhookURL

//取得したWebhookURLを追加 例 "https://discord.com/api/webhooks/1029"
const WEBHOOK_URL = "discordのWebhookURLを記入";

終わったら関数を「getSB」にして再生ボタンを押してチェックしてみてください。シャドウバンされてない場合は何も送信されません。
バンされてるidで確認してみてください。

定期実行

定期実行するようにgoogle apps scriptにトリガーを設定します。
「現在のプロジェクトのトリガー」をクリックします。タイマーみたいなマークをしたやつです。
そうすると新しい画面が開くと思います。「トリガーを追加」して、
実行する関数を「getSB」
時間の間隔を好きな時間に設定します。保存して完了です。

おまけ

if(a=="-1") の部分を if(a!="-1") に変えると逆になるのでシャドウバンが解除された場合に通知がくるようにすることもできます。

さいごに

おつかれさまでした。これでもしシャドウバンされた場合に通知がきます。気づかずに悪化したみたいなことを防げると思います。
ここまでやってあれですが気にしすぎず他の場所で活動するのがいいですね…

参考
https://kemkemblog.com/about-shadowban-and-detection-tool