[AI] Tracking

This commit is contained in:
Mikan
2026-03-10 02:47:12 +03:00
parent bf51fc454d
commit 97dbcfd8f0
3 changed files with 88 additions and 6 deletions

View File

@@ -26,6 +26,7 @@ class Application:
self.is_idle: bool = False
self._tracking_thread: Optional[threading.Thread] = None
self._running = True
self.session_start_time: Optional[float] = None
# Загружаем задачу
if self.config.current_task_id:
@@ -73,6 +74,7 @@ class Application:
def _check_and_update_tracking(self):
with self._lock:
if not self.tracking_enabled or not self.current_task:
self.session_start_time = None
return
current_time = time.time()
@@ -85,12 +87,17 @@ class Application:
if current_time - self.last_activity > 60 or is_blocked:
self.is_idle = True
self.last_window_group = None
self.session_start_time = None
else:
self.is_idle = False
if self.last_window_group != group_name:
self.last_window_group = group_name
self._add_work_detail(group_name, 5.0)
# Начинаем/продолжаем сессию
if self.session_start_time is None:
self.session_start_time = current_time
# Сохраняем при переходе в бездействие
if not was_idle and self.is_idle:
self.maybe_save_task()
@@ -222,7 +229,11 @@ class Application:
"detail": f"{window_info.title} | {window_info.process_name}"
}
# === Остальные методы (без изменений, но с локом где нужно) ===
def get_current_session_duration(self) -> float:
with self._lock:
if self.session_start_time is None:
return 0.0
return time.time() - self.session_start_time
def _load_or_create_config(self) -> TrackerConfig:
if self.config_path.exists():