79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
# 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`
|
|
|