Add debugging in gcal renderer.
authorScott Gasch <[email protected]>
Wed, 8 Feb 2023 18:09:05 +0000 (10:09 -0800)
committerScott Gasch <[email protected]>
Wed, 8 Feb 2023 18:09:05 +0000 (10:09 -0800)
gcal_renderer.py

index 73704aa506f763eb0b07fd3780b2baf0e80d6564..31f9724d716d4c4d1da74825ef1dd889f6939f48 100644 (file)
@@ -50,11 +50,11 @@ class gcal_renderer(renderer.abstaining_renderer):
             calendar: str,
         ) -> None:
             if start_time is None:
-                assert(end_time is None)
+                assert end_time is None
             else:
-                assert(isinstance(start_time, datetime.datetime))
+                assert isinstance(start_time, datetime.datetime)
             if end_time is not None:
-                assert(isinstance(end_time, datetime.datetime))
+                assert isinstance(end_time, datetime.datetime)
             self.start_time = start_time
             self.end_time = end_time
             self.summary = summary
@@ -74,10 +74,10 @@ class gcal_renderer(renderer.abstaining_renderer):
 
         def __eq__(self, that) -> bool:
             return (
-                self.start_time == that.start_time and
-                self.end_time == that.end_time and
-                self.summary == that.summary and
-                self.calendar == that.calendar
+                self.start_time == that.start_time
+                and self.end_time == that.end_time
+                and self.summary == that.summary
+                and self.calendar == that.calendar
             )
 
         def __repr__(self) -> str:
@@ -93,32 +93,24 @@ class gcal_renderer(renderer.abstaining_renderer):
             if self.start_time is None:
                 return "None"
             elif (
-                    self.start_time.hour == 0 and
-                    self.start_time.minute == 0 and
-                    self.start_time.second == 0
+                self.start_time.hour == 0
+                and self.start_time.minute == 0
+                and self.start_time.second == 0
             ):
                 if self.start_time.year == now.year:
-                    return datetime.datetime.strftime(
-                        self.start_time,
-                        "%a %b %d"
-                    )
+                    return datetime.datetime.strftime(self.start_time, "%a %b %d")
                 else:
-                    return datetime.datetime.strftime(
-                        self.start_time,
-                        "%a %b %d, %Y"
-                    )
+                    return datetime.datetime.strftime(self.start_time, "%a %b %d, %Y")
             else:
                 dt = self.start_time
                 zone = dt.tzinfo
-                local_dt = dt.replace(tzinfo=zone).astimezone(tz=pytz.timezone('US/Pacific'))
+                local_dt = dt.replace(tzinfo=zone).astimezone(
+                    tz=pytz.timezone("US/Pacific")
+                )
                 if local_dt.year == now.year:
-                    return datetime.datetime.strftime(
-                        local_dt, "%a %b %d %I:%M%p"
-                    )
+                    return datetime.datetime.strftime(local_dt, "%a %b %d %I:%M%p")
                 else:
