diff --git a/buba/bubaanimator.py b/buba/bubaanimator.py index aebe3d6..199df40 100644 --- a/buba/bubaanimator.py +++ b/buba/bubaanimator.py @@ -6,6 +6,7 @@ from time import sleep from buba.bubacmd import BubaCmd +LOG = logging.getLogger(__name__) WEEKDAYS_DE = [ "Mo", @@ -40,6 +41,19 @@ class BubaAnimation: it = iter(it) return iter(lambda: tuple(islice(it, size)), ()) + @staticmethod + def humanize_delta(dt, now_delta, day_delta): + if now_delta < timedelta(seconds=60): + return "jetzt" + if now_delta < timedelta(minutes=90): + return f"{int(now_delta.seconds / 60)}m" + if day_delta < timedelta(hours=24): + return f"{int((now_delta.seconds + 3599) / 3600)}h" + if day_delta < timedelta(days=7): + # return dt.strftime("%a") # weekday + return WEEKDAYS_DE[dt.weekday()] + return dt.strftime("%d.%m.") + @staticmethod def countdown(dt: datetime): """ @@ -51,16 +65,9 @@ class BubaAnimation: from_day_start = now.replace(hour=4, minute=0, second=0, microsecond=0) now_delta = dt - now day_delta = dt - from_day_start - if now_delta < timedelta(seconds=60): - return "jetzt" - if now_delta < timedelta(minutes=30): - return f"{int(now_delta.seconds / 60)}m" - if day_delta < timedelta(hours=24): - return f"{int((now_delta.seconds + 3599) / 3600)}h" - if day_delta < timedelta(days=7): - # return dt.strftime("%a") # weekday - return WEEKDAYS_DE[dt.weekday()] - return dt.strftime("%d.%m.") + h = BubaAnimation.humanize_delta(dt, now_delta, day_delta) + LOG.info(f"countdown({dt}) {now_delta} {day_delta} {h}") + return h @staticmethod def ellipsis(text, max=28):