Notify Genshin API Bot

Discord Bot

Discord Bot

Screenshots

Notify Genshin API Bot - 1

About

Notify HoYoverse Bot

概要

原神のゲーム内状況を定期的に監視し、重要な通知を自動でDiscordに送信するBotです。天然樹脂の溢れ防止、デイリー任務の完了確認、洞天集宝盆の管理、探索派遣の完了通知などを行います。

主な機能

🔄 定期監視機能

  • 監視間隔: 1時間ごとに自動実行
  • HoyoLab API連携: 公式APIを使用したリアルタイムデータ取得
  • 自動通知: 設定条件に達した際の自動Discord通知

⚡ 天然樹脂監視

  • 溢れ警告: 天然樹脂が180を超えた場合に通知
  • リアルタイム表示: 現在の樹脂量(xxx/200形式)
  • 時間管理: 効率的な樹脂消費のサポート

🏠 洞天集宝盆監視

  • 容量警告: 集宝盆が2000を超えた場合に通知
  • 最大容量表示: 現在量/最大容量の形式で表示
  • 収集忘れ防止: 定期的な回収を促進

📋 デイリー任務管理

  • 完了確認: デイリー任務報酬の受け取り状況をチェック
  • 時間制限通知: 21時以降に未完了の場合は警告
  • 報酬取得状況: 受け取り済み/未受け取りの明確な表示

🔄 参量物質変化器

  • 使用可能通知: 変化器が使用可能になった際の通知
  • クールタイム管理: 使用可能/使用不可の状態表示
  • 効率的利用: 忘れがちなアイテム使用のリマインド

🗺️ 探索派遣管理

  • 完了通知: 全ての派遣が完了した場合に通知
  • 個別状況表示: キャラクター名と完了/進行中の状況
  • 効率的管理: 派遣の回転率向上をサポート

スラッシュコマンド

/genshin_status

現在の原神ゲーム内状況をEmbed形式で表示

表示項目:

  • 天然樹脂: 現在量/最大量(200)
  • 洞天集宝盆: 現在量/個人の最大容量
  • デイリー任務報酬: 受け取り済み/未受け取り
  • 参量物質変化器: 使用可能/使用不可
  • 探索派遣: キャラクター別の完了状況一覧

特徴:

  • 見やすいEmbed形式での情報表示
  • リアルタイムデータの取得
  • 一目で分かる状況把握

アーキテクチャ

API連携

  • HoyoLab API: bbs-api-os.hoyoverse.comの公式APIを使用
  • 認証方式: Cookie認証(ltoken_v2, ltuid_v2)
  • サーバー指定: Asia(os_asia)サーバー対応
  • データ形式: JSON形式でのレスポンス処理

通知システム

  • 監視ループ: @tasks.loop(hours=1)による定期実行
  • 条件分岐: 各種閾値による通知判定
  • Discord連携: 専用チャンネルへの自動メッセージ送信
  • エラーハンドリング: API応答エラーの適切な処理

データ処理

  • JSON解析: HoyoLab APIレスポンスの構造化データ処理
  • 状態管理: 各種ゲーム内リソースの状態追跡
  • 時間管理: 現在時刻を考慮した通知タイミング制御

技術仕様

依存関係

  • discord.py: Discord API操作とBot機能
  • requests: HTTP通信とAPI連携
  • python-dotenv: 環境変数管理
  • datetime: 時間関連処理
  • logging: ログ出力とデバッグ

環境変数

  • Notify_HoYoverse_BOT_TOKEN: Discord Bot トークン
  • notify_HoYoverse_CHANNEL_ID: 通知送信先チャンネルID
  • GENSHIN_UserID: 原神のユーザーID
  • ltoken: HoyoLab認証トークン
  • ltuid: HoyoLab ユーザーID

API仕様

  • エンドポイント: https://bbs-api-os.hoyoverse.com/game_record/genshin/api/dailyNote
  • メソッド: GET
  • パラメータ:
    • role_id: ゲーム内ユーザーID
    • server: サーバー指定(os_asia)
    • schedule_type: スケジュールタイプ(1)

通知条件

自動通知トリガー

  1. 天然樹脂: 180を超えた場合
  2. 洞天集宝盆: 2000を超えた場合
  3. デイリー任務: 21時以降に未完了の場合
  4. 参量物質変化器: 使用可能になった場合
  5. 探索派遣: 全派遣が完了した場合

通知メッセージ形式

  • 明確で分かりやすいメッセージ
  • 現在の数値情報を含む詳細表示
  • 複数条件該当時は改行区切りでの一括通知

セットアップ手順

  1. 環境変数設定: .envファイルに必要な認証情報を設定
  2. HoyoLab設定: Cookieの取得と設定
  3. Discord設定: Bot作成と権限設定
  4. 依存関係インストール: pip install -r requirements.txt
  5. Bot実行: python notify_hoyo.py

運用について

監視スケジュール

  • 実行間隔: 1時間ごと
  • 24時間監視: 継続的な状況チェック
  • 効率的通知: 必要時のみの通知送信

セキュリティ

  • 認証情報保護: 環境変数による機密情報管理
  • API制限遵守: 適切なリクエスト間隔の維持
  • エラー処理: 不正アクセス防止とログ記録

メンテナンス

  • ログ監視: 定期的なログ確認
  • API状況確認: HoyoLab API の可用性チェック
  • 認証更新: Cookieの定期的な更新

注意事項

  • HoyoLabのCookie情報が必要です
  • API仕様変更により動作しなくなる可能性があります
  • ゲーム内データの取得には公式APIを使用しています
  • 過度なAPI呼び出しは控えてください

トラブルシューティング

よくある問題

  • API応答エラー: Cookie の期限切れを確認
  • 通知が来ない: チャンネルIDと Bot 権限を確認
  • データが古い: API接続状況を確認

デバッグ方法

  • ログレベルをINFOに設定してエラー内容を確認
  • /genshin_statusコマンドで手動データ取得テスト
  • 環境変数の設定値を再確認