SlackのReacji Channeler(リアク字チャンネラー)っぽい機能が使えるBotです。
/reacji-channeler
リアク字チャンネラー(Discord)を操作するコマンド(サブコマンド必須)。Slackのリアク字チャンネラーからインスパイアされ、作成したもの。
-
リアク字チャンネラー(Discord)追加・・・このリポジトリではスラッシュコマンドが有効なので少し雰囲気が違います
-
リアク字チャンネラー(Discord)削除・・・このリポジトリではスラッシュコマンドが有効なので少し雰囲気が違います
-
リアク字チャンネラー(Discord)表示・・・このリポジトリではスラッシュコマンドが有効なので少し雰囲気が違います
-
リアク字チャンネラー(Discord)全削除
-
環境変数で設定しておけば、別のギルドのチャンネルへリンクを投稿することもできる
- DISCORD_TOKEN = "discord_bot_token"
- ここにDiscord Botのトークンを貼り付ける(とても重要。これをしないと動かない)
- APPLICATION_ID="99999999"
- あなたのBotの
APPLICATION ID
を指定する(スラッシュコマンドを使う上で設定が必須となります) - 開発者ポータルの該当Botの
General Information
の上部にある、APPLICATION ID
- あなたのBotの
- LOG_LEVEL = INFO
- ログレベルを設定したい場合、設定する。デフォルトはWARNING。DEBUG, INFO, WARNING, ERRORが設定可能
- IS_HEROKU = True
- Herokuで動かす場合、Trueとする(discordのチャンネルを使用し、リアクションチャネラーのデータが消えないように試みる(
reacji_channel_control
を作成し、そこにjsonデータを添付することでデータを保持する))
- Herokuで動かす場合、Trueとする(discordのチャンネルを使用し、リアクションチャネラーのデータが消えないように試みる(
- FIRST_REACTION_CHECK = True
- すでにリアクションが付けられた物について、リアク字チャンネラー(Discord)を発動しないかどうかの設定。基本的にはTrueがオススメ。寂しいときはFalseでもOK(何回だってチャンネルに転記されちゃいますが!)
- REACJI_CHANNELER_PERMIT_WEBHOOK_ID = "webhook_id"
- リアク字チャンネラー(Discord)機能の拡張設定。ここにWebhook IDか「all」という文字列を記載すると、リアク字チャンネラー(Discord)機能でWebhookが使用できる
- リアクションを設定するだけで、別のギルドにメッセージを転送することができるようになる
- この環境変数にWebhook IDがない、または、allが記載されていない場合、登録は可能だが、実際に実行はされない
- 勝手にリアク字チャンネラー(Discord)を登録され情報が流出することを防ぐため、環境変数で指定がない限り実行されないようにする(少し面倒かもしれない)
- リアク字チャンネラー(Discord)機能の拡張設定。ここにWebhook IDか「all」という文字列を記載すると、リアク字チャンネラー(Discord)機能でWebhookが使用できる
- ENABLE_SLASH_COMMAND_GUILD_ID
- 普通に動かすときは起動しないでください
- これを指定すると、すぐにコマンドが反映されます(つまり、開発中に使うもの)
- スラッシュコマンドを有効にするギルドID(複数ある場合は「;」を間に挟むこと/それぞれのギルドにスラッシュコマンドを許可されたこのBotが必要(どこかのギルドに登録されていない場合、または、登録されていてもスラッシュコマンドが許可されていない場合、エラーとなります))
- 例
- 1件の場合: ENABLE_SLASH_COMMAND_GUILD_ID=18471289371923
- 2件の場合: ENABLE_SLASH_COMMAND_GUILD_ID=18471289371923;1389103890128390
# fly.ioのweb cliでもOK。もしくはflyコマンド可能なところ
# git clone
git clone https://github.com/tetsuya-ki/discord-reacji-channeler.git
cd discord-reacji-channeler
# fly.io起動準備(DBなどは不要)
flyctl launch
# fly.ioの環境変数指定(環境変数の設定見つつ指定してください)
flyctl secrets set LOG_LEVEL=INFO
flyctl secrets set IS_HEROKU=TRUE
flyctl secrets set FIRST_REACTION_CHECK=TRUE
flyctl secrets set REACJI_CHANNELER_PERMIT_WEBHOOK_ID=all
flyctl secrets set DISCORD_TOKEN=__トークン__
flyctl secrets set APPLICATION_ID=__アプリケーションID__
# 起動
flyctl deploy
-
Install Poetry
https://python-poetry.org/docs/#installation -
Install modules
poetry install
-
create .env
.env.sample
を参考に.env
を作成する
Botはこちらで作成し、トークンを取得する(トークンは厳重に管理すること!)
*環境変数を修正する際は、環境変数の説明を参照すること! -
Start Bot
poetry run python reacji-channeler-bot.py
- 詳しくはwikiを参照ください!