Merge branch 'telemetry' into develop

This commit is contained in:
misyaguziya
2026-01-09 23:50:33 +09:00
5 changed files with 43 additions and 14 deletions

View File

@@ -726,7 +726,7 @@ class Config:
WEBSOCKET_PORT = ManagedProperty('WEBSOCKET_PORT', type_=int)
# --- Telemetry Settings ---
TELEMETRY_ENABLED = ManagedProperty('TELEMETRY_ENABLED', type_=bool)
ENABLE_TELEMETRY = ManagedProperty('ENABLE_TELEMETRY', type_=bool)
# --- Selection properties with validation (ManagedProperty) ---
SELECTED_TAB_NO = ManagedProperty('SELECTED_TAB_NO', type_=str, allowed=lambda v, inst: v in inst.SELECTABLE_TAB_NO_LIST)
@@ -1027,7 +1027,7 @@ class Config:
self._WEBSOCKET_PORT = 2231
## Telemetry
self._TELEMETRY_ENABLED = True # デフォルト有効
self._ENABLE_TELEMETRY = True # デフォルト有効
def load_config(self):
if os_path.isfile(self.PATH_CONFIG) is not False:

View File

@@ -56,7 +56,7 @@ class Controller:
dict with status 200 and result True on success.
"""
try:
model.shutdown()
model.telemetryShutdown()
return {"status": 200, "result": True}
except Exception:
errorLogging()
@@ -2595,6 +2595,24 @@ class Controller:
model.updateOverlayLargeLog(overlay_image)
return {"status":200, "result":data}
@staticmethod
def getTelemetry(*args, **kwargs) -> dict:
return {"status":200, "result":config.ENABLE_TELEMETRY}
@staticmethod
def setEnableTelemetry(*args, **kwargs) -> dict:
if config.ENABLE_TELEMETRY is False:
config.ENABLE_TELEMETRY = True
model.telemetryInit(enabled=config.ENABLE_TELEMETRY, app_version=config.VERSION)
return {"status":200, "result":config.ENABLE_TELEMETRY}
@staticmethod
def setDisableTelemetry(*args, **kwargs) -> dict:
if config.ENABLE_TELEMETRY is True:
config.ENABLE_TELEMETRY = False
model.telemetryShutdown()
return {"status":200, "result":config.ENABLE_TELEMETRY}
def swapYourLanguageAndTargetLanguage(self, *args, **kwargs) -> dict:
your_languages = config.SELECTED_YOUR_LANGUAGES
your_language_temp = your_languages[config.SELECTED_TAB_NO]["1"]
@@ -3457,6 +3475,11 @@ class Controller:
printLog("Revalidate Selected Models")
config.revalidate_selected_models()
# telemetry Init
printLog("Telemetry Init")
if config.ENABLE_TELEMETRY is True:
model.telemetryInit(enabled=config.ENABLE_TELEMETRY, app_version=config.VERSION)
# Update Settings
printLog("Update settings")
self.updateConfigSettings()

View File

@@ -36,7 +36,7 @@ VRCT の **匿名な使用状況** を取得し、プロダクトの改善に役
| 項目 | 方針 |
|------|------|
| **デフォルト状態** | 有効(`telemetry_enabled = true` |
| **デフォルト状態** | 有効(`ENABLE_TELEMETRY = true` |
| **ユーザー制御** | 設定から任意で無効化可能 |
| **無効時の動作** | 一切の通信・スレッド・処理を停止 |
| **送信内容** | イベント名と固定属性のみ |
@@ -164,9 +164,9 @@ Timeline:
```
1. アプリ起動
2. config.json から telemetry_enabled 読込
2. config.json から ENABLE_TELEMETRY 読込
3. telemetry.init(enabled=config.telemetry_enabled)
3. telemetry.init(enabled=config.ENABLE_TELEMETRY)
├─ enabled=True の場合
│ ├─ Aptabase SDK 初期化
│ ├─ heartbeat スレッド開始
@@ -180,7 +180,7 @@ Timeline:
```
操作発生(翻訳/ASR/テキスト入力)
telemetry_enabled チェック
ENABLE_TELEMETRY チェック
├─ False → 何もしない
└─ True
@@ -217,7 +217,7 @@ telemetry.init(enabled=True)
```
config.json 更新
telemetry_enabled: false に変更
ENABLE_TELEMETRY: false に変更
telemetry.shutdown()
├─ heartbeat スレッド停止
@@ -383,7 +383,7 @@ class Model:
# Telemetry 初期化
try:
telemetry.init(enabled=config.TELEMETRY_ENABLED)
telemetry.init(enabled=config.ENABLE_TELEMETRY)
except Exception:
errorLogging()
@@ -1073,11 +1073,11 @@ def test_full_flow():
```python
# config.py 修正
TELEMETRY_ENABLED = True # デフォルト有効
ENABLE_TELEMETRY = True # デフォルト有効
# config.json への保存
{
"telemetry_enabled": true
"ENABLE_TELEMETRY": true
}
```
@@ -1122,7 +1122,7 @@ UI に以下を表示:
| 1 | `__init__.py`, `state.py` 作成 | 高 |
| 2 | `client.py`, `core.py` 作成 | 高 |
| 3 | `heartbeat.py` 作成・テスト | 高 |
| 4 | `config.py` に `telemetry_enabled` 追加 | 高 |
| 4 | `config.py` に `ENABLE_TELEMETRY` 追加 | 高 |
| 5 | `controller.py` に API 呼び出し追加 | 高 |
| 6 | `mainloop.py` に init/shutdown 追加 | 高 |
| 7 | ユニット・統合テスト | 高 |

View File

@@ -129,6 +129,9 @@ mapping = {
"/run/send_text_overlay": {"status": True, "variable":controller.sendTextOverlay},
"/get/data/telemetry" : {"status": True, "variable":controller.getTelemetry},
"/set/enable/telemetry" : {"status": True, "variable":controller.setEnableTelemetry},
"/set/disable/telemetry" : {"status": True, "variable":controller.setDisableTelemetry},
"/run/shutdown": {"status": True, "variable":controller.shutdown},
"/run/swap_your_language_and_target_language": {"status": True, "variable":controller.swapYourLanguageAndTargetLanguage},

View File

@@ -144,7 +144,6 @@ class Model:
# Telemetry 初期化Model 内でインスタンスを保持)
self.telemetry = Telemetry()
self.telemetry.init(enabled=config.TELEMETRY_ENABLED, app_version=config.VERSION)
self._inited = True
@@ -1297,7 +1296,11 @@ class Model:
errorLogging()
return False
def shutdown(self):
def telemetryInit(self, enabled: bool, app_version: str):
"""Model 内で Telemetry を初期化"""
self.telemetry.init(enabled=enabled, app_version=app_version)
def telemetryShutdown(self):
"""Model cleanup on application shutdown."""
# Telemetry 終了app_closed 送信)
if hasattr(self, "telemetry") and self.telemetry: