【python】Discordの自作BOTの小話
某うま擬人化のゲーム仲間から依頼が来たので、その話でも。
依頼内容「スプレッドシートからデータを抽出してDiscordのチャンネル上に表示する対話型BOTが欲しい」
アーキテクト
・言語:python
・主なライブラリ:discord, gspread
環境構築の話は割愛する。以下の先駆者様の記事が見やすく便利なため。
簡易的なシーケンスは以下の通り
・コマンドラインからpythonアプリケーション(BOT)をキック
・初期シーケンスでスプレッドシートの値を読み込み
・Discordのサーバに対してRunを実行
・以降、サーバ所属者から定型コマンド形式のリクエストが飛んで来たら処理する(非同期)
ソースコードはこちらの記事へ別管理(Markdown記法に切り替えたいため)
【python】BOTソースコードサンプル+スプレッドシートアクセスサンプル - 魔法でシステムは作れない
一個だけ解説を入れるとするなら、
スプレッドシートの日付データはシリアル値であり、
1899年12月30日から何日経ったというオフセット値を持つため
そのままシリアル値を日付型へ変換するとうまくいかないこと。
1行目では、実際にセルの値を取得している。:日付シリアル値
2行目では、1899年12月30日+日付シリアル値で実際の日付データを計算
(YYYY-MM-DD MI24:mm:ss形式)
※[:10]はLEFT(文字列,10)と同義
3行目ではYY-MM-DDからYY/MM/DDへ置換。
オチになるけど、正規表現でやった方が良いね