2022/05/06 更新していません


setup

config.ini

[ID]
TOKEN = 0MzYzNjhogehogehogeTE5.YkgiYG0eWFrcjhf_-8
ID_EVERYONE = 8250123456780851
ID_NOTIFY_CHANNEL = 959771234567849104
ALLOWED_CHANNELS = [959771234567849104, 12345678567849104]

TOKEN

下記手順にて取得したTOKEN文字列を設定

  1. Discord DEVELOPER PORTALにてアプリを作成
  2. Botを作成し、TOKENを取得

ID_EVERYONE

下記手順にて取得したロールIDを設定

  1. Discord: ユーザ設定>詳細設定>開発者モードを有効化
  2. サーバー設定>ロール>デフォルトの権限等にて対象ロールを右クリックしIDを取得

ID_NOTIFY_CHANNEL

下記手順にて取得したチャンネルIDを設定

  1. Discord: ユーザ設定>詳細設定>開発者モードを有効化
  2. 対象チャンネルを右クリックしIDを取得

ALLOWED_CHANNELS

ID_EVERYONEと同様の手順にてIDを取得し、配列として設定

デプロイ

下記記事のHerokuへのデプロイ部を参考
参考: Pythonで実用Discord Bot(discordpy解説)

ループ処理が動作しない問題

30分スリープ問題
Heroku無料枠の限界に挑む
下記にて解決してません
24時間

  • アカウント認証(クレジットカード登録)
  • Heroku Schedulerアドオン追加
  • 10分間隔にてcurl https://[app_name].herokuapp.com/等サーバに対してアクセスを行うコマンドを実行

デプロイの参考記事にて24時間毎に再起動する旨の記述あり
実際に変数がリセットされていたので正しいと思われる
n週指定の通知については変数に格納せずとも実装可能と思われるので後日修正予定

項目追加

自動登録項目

bot.py>loop_subscribe関数内にてset_regular_event関数を使用して取得した配列をself.queueに追加