Notify Genshin API Bot
Discord Bot
Discord Bot
Screenshots
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: 通知送信先チャンネルIDGENSHIN_UserID: 原神のユーザーIDltoken: HoyoLab認証トークンltuid: HoyoLab ユーザーID
API仕様
- エンドポイント:
https://bbs-api-os.hoyoverse.com/game_record/genshin/api/dailyNote - メソッド: GET
- パラメータ:
role_id: ゲーム内ユーザーIDserver: サーバー指定(os_asia)schedule_type: スケジュールタイプ(1)
通知条件
自動通知トリガー
- 天然樹脂: 180を超えた場合
- 洞天集宝盆: 2000を超えた場合
- デイリー任務: 21時以降に未完了の場合
- 参量物質変化器: 使用可能になった場合
- 探索派遣: 全派遣が完了した場合
通知メッセージ形式
- 明確で分かりやすいメッセージ
- 現在の数値情報を含む詳細表示
- 複数条件該当時は改行区切りでの一括通知
セットアップ手順
- 環境変数設定:
.envファイルに必要な認証情報を設定 - HoyoLab設定: Cookieの取得と設定
- Discord設定: Bot作成と権限設定
- 依存関係インストール:
pip install -r requirements.txt - 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コマンドで手動データ取得テスト- 環境変数の設定値を再確認