Reacji Channelerとは?
「リアク字」と呼ばれる専用の絵文字リアクションを使用して、パブリックチャンネルから別のチャンネルにメッセージをサクッとコピーできます。 あるチャンネルに投稿された内容が、ワークスペース内の他のチャンネルでの会話にも役立つ場合などに便利な機能
今回作ったBotの特徴
・Discordのスラッシュコマンドに対応(追加, 削除, 確認)
・Botが見えるところなら、プライベートなチャンネルにも対応
・環境変数で許可すれば、DiscordのWebhookを転送先として指定可能
・リアクションを何回でも反応するように環境変数で指定可能
・ひとつのリアクションに複数のチャンネルを登録可能
・reacji-channeler(本家)は本人にしか見えないが、このBotは他人にも見える(今のソースがそういう状態にしてあるだけで、Discordのスラッシュコマンドの関数の呼び方で挙動を変えることもできる*1)
招待リンク
*ぜひ、使ってみてください! 処理が重い場合、後述するReplitでクローンして自分専用のやつを作ってみるといいと思います!!
GitHubのリポジトリ
動いてる場所(Replit)
discord-reacji-channeler - Replit
*フォークすれば簡単に自分で試せます
--------
1.右上のForkを押す
2.Consuleで./start.shに実行権限を与える
chomd 744 ./start.sh
3.左の鍵マーク「Secrets」で以下の環境変数を設定する
DISCORD_TOKEN: ここにDiscordのトークンを書き込む
LOG_LEVEL: INFOやERRORやDEBUG
IS_HEROKU: TRUEかFALSE(TRUEだとデータをDiscordに保管する(勝手にチャンネル作る))
FIRST_REACTION_CHECK: True
REACJI_CHANNELER_PERMIT_WEBHOOK_ID: webhook_id(転送先にWebhookを選ぶことができる*DiscordのWebhookのみしか動かない。複数指定する場合、;で区切る。なんでも許可するなら、allを記載する)
4.Runボタンを押して起動する
5.uptime robotで定期的にアクセスする
Discord Developer Portalの説明とかちらっと書きました
--------
挙動について比較
追加
Slack
DIscord
確認
Slack
*Slackは説明が出ないのでちょっとわかりにくい(/reacji-channeler helpで確認する必要アリ)
Discord
削除
Slack
Discord
説明文章が間違っているのに今気づいた...。リアクションの転送先を複数指定できるので、ちゃんとチャンネルまで指定する必要がある(Slackより面倒くさいね!)
全削除
Discordのやつは、全部一気に削除できたほうが便利!!と思ったので、そういう機能を付けた。だれでも実行できるので、たくさんの人がいる場合、愉快犯的に削除されてしまう気もする。。。しかし、Slackでもやろうと思えば削除していくのは可能?なのかな?? その辺教えてください!
動画(Slack)
動画(Discord)
*1:Migration — discord-py-slash-command documentation
にある通り、ctx.sendのパラメータに、hidden = Trueを入れるだけ