|
|
@@ -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" |
|
|
|