-                    return datetime.datetime.strftime(
-                        local_dt, "%a %b %d, %Y %I:%M%p"
-                    )
+                    return datetime.datetime.strftime(local_dt, "%a %b %d, %Y %I:%M%p")
 
     def __init__(
         self, name_to_timeout_dict: Dict[str, int], oauth: gdata_oauth.OAuth
@@ -133,7 +125,7 @@ class gcal_renderer(renderer.abstaining_renderer):
         return "gcal"
 
     def periodic_render(self, key: str) -> bool:
-        logger.debug('called for "%s"' % key)
+        logger.debug(f'called for "{key}"')
         if key == "Render Upcoming Events":
             return self.render_upcoming_events()
         elif key == "Look For Triggered Events":
@@ -156,18 +148,20 @@ class gcal_renderer(renderer.abstaining_renderer):
         if isinstance(date, datetime.datetime):
             return date
         elif isinstance(date, dict):
-            if 'dateTime' in date:
-                d = date['dateTime']
+            if "dateTime" in date:
+                d = date["dateTime"]
                 dt = parse(d)
                 if dt.tzinfo is None:
-                    dt = dt.replace(tzinfo=None).astimezone(tz=pytz.timezone('US/Pacific'))
+                    dt = dt.replace(tzinfo=None).astimezone(
+                        tz=pytz.timezone("US/Pacific")
+                    )
                 return dt
-            elif 'date' in date:
-                d = date['date']
-                dt = datetime.datetime.strptime(d, '%Y-%m-%d')
-                dt = dt.replace(tzinfo=None).astimezone(tz=pytz.timezone('US/Pacific'))
+            elif "date" in date:
+                d = date["date"]
+                dt = datetime.datetime.strptime(d, "%Y-%m-%d")
+                dt = dt.replace(tzinfo=None).astimezone(tz=pytz.timezone("US/Pacific"))
                 return dt
-        print(f'Not sure what to do with this {date} ({type(date)}), help?!')
+        print(f"Not sure what to do with this {date} ({type(date)}), help?!")
         return None
 
     def get_events_from_interesting_calendars(
@@ -182,9 +176,7 @@ class gcal_renderer(renderer.abstaining_renderer):
             )
             for calendar in calendar_list["items"]:
                 if calendar["summary"] in gcal_renderer.calendar_whitelist:
-                    logger.debug(
-                        f"{calendar['summary']} is an interesting calendar..."
-                    )
+                    logger.debug(f"{calendar['summary']} is an interesting calendar...")
                     events = (
                         self.client.events()
                         .list(
@@ -204,7 +196,7 @@ class gcal_renderer(renderer.abstaining_renderer):
                             f" ... event '{summary}' ({event['start']} ({start}) to {event['end']} ({end})"
                         )
                         if start is not None and end is not None:
-                            logger.debug(f' ... adding {summary} to sortable_events')
+                            logger.debug(f" ... adding {summary} to sortable_events")
                             sortable_events.append(
                                 gcal_renderer.comparable_event(
                                     start, end, summary, calendar["summary"]
@@ -215,7 +207,9 @@ class gcal_renderer(renderer.abstaining_renderer):
                                 or "Holidays" in calendar["summary"]
                                 or "Countdown" in summary
                             ):
-                                logger.debug(f" ... adding {summary} to countdown_events")
+                                logger.debug(
+                                    f" ... adding {summary} to countdown_events"
+                                )
                                 countdown_events.append(
                                     gcal_renderer.comparable_event(
                                         start, end, summary, calendar["summary"]
@@ -230,6 +224,7 @@ class gcal_renderer(renderer.abstaining_renderer):
         (time_min, time_max) = self.get_min_max_timewindow()
         try:
             # Populate the "Upcoming Events" page.
+            logger.debug("Rendering the Upcoming Events page...")
             (
                 self.sortable_events,
                 self.countdown_events,
@@ -237,7 +232,7 @@ class gcal_renderer(renderer.abstaining_renderer):
             self.sortable_events.sort()
             with file_writer.file_writer("gcal_3_86400.html") as f:
                 f.write(
-f"""
+                    """
 <h1>Upcoming Calendar Events:</h1>
 <hr>
 <center>
@@ -246,13 +241,13 @@ f"""
                 )
                 upcoming_sortable_events = self.sortable_events[:12]
                 for n, event in enumerate(upcoming_sortable_events):
-                    logger.debug(f'{n}/12: {event.friendly_name()} / {event.calendar}')
+                    logger.debug(f"{n}/12: {event.friendly_name()} / {event.calendar}")
                     if n % 2 == 0:
                         color = "#c6b0b0"
                     else:
                         color = "#eeeeee"
                     f.write(
-f"""
+                        f"""
     <tr>
       <td style="margin: 0; padding: 0; background: {color};">
         {event.timestamp()}
@@ -266,6 +261,7 @@ f"""
                 f.write("</table></center>\n")
 
             # Populate the "Countdown" page.
+            logger.debug("Rendering the Countdowns page")
             self.countdown_events.sort()
             with file_writer.file_writer("countdown_3_7200.html") as g:
                 g.write("<h1>Countdowns:</h1><hr><ul>\n")
@@ -286,7 +282,7 @@ f"""
                         hours = divmod(days[1], kiosk_constants.seconds_per_hour)
                         minutes = divmod(hours[1], kiosk_constants.seconds_per_minute)
                         g.write(
-                            f'<li><SPAN id="%s">%d days, %02d:%02d</SPAN> until %s</li>\n'
+                            '<li><SPAN id="%s">%d days, %02d:%02d</SPAN> until %s</li>\n'
                             % (
                                 identifier,
                                 int(days[0]),
@@ -343,12 +339,10 @@ var fn = setInterval(function() {
             return True
         except Exception as e:
             logger.exception(e)
-            print("********* TRYING TO REFRESH GCAL CLIENT *********")
-#            self.oauth.refresh_token()
-#            self.client = self.oauth.calendar_service()
             return False
 
     def look_for_triggered_events(self) -> bool:
+        logger.debug("Looking for Imminent Upcoming Calendar events...")
         with file_writer.file_writer(kiosk_constants.gcal_imminent_pagename) as f:
             f.write("<h1>Imminent Upcoming Calendar Events:</h1>\n<hr>\n")
             f.write("<center><table width=99%>\n")
@@ -367,6 +361,7 @@ var fn = setInterval(function() {
                     eventstamp = event.start_time
                     name = event.friendly_name()
                     calendar = event.calendar
+                    logger.debug(f"Event {event} ({name}) triggered the page.")
                     f.write(
                         f"<LI> {name} ({calendar}) upcoming in {int(minutes[0])} minutes.\n"
                     )
@@ -380,8 +375,10 @@ var fn = setInterval(function() {
 
 
 # Test
-#oauth = gdata_oauth.OAuth(secrets.google_client_secret)
-#x = gcal_renderer(
-#   {"Render Upcoming Events": 10000, "Look For Triggered Events": 1},
-#   oauth)
-#x.periodic_render("Render Upcoming Events")
+# import kiosk_secrets as secrets
+#
+# oauth = gdata_oauth.OAuth(secrets.google_client_secret)
+# x = gcal_renderer(
+#    {"Render Upcoming Events": 10000, "Look For Triggered Events": 1}, oauth
+# )
+# x.periodic_render("Render Upcoming Events")