サーバーを守る、スパムフィルターBot。
キーワード・ユーザーIDで自動削除。管理者コマンドで即設定。
Botについて
スパムフィルターBotは、Exiサーバー向けに開発された自動メッセージ削除Botです。
登録したキーワードを含むメッセージや、特定ユーザー・BotのIDが一致するメッセージを
リアルタイムで検知して自動削除します。
設定はDiscordのスラッシュコマンドから行え、config.jsonに永続保存されます。
主な機能
🔍 キーワードフィルタリング
登録したキーワードを含むメッセージを大文字・小文字を無視して検知し、自動削除します。
🚫 ユーザーID指定ブロック
特定ユーザーまたはBotのIDを登録すると、そのユーザーのメッセージをすべて削除します。
📢 チャンネル絞り込み
監視チャンネルを指定できます。未設定の場合はサーバー全チャンネルが対象です。
📋 削除ログ送信
指定したチャンネルに、削除理由・ユーザー情報を含む詳細なログを自動送信します。
⚡ 一括スパム削除
過去メッセージ(最大500件)を遡ってスパムを一括削除する /spam_purge を搭載しています。
🔀 ON/OFF トグル
フィルター機能をコマンド一つで即時に有効・無効を切り替えられます。
削除判定フロー
メッセージ受信時、以下の順に判定を行います。
- フィルターが 無効(enabled: false) なら処理終了
- Botが送信したメッセージなら処理終了
- 監視チャンネルが設定されていて、対象外チャンネルなら処理終了
- 送信者IDが target_user_ids に一致 → 削除
- メッセージ本文にキーワードが一致 → 削除
- 削除が発生した場合、ログチャンネルに通知
スラッシュコマンド一覧
すべてのコマンドは 管理者 権限が必要です。
🛡️ スパムフィルター
| コマンド | 種別 | 権限 | 説明 |
|---|---|---|---|
/spam_status |
/ スラッシュ | 管理者 | 現在のフィルター設定(キーワード・対象ユーザー・チャンネルなど)をすべて表示します。 |
/spam_add_keyword |
/ スラッシュ | 管理者 | 削除対象のキーワードを追加します。 |
/spam_remove_keyword |
/ スラッシュ | 管理者 | 登録済みキーワードを削除します。 |
/spam_add_user |
/ スラッシュ | 管理者 | 削除対象ユーザー/BotのDiscord IDを追加します。 |
/spam_remove_user |
/ スラッシュ | 管理者 | ユーザーIDの削除対象指定を解除します。 |
/spam_set_channel |
/ スラッシュ | 管理者 | 監視対象チャンネルを追加します。未設定の場合は全チャンネルが対象です。 |
/spam_unset_channel |
/ スラッシュ | 管理者 | 監視対象チャンネルから除外します。 |
/spam_set_log |
/ スラッシュ | 管理者 | 削除ログを送信するチャンネルを設定します。 |
/spam_toggle |
/ スラッシュ | 管理者 | スパムフィルターをON/OFFに切り替えます。 |
/spam_purge |
/ スラッシュ | 管理者 | このチャンネルの過去メッセージ(最大500件)からスパムを一括削除します。 |
セットアップ
| ステップ | 操作 | 詳細 |
|---|---|---|
| ① | 環境変数を設定 | DISCORD_TOKEN、KEYWORDS、TARGET_USER_IDS を設定します。 |
| ② | Botを起動 | pip install discord.py の後、python bot.py で起動します。 |
| ③ | ログチャンネルを設定 | Discordで /spam_set_log #チャンネル名 を実行します。 |
| ④ | 設定を確認 | /spam_status で現在の設定を確認できます。 |
