import datetime from judge.utils.timedelta import nice_repr from . import registry @registry.filter def timedelta(value, display="long"): if value is None: return value return nice_repr(value, display) @registry.filter def timestampdelta(value, display="long"): value = datetime.timedelta(seconds=value) return timedelta(value, display) @registry.filter def seconds(timedelta): return timedelta.total_seconds() @registry.filter @registry.render_with("time-remaining-fragment.html") def as_countdown(time): time_now = datetime.datetime.now(datetime.timezone.utc) initial = abs(time - time_now) return {"countdown": time, "initial": initial}