ChannelBan — 投稿者を自動BANするシンプルなDiscordボット

Tool

概要

ChannelBanは、指定したDiscordチャンネルに投稿があった場合にその投稿者を自動的にBANすることを目的とした非常に小さなボットです。ロールによる除外(ホワイトリスト)をサポートし、誤検知を減らすために特定の権限やインテントの設定が必要です。設定は.envファイルにまとめて行い、pipenvで依存を管理して起動します。ブレンドOS(blendOS)コミュニティ向けに開発されたシンプルで実用的なモデレーション補助ツールです。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 3
  • ウォッチャー数: 2
  • コミット数: 6
  • ファイル数: 8
  • メインの言語: Python

主な特徴

  • 指定チャンネルへの投稿を検知して投稿者を自動BAN(ロール除外対応)。
  • 必要なDiscordインテント(Server Members、Message Content)と権限(View Channels、Read Message History、Moderate Members、Ban Members)を明示。
  • 環境変数(.env)による安全な設定管理とpipenvを推奨する依存管理。
  • 小規模で依存も少なく、手早く導入できる軽量設計。

技術的なポイント

ChannelBanはDiscordボットの基本モデルに忠実で、イベント駆動(メッセージ受信)で動作します。Message Contentインテントが必要なため、Discord側での特権インテント有効化が前提となります。BotにはView Channels/Read Message Historyの読み取り系権限と、Moderate Members/Ban Membersの強制排除系権限が必要で、これにより該当ユーザーのBAN処理を安全に実行します。設定は.env(サンプルは.env.example)にまとめられており、トークンや対象チャンネルID、除外ロールIDなどを外部化しているためソースに秘密情報を残しません。pipenvを推奨しているため、仮想環境と依存解決が容易で、pipenv run botで起動可能。運用面では誤BANを避けるため除外ロールの管理やログ出力、例外処理/レートリミット対応が重要です。またスケールは想定しておらず、マルチサーバーでの細かなポリシー違いに対応するにはコード拡張(チャンネルごとの設定保存やコマンドでの制御)が必要です。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .env.example: 環境変数のサンプル。Botトークン、対象チャンネルID、除外ロールIDなどの記載がある想定。
  • .gitignore: 仮想環境や.env等を除外する設定。
  • LICENSE: ライセンスファイル(リポジトリの使用許諾を明示)。
  • Pipfile: pipenv用の依存定義。discord関連ライブラリなどが記載される。
  • Pipfile.lock: 依存のロックファイル。再現性のある環境構築を支援。
  • README.md: 導入手順と権限/インテントに関する注意事項(抜粋は下部に掲載)。
  • channelbans/ (ディレクトリ想定): 実際のボット実装ファイル(イベントハンドラや設定読み込みロジック)。
  • run / 起動スクリプト(あるいは入口ファイル): pipenv run botから起動するためのエントリ。 …他 3 ファイル

運用と設定の流れ(概略):

  1. リポジトリをクローンして channelbans ディレクトリへ移動。
  2. .env.example.env にコピーして必要値を編集(BOT_TOKEN、TARGET_CHANNEL_ID、EXEMPT_ROLE_IDSなど)。
  3. pipenvで依存をインストールし、起動する。ログやDiscordのBot設定でインテントと権限を確認する。

まとめ

小さく素早く導入できる即時BAN用の実用的ボットです(50字程度)。

リポジトリ情報:

READMEの抜粋:

ChannelBan

This bot watches a channel and bans users if they post in it (with configurable role exclusions).

This bot requires the Server Members and Message Content intents.

In guilds it requires View Channels, Read Message History, Moderate Members, and Ban Members.

To run:

cd channelbans/
cp .env.example .env

edit .env with all the values specified in the comments.

pipenv is recommended.

pipenv install
pipenv run bot