Skip to content

Latest commit

 

History

History
122 lines (90 loc) · 4.42 KB

README.md

File metadata and controls

122 lines (90 loc) · 4.42 KB

グランブルーファンタジー用のDiscord Bot

機能一覧

  • マルチバトル募集機能
    • アルティメットバハムート
    • ダークラプチャーHard(ルシファー)
    • ベルゼバブ
    • ベリアル
    • スーパーアルティメットバハムート
    • 六色の理
  • スケジュール通知機能(サーバー毎にカスタマイズ可能)
    • 古戦場開催期間
      • 3日前、1日前に通知
      • 予選開始、終了時に通知
      • 本戦日ごとの開始時、中間時間、終了時に通知
      • スペシャルバトル開始、終了時に通知
      • 古戦場期間終了時の通知
    • ドレッドバラージュ開催期間
      • 開始時、終了時に通知
  • サーバー(Guild)管理者向け機能
    • スプレッドシート読み込み
      • サーバー毎のスケジュール
      • サーバー毎のメッセージ
      • サーバー毎の環境変数
    • スプレッドシート書き込み
      • スケジュール一覧
      • 最終動作時間
  • Bot管理者向け機能(全サーバー共通設定)
    • スプレッドシート読み込み・書き込み
      • 全サーバー共通スケジュール
      • 全サーバー共通メッセージ
      • 全サーバー共通マルチバトル募集のクエスト
      • 全サーバー共通の環境変数
    • スプレッドシート書き込み
      • スケジュール一覧
      • 最終動作時間

機能詳細

マルチバトル募集機能

  • クエストの募集コマンドがあります。
  • クエスト参加者が集まった場合、通知されます。
  • 日時を入力していた場合、その日時にも通知されます。

コマンド ※[]付きのパラメータは任意項目

/recruit 対象クエスト [討伐方法] [日時]

イベントスケジュール通知機能

  • グラブルのイベントを開始・終了日時を通知してくれます。
  • 古戦場期間の場合、開始や終了の日時なども通知されます。
  • サーバーオリジナルのイベントを作って通知もできるため、団サポの発動や特定の時間に集合のリマインドをかけることもできます。
  • イベント管理はスプレッドシート経由で行えます。

データの可視化・編集(※Googleスプレッドシートを使用)

  • 各種データはスプレッドシートを経由して入力・出力ができるようにしています。(データにより入力のみ、出力のみがあります)
  • スプレッドシートの編集権限は信頼できる方に限定してください。

チャット機能(制作中、現時点では追加予定の機能を記載)

  • 会話ができます(ChatGPTのAPIを使用しています
  • ヒヒイロチャレンジができます。
  • マルチ募集やスケジュールのことで質問や会話ができます。

データ自動整理(制作中、現時点では追加予定の機能を記載)

全ての過去データは1ヶ月経過したものは削除するようにしています。(Botデータ、スプレッドシートそれぞれ実施)

開発環境

環境構築

devcontainerを使用しており、基本的な設定はそこにまとめています。

  1. ソースをgit cloneする
  2. configフォルダに環境ファイルを用意する
    1. .env(.env.exampleをコピーしてください)
    2. .env.db.production(.env.db.productionをコピーし、DB接続情報を編集してください)
    3. .env.testing(.env.exampleをコピーしてください)
    4. gcp-credentials.json(Google Cloud Platformにてサービスアカウントを作成し、キーをJsonで作ったものをリネームして入れてください)
  3. VSCodeで開き「コンテナで再度開く」を選択

デバッグ実行

.vscode/launch.json が作ってあるため、そのまま「実行」タブから実行できます。

テスト実行

pytest、pytest-asyncioを使用しています。 devcontainer作成の時点でこれらの環境は自動的に作られるため、「テスト」タブから実行可能です。

本番環境

実行

docker-composeを使用しています。 ※将来的にはk8sへ移行する予定

本番環境開始

sh prod.up.sh

キャッシュをクリアして実行したい場合

sh prod.up.nocache.sh

停止する場合

sh prod.down.sh