# Workflow ## 全体の流れ ```mermaid flowchart TD A[アプリ起動] --> B[設定読み込み] B --> C[VRChat ログの探索] C --> D[GUI 起動] D --> E[タイマーで定期更新] E --> F[現在のワールド判定] E --> G[入退室ログ更新] E --> H[履歴データ更新] E --> I[OCR / 翻訳 / 設定反映] G --> J[Discord 送信が必要なら通知] H --> K[日別履歴表示] K --> L[選択した訪問を export] L --> M[visit_YYYYMMDD.log を保存] ``` ## 起動時 1. `config/config.toml` を読み込む。 2. GUI 設定を反映する。 3. `runtime/` 配下のログや履歴を確認する。 4. ネイティブ GUI を開く。 5. タイマーで定期更新を開始する。 ## ログ収集 1. VRChat の最新ログを探す。 2. ログの末尾を読み、`OnPlayerJoined` / `OnPlayerLeft` / `Entering Room` / `worldId=` などを拾う。 3. 現在のワールド名、人数、入退室イベントを更新する。 4. 必要なら `runtime/join_leave.log` に追記する。 5. 履歴用の `runtime/world_history.json` を参照して、訪問区間を組み立てる。 ## GUI 更新 1. 画面はタブごとに描画を切り替える。 2. ログタブは現在の入退室状況を表示する。 3. 翻訳タブは OCR と翻訳結果を表示する。 4. 設定タブは `top most`、文字サイズ、更新間隔、履歴条件を変更できる。 5. 履歴タブは日付カレンダーと、その日の訪問一覧を表示する。 ## 履歴タブ 1. 設定で `history_regex`、`history_from`、`history_to` を指定する。 2. カレンダーから日付を選ぶ。 3. その日の訪問ワールド一覧を出す。 4. 訪問を複数選択できる。 5. `Export` を押すと `runtime/visit_YYYYMMDD.log` を出力する。 6. 出力内容は選択した訪問のワールド名と、条件に一致した入退室行になる。 ## エクスポート例 ```text Date: 2026-06-29 Filter: POPPOHOUSE|Holiday-Cottage World: POPPOHOUSE [22:15] join ちりー@ [22:15] join ゆらいか World: Holiday-Cottage [20:47] join 毎日がHoliday' [20:48] leave 毎日がHoliday' ``` ## 保存されるもの - `runtime/runtime.log` - `runtime/join_leave.log` - `runtime/world_history.json` - `runtime/visit_YYYYMMDD.log` - `runtime/latest_ocr.png` - `runtime/latest_screenshot.png`