Cleanup
[kiosk.git] / cnn_rss_renderer.py
1 import generic_news_rss_renderer
2 import re
3
4
5 class cnn_rss_renderer(generic_news_rss_renderer.generic_news_rss_renderer):
6     def __init__(self, name_to_timeout_dict, feed_site, feed_uris, page_title):
7         super(cnn_rss_renderer, self).__init__(
8             name_to_timeout_dict, feed_site, feed_uris, page_title
9         )
10         self.debug = 1
11
12     def debug_prefix(self):
13         return "cnn(%s)" % (self.page_title)
14
15     def get_headlines_page_prefix(self):
16         return "cnn-%s" % (self.page_title)
17
18     def get_details_page_prefix(self):
19         return "cnn-details-%s" % (self.page_title)
20
21     def munge_description(self, description):
22         description = re.sub("[Rr]ead full story for latest details.", "", description)
23         description = re.sub("<[^>]+>", "", description)
24         return description
25
26     def find_image(self, item):
27         image = item.findtext("media:thumbnail")
28         if image is not None:
29             image_url = image.get("url")
30             return image_url
31         return None
32
33     def should_use_https(self):
34         return False
35
36     def item_is_interesting_for_headlines(self, title, description, item):
37         if self.is_item_older_than_n_days(item, 14):
38             self.debug_print("%s: is too old!" % title)
39             return False
40         return re.search(r"[Cc][Nn][Nn][A-Za-z]*\.com", title) is None
41
42     def item_is_interesting_for_article(self, title, description, item):
43         if self.is_item_older_than_n_days(item, 7):
44             self.debug_print("%s: is too old!" % title)
45             return False
46         return (
47             re.search(r"[Cc][Nn][Nn][A-Za-z]*\.com", title) is None
48             and len(description) >= 65
49         )
50
51
52 # Test
53 # x = cnn_rss_renderer(
54 #    {"Fetch News" : 1,
55 #     "Shuffle News" : 1},
56 #    "rss.cnn.com",
57 #    [ "/rss/cnn_topstories.rss",
58 #      "/rss/money_latest.rss",
59 #     "/rss/cnn_tech.rss",
60 #    ],
61 #    "Test" )
62 # if x.fetch_news() == 0:
63 #    print("Error fetching news, no items fetched.")
64 # x.shuffle_news()