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