Merge branch 'telemetry' into develop
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 | ユニット・統合テスト | 高 |
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user