刷屏禁止~
刷屏がうざい
グループで他チャンネルからの転送が多い。1つで1画面埋まるようなメッセージを頻繁に転送してくるので、うざい。
見てみると転送しているのは大体2〜3アカウントで、転送元も1〜2チャンネル。たぶんボット。
解決策:アカウントかチャンネル、どちらかをbanする。
面倒を恐れない精神で、特定チャンネルからの転送メッセージを削除するTelegramボットを作ってみる。
輪を探す
Googleで探してもなかなか見つからない。
そのうち「GitHubで探す方が早い」と思って探したら、これを見つけた: Tooruchan / Anti-Forward-Bot
作者が使い方を書いてくれている。
ただ説明が短く、自分みたいな初心者には少し難しかった。少し研究して、なんとかデプロイできた。
以下は手順。
手順
Botを申請
tgで @BotFather にDMしてBotを作る。
案内に従って入力するとtokenがもらえる(パスワード並みに重要なので漏らさない)。
グループでBotを使うにはprivacy modeをオフにする必要がある。方法はGitHubページに書いてある。
appを申請
(何に使うのかよく分からないけど、言われた通りにやる)
Telegram - API Settings でapplicationを申請する。
フォームの URL と platform が何か分からず適当に書いた。
申請後 API Hash と API ID が見られる。
サービスをデプロイ
Tooruchan / Anti-Forward-Bot の通りにやる。
-
pip3 install -U pyrogram tgcrypto
Telegram製(?)のフレームワークを入れる(何なのかは不明) -
git clone https://github.com/Tooruchan/Anti-Forward-Bot.git
cloneしてcd -
vim config.json
設定ファイルを編集し、bot TokenAPI HashAPI IDを入れる -
vim channels.json
channel idの取り方をいくつか試したが、あまりうまくいかなかった。
その代わり、デバッグ中にこういう方法を見つけた:python3 bot.pyでサービスを動かす(Pyrogramの説明: Get Pyrogram Real Fast)- tgで小さいグループを作ってBotを入れる
- ブロックしたいチャンネルの投稿をグループに転送する
- サーバー側の標準出力に解析結果が出て、その中に
forward_from_chatがある
Terminal window "forward_from_chat": {"_": "pyrogram.Chat","id": -1001232395606,"type": "channel","is_verified": false,"is_restricted": false,"is_scam": false,...}"id": -1001232395606がchannel idなので、設定ファイルに入れる
バックグラウンド実行
screen -dmS anti_forward_bot python3 bot.py
テストOKなら常駐させる。
技術力が低くて途中で何回か踏んだが、最終的には動いた。よし。
screenよく使うコマンド
最近 screen でバックグラウンド実行を何回かしたので、コマンドだけメモ。
screen -lsscreen -r process_idscreen -dmS session_name command