お知らせし続けるbot
やりたいこと
ユーザからの入力を受け付ける
/notify add {message}というスラッシュコマンドを使ってリストにメッセージを登録
/notify listで番号付きリストで現在登録されているメッセージ一覧を出力
code:list_example.txt
1: botを作りました! (by. {username})
2: 定例会議について
3: 欠席します
誰により登録されたメッセージなのかも分かると良さそう、なんなら登録時刻のタイムスタンプもあると嬉しい?
/notify edit {message_ID} {edited_message}で番号に対応するメッセージを書き換え
空文字列(or空白のみ)で書き換えられた場合、リストから削除する動作
単純な削除と追加のみだと、メッセージを書き換えたときリスト内の順番が入れ替わるからこうした。
/notify remove {message_ID}
単純にメッセージを消す
mentionされた内容をリストに記録する
1日2回ランダムな時刻にリストの内容を「お知らせ」としてrandomチャンネルに投稿する
addされてから1週間が経過した「お知らせ」はリストから削除する
/notify [add, list, edit, remove, help]
技術的要件
技術的要件はWANTであってMUSTではない
Pythonで実装する
可能な限り型ヒントを用いる
Bolt for python
これで動いた
Boltのソケットモードをもちいる
ローカルのサーバで運用したいため
docker compose で起動できるようにする
Glitchというブラウザで動くIDEを使うと良さそう
月8ドル課金で5つのbotを常時稼働させられる
GlitchはSQLiteが使えるのでこれでデータを永続化する
他にもいろんなものをストレージにできるらしい
glitch.jsonにコマンドを書くと、起動時にコマンドを叩いて立ち上がるっぽい