From b5c992afd9f5483fc20aa5086fa97c073e6d944f Mon Sep 17 00:00:00 2001 From: Black Coffee Date: Fri, 7 Oct 2022 10:25:54 +0100 Subject: [PATCH] Added overnight sleep for Gerty --- lnbits/extensions/gerty/helpers.py | 15 +++++++++++++-- lnbits/extensions/gerty/views_api.py | 9 +++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lnbits/extensions/gerty/helpers.py b/lnbits/extensions/gerty/helpers.py index f4ea7ede..ddf9dd19 100644 --- a/lnbits/extensions/gerty/helpers.py +++ b/lnbits/extensions/gerty/helpers.py @@ -146,5 +146,16 @@ def get_next_update_time(sleep_time_seconds: int = 0, timezone: str = "Europe/Lo utc_now = pytz.utc.localize(datetime.datetime.utcnow()) next_refresh_time = utc_now + datetime.timedelta(0, sleep_time_seconds) local_refresh_time = next_refresh_time.astimezone(pytz.timezone(timezone)) - # datetime.fromtimestamp(time.time()).strftime("%e %b %Y at %H:%M") - return "Next update at {0}".format(local_refresh_time.strftime("%H:%M on%e %b %Y")) \ No newline at end of file + return "{0} {1}".format("I'll wake up at" if gerty_should_sleep() else "Next update at",local_refresh_time.strftime("%H:%M on%e %b %Y")) + +def gerty_should_sleep(timezone: str = "Europe/London"): + utc_now = pytz.utc.localize(datetime.datetime.utcnow()) + local_time = utc_now.astimezone(pytz.timezone(timezone)) + hours = local_time.strftime("%H") + hours = int(hours) + logger.debug("HOURS") + logger.debug(hours) + if(hours >= 22 and hours <= 23): + return True + else: + return False diff --git a/lnbits/extensions/gerty/views_api.py b/lnbits/extensions/gerty/views_api.py index 88303dce..3daca8bd 100644 --- a/lnbits/extensions/gerty/views_api.py +++ b/lnbits/extensions/gerty/views_api.py @@ -137,11 +137,16 @@ async def api_gerty_json( next_screen_number = 0 if ((p + 1) >= enabled_screen_count) else p + 1; + # get the sleep time + sleep_time = gerty.refresh_time + if gerty_should_sleep(): + sleep_time_hours = 7 + sleep_time = 60 * sleep_time_hours return { "settings": { - "refreshTime": gerty.refresh_time, - "requestTimestamp": get_next_update_time(gerty.refresh_time), + "refreshTime": sleep_time, + "requestTimestamp": get_next_update_time(sleep_time), "nextScreenNumber": next_screen_number, "showTextBoundRect": False, "name": gerty.name