Genshin Circle Support Bot
Discord Bot
Discord Bot
Screenshots
About
Genshin Support Bot
概要
原神(Genshin Impact)に関するサポート機能を提供するDiscord Botです。キャラクター情報の検索、天賦素材の確認、誕生日通知、聖遺物評価など、原神プレイヤーに役立つ機能を搭載しています。
主な機能
🎂 誕生日機能
- 誕生日チェック: 毎日午前1時にキャラクターの誕生日をチェック
- 誕生日通知: 誕生日のキャラクターがいる場合、午後1時に公式SNS情報と共に通知
- 誕生日イラスト案内: 公式Twitter/Instagram/TikTokのリンクを提供
🗡️ 天賦素材機能
- 天賦素材チェック: 毎日午前5時に当日入手可能な天賦素材を通知
- 国別表示: 天賦素材を国ごとに整理して表示
- 曜日カラー: 曜日に応じた色分けでEmbed表示
🏆 聖遺物評価機能
- 画像解析: Gemini APIを使用した聖遺物画像の自動解析
- スコア計算: 会心率・会心ダメージ・攻撃力・HP・防御力のスコア算出
- データベース連携: 聖遺物セット名の自動取得
📅 定期通知機能
- HoyoLabログイン報酬: 毎日午前1時にログイン報酬更新を通知
- デイリー報酬: 毎日午前5時にゲーム内デイリー報酬更新を通知
- 幻想シアター: 毎月1日午前5時に更新通知
- 螺旋: 毎月16日午前5時に更新通知
スラッシュコマンド
/character-information_view
キャラクター名を入力してキャラクター情報を表示
- 表示項目: キャラ名、元素、国名、武器、天賦、声優、誕生日、実装日
- カラー表示: 元素に応じた色分け
/tenpu-to-character_view
天賦素材名からそれを使用するキャラクターを表示
- 表示項目: 該当キャラクターの詳細情報
- カラー表示: 国に応じた色分け
/select_character_by_element_view
元素を選択してキャラクターを検索
- 機能: ドロップダウンメニューによる直感的な操作
- 主人公対応: 空と蛍の選択が可能
アーキテクチャ
クラス構成
DiscordBot
- 役割: Bot全体の制御と初期化
- 機能: イベント設定、タスクスケジューリング、時間監視
- 主要メソッド:
calculate_next_monthly_time(): 月次タスクの次回実行時間計算time_checker(): 定期タスクの実行監視setup_events(): Discord イベントハンドラーの設定
BotRoutine
- 役割: 定期実行される各種ルーチン処理
- 機能: 誕生日チェック、天賦チェック、各種通知
- 主要メソッド:
check_birthdays_message(): 誕生日キャラクターの確認check_tenpu_names(): 天賦素材の確認send_birthday_image_message(): 誕生日イラスト通知
ArtifactEvaluator
- 役割: 聖遺物の画像解析と評価
- 機能: Gemini APIによるOCR、スコア計算、データベース連携
- 主要メソッド:
evaluate_artifact(): 聖遺物評価のメイン処理get_artifact_stats_with_gemini(): Gemini APIによる画像解析calculate_scores(): 各種スコアの計算
BotCommands
- 役割: スラッシュコマンドの定義と処理
- 機能: キャラクター検索、天賦検索、ユーザー入力処理
- 主要メソッド:
setup_commands(): 全コマンドの登録character_by_element(): 元素別キャラクター取得
CharacterSelectionView
- 役割: インタラクティブなキャラクター選択UI
- 機能: ドロップダウンメニューによる元素・キャラクター選択
- 主要メソッド:
element_select_callback(): 元素選択時の処理character_select_callback(): キャラクター選択時の処理
データベース構成
- データベース: PostgreSQL
- 主要テーブル:
character_list: キャラクター情報element_list: 元素情報country_list: 国情報tenpu_list: 天賦素材情報weapon_list: 武器情報voice_actor_list: 声優情報
技術仕様
依存関係
discord.py: Discord API操作psycopg2: PostgreSQL接続google.generativeai: Gemini APIPIL: 画像処理python-dotenv: 環境変数管理asyncio: 非同期処理requests: HTTP通信とAPI連携re: 正規表現処理
環境変数
Genshin_Support_Bot_TOKEN: DiscordボットのトークンGEMINI_API_KEY: Gemini APIキーpsql_password: PostgreSQLパスワードtmu_genshin_circle_home_CHANNEL_ID: ホームチャンネルIDtmu_genshin_circle_routine-announcement_CHANNEL_ID: 定期通知チャンネルIDtmu_genshin_circle_end-contents_CHANNEL_ID: 期間限定コンテンツ通知チャンネルIDtmu_genshin_circle_command_CHANNEL_ID: コマンド実行専用チャンネルIDtmu_genshin_circle_artifacts_CHANNEL_ID: 聖遺物評価専用チャンネルID
カラーテーマ
- 元素カラー: 各元素に対応した色分け(風=緑、岩=オレンジ等)
- 国カラー: 各国に対応した色分け
- 曜日カラー: 曜日別の色分け
- 聖遺物カラー: 聖遺物部位別の色分け
セットアップ手順
- 環境変数設定:
.envファイルに必要な設定を記載 - データベース準備: PostgreSQLデータベースとテーブルを作成
- 依存関係インストール:
pip install -r requirements.txt - Bot実行:
python genshin_bot.py
運用について
定期タスクスケジュール
- 午前1時: 誕生日チェック、HoyoLabログイン報酬通知
- 午前5時: 天賦素材チェック、デイリー報酬通知
- 午後1時: 誕生日イラスト通知
- 毎月1日: 幻想シアター更新通知
- 毎月16日: 螺旋更新通知
エラーハンドリング
- データベース接続エラーの適切な処理
- タイムアウト処理(90秒)
- Gemini API呼び出し失敗時の代替処理
注意事項
- 聖遺物評価機能は特定のチャンネルでのみ動作
- スラッシュコマンドは指定されたコマンドチャンネルでのみ実行可能
- 画像解析には数秒の処理時間が必要