4 from typing import Dict, List
7 import generic_news_rss_renderer as gnrss
10 class seattletimes_rss_renderer(gnrss.generic_news_rss_renderer):
11 interesting_categories = frozenset(
33 name_to_timeout_dict: Dict[str, int],
38 super(seattletimes_rss_renderer, self).__init__(
39 name_to_timeout_dict, feed_site, feed_uris, page_title
42 def debug_prefix(self) -> str:
45 def get_headlines_page_prefix(self) -> str:
46 return "seattletimes-nonnews"
48 def get_details_page_prefix(self) -> str:
49 return "seattletimes-details-nonnews"
51 def should_use_https(self) -> bool:
54 def item_is_interesting_for_headlines(
55 self, title: str, description: str, item: xml.etree.ElementTree.Element
57 if item.tag != "item":
58 self.debug_print("Item.tag isn't item?!")
60 if self.is_item_older_than_n_days(item, 14):
61 self.debug_print("%s: is too old!" % title)
65 for detail in item.getchildren():
66 self.debug_print(f"detail {detail.tag} => {detail.attrib} ({detail.text})")
67 if detail.text is not None:
68 details[detail.tag] = detail.text
69 if "category" not in details:
70 self.debug_print("No category in details?!")
71 self.debug_print(details)
74 for x in seattletimes_rss_renderer.interesting_categories:
75 if x in details["category"]:
76 self.debug_print("%s looks like a good category." % x)
80 def item_is_interesting_for_article(
81 self, title: str, description: str, item: xml.etree.ElementTree.Element
83 if self.is_item_older_than_n_days(item, 14):
84 self.debug_print("%s: is too old!" % title)
86 return len(description) >= 65
90 # x = seattletimes_rss_renderer({"Test", 123},
91 # "www.seattletimes.com",
94 # x.periodic_render("Fetch News")
95 # x.periodic_render("Shuffle News")