X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=seattletimes_rss_renderer.py;h=13a9416e5e8b0884963540e3c098d19bf12a4441;hb=18913d6fecc43aeecfd5b617030e9cd3e840ef08;hp=18ed2fc3b97e9de3c64e32538a7349d160be6bf1;hpb=5e241dc47e497c547463cecc07946ea6882835a7;p=kiosk.git diff --git a/seattletimes_rss_renderer.py b/seattletimes_rss_renderer.py index 18ed2fc..13a9416 100644 --- a/seattletimes_rss_renderer.py +++ b/seattletimes_rss_renderer.py @@ -1,4 +1,9 @@ +#!/usr/bin/env python3 + import datetime +from typing import Dict, List +import xml + import generic_news_rss_renderer as gnrss @@ -8,7 +13,8 @@ class seattletimes_rss_renderer(gnrss.generic_news_rss_renderer): "Nation", "World", "Life", - "Technology" "Local News", + "Technology", + "Local News", "Food", "Drink", "Today File", @@ -22,24 +28,32 @@ class seattletimes_rss_renderer(gnrss.generic_news_rss_renderer): ] ) - def __init__(self, name_to_timeout_dict, feed_site, feed_uris, page_title): + def __init__( + self, + name_to_timeout_dict: Dict[str, int], + feed_site: str, + feed_uris: List[str], + page_title: str, + ): super(seattletimes_rss_renderer, self).__init__( name_to_timeout_dict, feed_site, feed_uris, page_title ) - def debug_prefix(self): + def debug_prefix(self) -> str: return "seattletimes" - def get_headlines_page_prefix(self): + def get_headlines_page_prefix(self) -> str: return "seattletimes-nonnews" - def get_details_page_prefix(self): + def get_details_page_prefix(self) -> str: return "seattletimes-details-nonnews" - def should_use_https(self): + def should_use_https(self) -> bool: return True - def item_is_interesting_for_headlines(self, title, description, item): + def item_is_interesting_for_headlines( + self, title: str, description: str, item: xml.etree.ElementTree.Element + ) -> bool: if item.tag != "item": self.debug_print("Item.tag isn't item?!") return False @@ -49,26 +63,23 @@ class seattletimes_rss_renderer(gnrss.generic_news_rss_renderer): details = {} for detail in item.getchildren(): - self.debug_print( - "detail %s => %s (%s)" % (detail.tag, detail.attrib, detail.text) - ) - if detail.text != None: + self.debug_print(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) + self.debug_print(details.__repr__()) 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) interesting = True - if not interesting: - return False - return True + return interesting - def item_is_interesting_for_article(self, title, description, item): + 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) return False