-- tracker.stop — close the currently open session. local lang = jarvis.context.language or "ru" local now = jarvis.context.time.timestamp or os.time() local data = jarvis.state.get("data") or {} local sessions = data.sessions or {} local start_ts = data.current_session_start if not start_ts then return jarvis.cmd.not_found(lang == "ru" and "Трекер не запущен, сэр." or "Tracker isn't running, sir.") end local elapsed = now - start_ts if elapsed < 1 then elapsed = 1 end table.insert(sessions, { start = start_ts, ["end"] = now }) data.current_session_start = nil data.sessions = sessions jarvis.state.set("data", data) local function format_dur(sec) sec = math.floor(sec) local h = math.floor(sec / 3600) local m = math.floor((sec % 3600) / 60) if lang == "ru" then if h > 0 and m > 0 then return h .. " ч " .. m .. " мин" end if h > 0 then return h .. " ч" end return m .. " мин" else if h > 0 and m > 0 then return h .. "h " .. m .. "m" end if h > 0 then return h .. "h" end return m .. "m" end end return jarvis.cmd.ok(lang == "ru" and ("Записал. Сессия: " .. format_dur(elapsed) .. ".") or ("Done. Session: " .. format_dur(elapsed) .. "."))