Skip to content

tetsuya-ki/discord-reacji-channeler

Repository files navigation

このBotについて

SlackのReacji Channeler(リアク字チャンネラー)っぽい機能が使えるBotです。

Table of Contesnts

  1. 機能
  1. 環境変数の説明

  2. ローカルでの動かし方

機能

リアク字チャンネラー(Discord)カテゴリ(reactionchannelercog.pyで実装)

/reacji-channeler リアク字チャンネラー(Discord)を操作するコマンド(サブコマンド必須)。Slackのリアク字チャンネラーからインスパイアされ、作成したもの。

  • リアク字チャンネラー(Discord)追加・・・このリポジトリではスラッシュコマンドが有効なので少し雰囲気が違います

    • reacji-channeler add
      image(reactionChanneler_add)
  • リアク字チャンネラー(Discord)削除・・・このリポジトリではスラッシュコマンドが有効なので少し雰囲気が違います

    • reacji-reacji-channeler remove
      image(reactionChanneler_delete)
  • リアク字チャンネラー(Discord)表示・・・このリポジトリではスラッシュコマンドが有効なので少し雰囲気が違います

    • reacji-channeler list
      image(reactionChanneler_list)
  • リアク字チャンネラー(Discord)全削除

    • reacji-channeler purge image(reactionChanneler_purge)
  • リアク字チャンネラー(Discord)の対象のリアクションを追加すると、
    image(reactionChanneler)

  • あらかじめ指定されたチャンネルへリンクが投稿される
    image(reactionChanneler-2)

  • 環境変数で設定しておけば、別のギルドのチャンネルへリンクを投稿することもできる image(reactionChanneler-3)

環境変数の説明

  • DISCORD_TOKEN = "discord_bot_token"
    • ここにDiscord Botのトークンを貼り付ける(とても重要。これをしないと動かない)
  • APPLICATION_ID="99999999"
    • あなたのBotのAPPLICATION IDを指定する(スラッシュコマンドを使う上で設定が必須となります)
    • 開発者ポータルの該当BotのGeneral Informationの上部にある、APPLICATION ID
  • LOG_LEVEL = INFO
    • ログレベルを設定したい場合、設定する。デフォルトはWARNING。DEBUG, INFO, WARNING, ERRORが設定可能
  • IS_HEROKU = True
    • Herokuで動かす場合、Trueとする(discordのチャンネルを使用し、リアクションチャネラーのデータが消えないように試みる(reacji_channel_controlを作成し、そこにjsonデータを添付することでデータを保持する))
  • 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)を登録され情報が流出することを防ぐため、環境変数で指定がない限り実行されないようにする(少し面倒かもしれない)
  • ENABLE_SLASH_COMMAND_GUILD_ID
    • 普通に動かすときは起動しないでください
    • これを指定すると、すぐにコマンドが反映されます(つまり、開発中に使うもの)
    • スラッシュコマンドを有効にするギルドID(複数ある場合は「;」を間に挟むこと/それぞれのギルドにスラッシュコマンドを許可されたこのBotが必要(どこかのギルドに登録されていない場合、または、登録されていてもスラッシュコマンドが許可されていない場合、エラーとなります))
      • 1件の場合: ENABLE_SLASH_COMMAND_GUILD_ID=18471289371923
      • 2件の場合: ENABLE_SLASH_COMMAND_GUILD_ID=18471289371923;1389103890128390

fly.ioでの動かし方

# 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

ローカルでの動かし方

ローカルでの動かし方(Poetry)

  1. Install Poetry
    https://python-poetry.org/docs/#installation

  2. Install modules
    poetry install

  3. create .env
    .env.sampleを参考に.envを作成する
    Botはこちらで作成し、トークンを取得する(トークンは厳重に管理すること!)
    *環境変数を修正する際は、環境変数の説明を参照すること!

  4. Start Bot
    poetry run python reacji-channeler-bot.py

古い方法

  • 詳しくはwikiを参照ください!
  1. Install modules

    Mac: pip3 install -r requirements.txt
    Windows: py -3 pip install -r requirements.txt

  2. create .env
    .env.sampleを参考に.envを作成する
    Botはこちらで作成し、トークンを取得する(トークンは厳重に管理すること!)
    *環境変数を修正する際は、環境変数の説明を参照すること!

  3. Start Bot

    Mac: python3 reacji-channeler-bot.py
    Windows: py -3 reacji-channeler-bot.py

Releases

No releases published

Packages

No packages published