More work on generic RSS renderer base class. Make the kiosk have a countdown
[kiosk.git] / google_news_rss_renderer.py
1 from bs4 import BeautifulSoup
2 import generic_news_rss_renderer
3 import re
4
5 class google_news_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(google_news_rss_renderer, self).__init__(
8             name_to_timeout_dict,
9             feed_site,
10             feed_uris,
11             page_title)
12         self.debug = 1
13
14     def debug_prefix(self):
15         return "google-news"
16
17     def get_headlines_page_prefix(self):
18         return "google-news"
19
20     def get_details_page_prefix(self):
21         return "google-news-details"
22
23     def find_description(self, item):
24         descr = item.findtext('description')
25         source = item.findtext('source')
26         if source is not None:
27             descr = descr + " (%s)" % source
28         return descr
29
30     def munge_description(self, description):
31         soup = BeautifulSoup(description)
32         for a in soup.findAll('a'):
33             del a['href']
34         descr = str(soup)
35         if len(descr) > 400:
36             descr = descr[:400]
37             descr = descr + " [...]"
38         return descr
39
40     def find_image(self, item):
41         return None
42
43     def should_use_https(self):
44         return True
45
46     def item_is_interesting_for_headlines(self, title, description, item):
47         return not self.is_item_older_than_n_days(item, 2)
48
49     def item_is_interesting_for_article(self, title, description, item):
50         return not self.is_item_older_than_n_days(item, 2)
51
52 # Test
53 #x = google_news_rss_renderer(
54 #    {"Fetch News" : 1,
55 #     "Shuffle News" : 1},
56 #    "news.google.com",
57 #    [ "/rss?hl=en-US&gl=US&ceid=US:en" ],
58 #    "Test" )
59 #if x.fetch_news() == 0:
60 #    print("Error fetching news, no items fetched.")
61 #x.shuffle_news()