Genshin Circle Support Maintenance Bot

Discord Bot

Discord Bot

Screenshots

Genshin Circle Support Maintenance Bot - 1

About

Maintenance Genshin Support Bot

概要

原神サポートBotのメンテナンス版です。本番環境のBotと同様の機能を持ちながら、開発・テスト・メンテナンス用途に特化したDiscord Botです。独立したチャンネル設定により、本番環境に影響を与えることなく機能の検証や改良作業を行うことができます。

主な機能

🎂 誕生日機能

  • 誕生日チェック: 毎日午前1時にキャラクターの誕生日をチェック
  • 誕生日通知: 誕生日のキャラクターがいる場合、設定時間に公式SNS情報と共に通知
  • テスト機能: 午前1時16分にテスト用誕生日通知設定
  • 詳細ログ: 誕生日キャラクターリストの詳細なログ出力

🗡️ 天賦素材機能

  • 天賦素材チェック: 毎日午前5時に当日入手可能な天賦素材を通知
  • 国別表示: 天賦素材を国ごとに整理して表示
  • Embedログ: 送信したEmbedの詳細なログ記録

🏆 聖遺物評価機能

  • 画像解析: Gemini APIを使用した聖遺物画像の自動解析
  • 全チャンネル対応: チャンネル制限なしで聖遺物評価が可能
  • スコア計算: 会心率・会心ダメージ・攻撃力・HP・防御力のスコア算出

📅 定期通知機能

  • HoyoLabログイン報酬: 毎日午前1時にログイン報酬更新を通知
  • デイリー報酬: 毎日午前5時にゲーム内デイリー報酬更新を通知
  • 幻想シアター: 毎月1日午前5時に更新通知
  • 螺旋: 毎月16日午前5時に更新通知

スラッシュコマンド

基本情報コマンド

  • /testtext: 動作確認用のデモンストレーションコマンド
  • /character-information_view: キャラクター名からキャラクター情報を表示
  • /tenpu-to-character_view: 天賦素材からキャラクターを表示

聖遺物関連コマンド

  • /score-data_view: 聖遺物スコア計算(改良版UI)
  • /score-data_write: 聖遺物スコア計算(基本版)

選択式コマンド

  • /select_character_by_element_view: 元素選択によるキャラクター検索
  • /select_tenpu_view: 天賦選択によるキャラクター検索

レガシーコマンド

  • /tenpu-to-character: 天賦からキャラクター検索(テキスト形式)
  • /character-information: キャラクター情報表示(テキスト形式)

アーキテクチャ

クラス構成

DiscordBot

  • 役割: Bot全体の制御と初期化
  • 機能: イベント設定、タスクスケジューリング、時間監視
  • メンテナンス特有の機能:
    • 詳細なログ出力
    • テスト用時間設定
    • APSchedulerサポート(準備済み)

BotRoutine

  • 役割: 定期実行される各種ルーチン処理
  • 機能: 誕生日チェック、天賦チェック、各種通知
  • メンテナンス特有の機能:
    • より詳細なログ記録
    • デバッグ情報の出力
    • Embedの構造ログ

ArtifactEvaluator

  • 役割: 聖遺物の画像解析と評価
  • 機能: 本番版と同等の聖遺物評価機能
  • 改良点: エラーハンドリングの強化

BotCommands

  • 役割: スラッシュコマンドの定義と処理
  • 機能: 本番版のコマンド + メンテナンス専用コマンド
  • 改良点:
    • より多様なコマンドオプション
    • 改良されたUI(wait_for_input関数)
    • エラーハンドリングの改善

CharacterSelectionView

  • 役割: インタラクティブなキャラクター選択UI
  • 機能: 本番版と同等のドロップダウンメニュー機能

TenpuSelectionView

  • 役割: 天賦選択用のインタラクティブUI
  • 機能: 天賦をドロップダウンで選択し、関連キャラクターを表示
  • 特徴: メンテナンス版で新規追加された機能

データベース構成

  • データベース: PostgreSQL(本番と同じ構造)
  • エンコーディング: UTF-8設定を明示的に指定
  • 主要テーブル: 本番版と同じテーブル構成

技術仕様

依存関係

  • discord.py: Discord API操作
  • psycopg2: PostgreSQL接続
  • google.generativeai: Gemini API
  • PIL: 画像処理
  • python-dotenv: 環境変数管理
  • apscheduler: スケジューラー(準備済み、未使用)
  • asyncio: 非同期処理
  • requests: HTTP通信とAPI連携
  • re: 正規表現処理

環境変数

  • Maintenance_Genshin_Support_Bot_TOKEN: メンテナンス用ボットトークン
  • GEMINI_API_KEY: Gemini APIキー
  • psql_password: PostgreSQLパスワード
  • メンテナンス専用チャンネルID設定:
    • maintenance_genshin_support_home_CHANNEL_ID: メンテナンス用ホームチャンネルID
    • maintenance_genshin_support_routine_CHANNEL_ID: メンテナンス用定期通知チャンネルID
    • maintenance_genshin_support_endcontents_CHANNEL_ID: メンテナンス用期間限定コンテンツ通知チャンネルID
    • maintenance_genshin_support_command_CHANNEL_ID: メンテナンス用コマンド実行専用チャンネルID

メンテナンス版の特徴

  1. 独立したチャンネル: 本番環境と完全に分離された動作環境
  2. 詳細なログ: 開発・デバッグ用の詳細なログ出力
  3. テスト機能: 機能テスト用の設定やコマンド
  4. UI改良: よりユーザーフレンドリーなインターフェース
  5. エラーハンドリング強化: より堅牢なエラー処理

開発・メンテナンス用途

機能テスト

  • 新機能の安全なテスト環境
  • 既存機能の動作確認
  • データベーススキーマ変更のテスト

デバッグ機能

  • 詳細なログ出力による問題診断
  • ステップバイステップの動作確認
  • エラー再現とトラブルシューティング

UI/UX改良

  • 新しいUIコンポーネントのテスト
  • ユーザビリティの改善検証
  • レスポンシブデザインの確認

セットアップ手順

  1. 環境変数設定: メンテナンス用の.env設定
  2. チャンネル準備: メンテナンス専用Discordチャンネルの作成
  3. データベースアクセス: 本番と同じデータベースへの接続設定
  4. 依存関係インストール: pip install -r requirements.txt
  5. Bot実行: python maintenance.py

運用ガイドライン

使用タイミング

  • 新機能開発時のテスト
  • バグ修正の動作確認
  • データベーススキーマ変更時の検証
  • 定期メンテナンス作業

注意事項

  • 本番データベースを使用するため、データ操作は慎重に実行
  • テスト時間の設定により、予期しない通知が発生する可能性
  • メンテナンス作業完了後は適切にBot停止

ログ監視

  • 詳細なログ出力を活用した動作監視
  • エラーログの定期的な確認
  • パフォーマンス指標の記録

本番版との差異

追加機能

  • TenpuSelectionView: 天賦選択UI
  • /testtext: テスト用コマンド
  • 改良されたスコア計算UI
  • より詳細なログ出力

設定の違い

  • 独立したチャンネルID設定
  • テスト用時間設定
  • UTF-8エンコーディング明示

開発支援機能

  • APScheduler準備(将来的な拡張用)
  • 汎用入力待機関数
  • エラーハンドリングの強化