Browse Source

Add more columns

master
JustAnotherArchivist 4 years ago
parent
commit
05ed1e004b
1 changed files with 17 additions and 0 deletions
  1. +17
    -0
      archivebot-jobs

+ 17
- 0
archivebot-jobs View File

@@ -2,6 +2,7 @@
import argparse
import datetime
import json
import math
import re
import sys
import time
@@ -16,6 +17,11 @@ columns = {
'queued': (lambda job, pipelines: job["job_data"]["queued_at"], ('date',)),
'started': (lambda job, pipelines: job["job_data"]["started_at"], ('date',)),
'last active': (lambda job, pipelines: int(job["ts"]), ('date', 'coloured')),
'dl urls': (lambda job, pipelines: job["job_data"]["items_downloaded"], ()),
'dl size': (lambda job, pipelines: job["job_data"]["bytes_downloaded"], ('size',)),
'queue': (lambda job, pipelines: job["job_data"]["items_queued"] - job["job_data"]["items_downloaded"], ()),
'con': (lambda job, pipelines: job["job_data"]["concurrency"], ()),
'delay': (lambda job, pipelines: str(int(job["job_data"]["delay_min"])) + '-' + str(int(job["job_data"]["delay_max"])) if job["job_data"]["delay_min"] != job["job_data"]["delay_max"] else str(int(job["job_data"]["delay_min"])), ()),
}
defaultSort = 'jobid'

@@ -146,6 +152,13 @@ def render_date(ts, coloured = False):
else:
return (colourStr, f"{diff // 86400:.0f}d {(diff % 86400) // 3600:.0f}h ago", colourEndStr)

def render_size(size):
units = ('B', 'KiB', 'MiB', 'GiB', 'TiB')
unitIdx = min(int(math.log(size, 1024)), len(units) - 1) if size >= 1 else 0
if unitIdx == 0:
return f'{size} B' # No decimal places
return f'{size / 1024 ** unitIdx:.1f} {units[unitIdx]}'

renderers = {}
for column, (_, columnAttr) in columns.items():
if "date" in columnAttr:
@@ -153,6 +166,10 @@ for column, (_, columnAttr) in columns.items():
renderers[column] = lambda x: render_date(x, coloured = not args.no_colours)
else:
renderers[column] = render_date
elif "size" in columnAttr:
renderers[column] = render_size
elif isinstance(jobs[0][column], (int, float)):
renderers[column] = str

# Print
output = []


Loading…
Cancel
Save