toukatsu-bot
東葛.devのDiscordにいるbot
権限はチャンネル閲覧と投稿のみのはず
役割は定期通知
通知内容
参加者募集掲示板の一覧通知
Discordの参加者募集掲示板のアクティブな投稿を通知する
日曜日と水曜日の朝9時に動作する
東葛.devのお気に入り(みんなで音楽プレイリストを作ろうの会参照)の追加曲通知
プレイリストに追加された曲があれば通知する
毎朝10時に動作する
bot詳細
共通
ほとんどGeminiが書いた
ソースコードはkouno.iconのGitHubプライベートリポジトリで管理されている
Deno、Deno Deploy(クラシック)を使っている
Deno Deployもkouno.iconの個人アカウントですね...属人化......
Deno Cronで定期実行
クラシックを利用している理由はこれで、新生Deno Deployにはcronがない
Discord botのAPIキーはkouno.iconが発行している
APIキーはDeno Deployに環境変数を入れる仕組みがあるのでそれで管理
Discord APIへのアクセスはDiscord.jsを利用
制約として、一覧表示みたいなのは10件までなので、それ以上は表示しないように制御している
参加者募集掲示板の一覧通知
参加者募集掲示板のアクティブな投稿(スレッド)を取得し、アナウンスチャンネルにフォーマットして投稿
東葛.devのお気に入りの追加曲通知
SpotifyのAPIを利用
APIキーはkouno.iconが発行している
Discord APIと違いこっちはプリミティブにfetchしてる
プレイリスト取得APIで変更IDと曲ID一覧を取得
Deno KVに保管してある前回の変更IDと比較
変更がなければ処理終了
変更があればDeno KVに保管してある前回の曲ID一覧と比較
追加楽曲のIDをリスト化
曲詳細取得APIで追加楽曲を検索
曲名、アーティスト名、アルバム名を取得
取得した内容をアナウンスチャンネルにフォーマットして投稿
変更IDと曲ID一覧をDeno KVに保存