diff --git a/app.py b/app.py index 6c52d7c..8a0ddcc 100644 --- a/app.py +++ b/app.py @@ -728,6 +728,24 @@ def prompt_delete(prompt_id: int): return HTMLResponse("") +def _fmt_elapsed(start_iso: Optional[str], end_iso: Optional[str] = None) -> str: + if not start_iso: + return "-" + try: + s = datetime.fromisoformat(start_iso) + e = datetime.fromisoformat(end_iso) if end_iso else datetime.now() + sec = max(0, int((e - s).total_seconds())) + if sec < 60: + return f"{sec}s" + m, s2 = divmod(sec, 60) + if m < 60: + return f"{m}m {s2}s" + h, m2 = divmod(m, 60) + return f"{h}h {m2}m" + except Exception: + return "-" + + def _jobs_payload(limit: int = 200): with db() as c: jobs = c.execute( @@ -783,7 +801,7 @@ def jobs_page(queued: Optional[int] = None): items = _jobs_payload(200) pre = "".join([ ( - f"
Job #{it['id']} [{it['kind']}] · {it['status']}
" + f"
Job #{it['id']} [{it['kind']}] · {it['status']} · läuft: {_fmt_elapsed(it.get('started_at') or it.get('created_at'), it.get('finished_at'))}
" f"{it['created_at']}
" f"
" + (