Remove references to utils in lieu of just using pylib.
[kiosk.git] / seattletimes_rss_renderer.py
index 13a9416e5e8b0884963540e3c098d19bf12a4441..7b39bca4a974ac3e82ee2b9528abec7d4eb6989a 100644 (file)
@@ -1,12 +1,15 @@
 #!/usr/bin/env python3
 
-import datetime
+import logging
 from typing import Dict, List
 import xml
 
 import generic_news_rss_renderer as gnrss
 
 
+logger = logging.getLogger(__file__)
+
+
 class seattletimes_rss_renderer(gnrss.generic_news_rss_renderer):
     interesting_categories = frozenset(
         [
@@ -35,13 +38,10 @@ class seattletimes_rss_renderer(gnrss.generic_news_rss_renderer):
         feed_uris: List[str],
         page_title: str,
     ):
-        super(seattletimes_rss_renderer, self).__init__(
+        super().__init__(
             name_to_timeout_dict, feed_site, feed_uris, page_title
         )
 
-    def debug_prefix(self) -> str:
-        return "seattletimes"
-
     def get_headlines_page_prefix(self) -> str:
         return "seattletimes-nonnews"
 
@@ -55,41 +55,47 @@ class seattletimes_rss_renderer(gnrss.generic_news_rss_renderer):
         self, title: str, description: str, item: xml.etree.ElementTree.Element
     ) -> bool:
         if item.tag != "item":
-            self.debug_print("Item.tag isn't item?!")
+            logger.debug(f'{title}: item.tag ({item}) isn\'t "item"?!')
             return False
         if self.is_item_older_than_n_days(item, 14):
-            self.debug_print("%s: is too old!" % title)
+            logger.info(f'{title}: too old to be interesting.')
             return False
 
         details = {}
-        for detail in item.getchildren():
-            self.debug_print(f"detail {detail.tag} => {detail.attrib} ({detail.text})")
+        for detail in list(item):
+            logger.debug(
+                f'detail {detail.tag} => {detail.attrib} ({detail.text})'
+            )
             if detail.text is not None:
                 details[detail.tag] = detail.text
-        if "category" not in details:
-            self.debug_print("No category in details?!")
-            self.debug_print(details.__repr__())
+        if 'category' not in details:
+            logger.debug(f'{title}: no category in details?')
             return False
         interesting = False
         for x in seattletimes_rss_renderer.interesting_categories:
             if x in details["category"]:
-                self.debug_print("%s looks like a good category." % x)
+                logger.debug(
+                    f'{x} looks like a good category.'
+                )
                 interesting = True
+                break
         return interesting
 
     def item_is_interesting_for_article(
         self, title: str, description: str, item: xml.etree.ElementTree.Element
     ) -> bool:
         if self.is_item_older_than_n_days(item, 14):
-            self.debug_print("%s: is too old!" % title)
+            logger.info(
+                f'{title}: is too old to be interesting.'
+            )
             return False
         return len(description) >= 65
 
 
 # Test
-# x = seattletimes_rss_renderer({"Test", 123},
+#x = seattletimes_rss_renderer({"Test", 123},
 #                              "www.seattletimes.com",
-#                              [ "/life/feed/" ],
+#                              [ "/outdoors/feed/", '/live/feed/' ],
 #                              "nonnews")
-# x.periodic_render("Fetch News")
-# x.periodic_render("Shuffle News")
+#x.periodic_render("Fetch News")
+#x.periodic_render("Shuffle News")