fix in u
This commit is contained in:
@@ -385,9 +385,20 @@ def mark_tick(state: ProfilePollState, started_at: float, active: bool, ok: bool
|
||||
return dict(state.stats)
|
||||
|
||||
|
||||
def snapshot(profile_id: int) -> dict:
|
||||
def snapshot(profile_id: int, settings: dict | None = None) -> dict:
|
||||
state = state_for(profile_id)
|
||||
effective_settings = normalize_settings(settings) if settings is not None else get_settings(profile_id)
|
||||
data = dict(state.stats or {"profile_id": int(profile_id), "tick_count": state.tick_count})
|
||||
runtime_ready = bool(state.stats) or state.tick_count > 0
|
||||
# Note: Snapshot includes saved intervals even before the first runtime tick so diagnostics never render as an empty zero-only panel.
|
||||
data.setdefault("runtime_ready", runtime_ready)
|
||||
data.setdefault("adaptive_enabled", bool(effective_settings.get("adaptive_enabled", DEFAULTS["adaptive_enabled"])))
|
||||
data.setdefault("adaptive_mode", state.adaptive_mode if runtime_ready else ("fixed" if not data.get("adaptive_enabled") else "waiting"))
|
||||
data.setdefault("live_stats_interval_seconds", effective_live_interval(effective_settings, state))
|
||||
data.setdefault("torrent_list_interval_seconds", effective_list_interval(effective_settings, state))
|
||||
data.setdefault("configured_min_interval_seconds", MIN_POLL_INTERVAL_SECONDS)
|
||||
if not runtime_ready:
|
||||
data["last_ok"] = None
|
||||
# Note: Snapshot always exposes split-poller counters, even before the first post-cleanup tick rebuilds full stats.
|
||||
data.update({
|
||||
"live_poll_count": state.live_poll_count,
|
||||
|
||||
Reference in New Issue
Block a user