From d82dff8b71c168228d7ec10c8c64872835266696 Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Sat, 21 Nov 2020 03:40:13 +0000 Subject: [PATCH] Add ETA column --- archivebot-jobs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/archivebot-jobs b/archivebot-jobs index 02c611c..a84d413 100755 --- a/archivebot-jobs +++ b/archivebot-jobs @@ -22,6 +22,7 @@ columns = { 'dl urls': (lambda job, pipelines: job["job_data"]["items_downloaded"], ('numeric',)), 'dl size': (lambda job, pipelines: job["job_data"]["bytes_downloaded"], ('size', 'numeric')), 'queue': (lambda job, pipelines: job["job_data"]["items_queued"] - job["job_data"]["items_downloaded"], ('numeric',)), + 'eta': (lambda job, pipelines: int((curTime := time.time()) + (job["job_data"]["items_queued"] - job["job_data"]["items_downloaded"]) / (job["job_data"]["items_downloaded"] / (curTime - job["job_data"]["started_at"]))) if job["job_data"]["items_downloaded"] > 0 else 0, ('date', 'numeric')), 'con': (lambda job, pipelines: job["job_data"]["concurrency"], ('numeric',)), 'delay min': (lambda job, pipelines: int(job["job_data"]["delay_min"]), ('hidden', 'numeric')), 'delay max': (lambda job, pipelines: int(job["job_data"]["delay_max"]), ('hidden', 'numeric')), @@ -213,7 +214,13 @@ def render_date(ts, coloured = False): colourEndStr = "\x1b[0m" if colourStr else "" if args.dates: return (colourStr, datetime.datetime.fromtimestamp(ts).isoformat(sep = " "), colourEndStr) - if diff <= 0: + if diff < -86400: + return (colourStr, f"in {-diff // 86400:.0f}d {(-diff % 86400) // 3600:.0f}h", colourEndStr) + elif diff < -60: + return (colourStr, "in " + (f"{-diff // 3600:.0f}h " if diff <= -3600 else "") + f"{(-diff % 3600) // 60:.0f}mn", colourEndStr) + elif diff < 0: + return "in <1 min" + elif diff == 0: return "now" elif diff < 60: return "<1 min ago"