More cleanup.
[kiosk.git] / utils.py
index 8f8551399cdc6a1e0c01f924af90fdf2e1150ec6..98238a1f43e7ec9133122d0f8e0262b5812603b1 100644 (file)
--- a/utils.py
+++ b/utils.py
@@ -1,12 +1,16 @@
 #!/usr/bin/env python3
 
 import time
+import logging
 import os
 from datetime import datetime
 
 import constants
 
 
+logger = logging.getLogger(__file__)
+
+
 def timestamp() -> str:
     t = datetime.fromtimestamp(time.time())
     return t.strftime("%d/%b/%Y:%H:%M:%S%Z")
@@ -20,6 +24,7 @@ def describe_age_of_file(filename: str) -> str:
         age = int(age)
         return describe_duration(age)
     except Exception as e:
+        logger.exception(e)
         return "?????"
 
 
@@ -31,6 +36,7 @@ def describe_age_of_file_briefly(filename: str) -> str:
         age = int(age)
         return describe_duration_briefly(age)
     except Exception as e:
+        logger.exception(e)
         return "?????"
 
 
@@ -71,5 +77,32 @@ def describe_duration_briefly(age: int) -> str:
     return descr
 
 
+def minute_number(hour: int, minute: int) -> int:
+    """Convert hour:minute into minute number from start of day."""
+    return hour * 60 + minute
+
+
+def datetime_to_minute_number(dt: datetime) -> int:
+    """Convert a datetime into a minute number (of the day)"""
+    return minute_number(dt.hour, dt.minute)
+
+
+def minute_number_to_time_string(minute_num: int) -> str:
+    """Convert minute number from start of day into hour:minute am/pm
+    string."""
+
+    hour = minute_num // 60
+    minute = minute_num % 60
+    ampm = "a"
+    if hour > 12:
+        hour -= 12
+        ampm = "p"
+    if hour == 12:
+        ampm = "p"
+    if hour == 0:
+        hour = 12
+    return f"{hour:2}:{minute:02}{ampm}"
+
+
 # x = describe_age_of_file_briefly("pages/clock_10_none.html")
 # print x