X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=generic_news_rss_renderer.py;h=21f9afea3e630003f60f5e6f105d71b7548a19e6;hb=0e2601682b4629eb425f2d20a3c4ca3d592d3cbe;hp=849c1ad4a643bd724d952215c994567a609409cc;hpb=75b27cc68871343681f01e3f5b04cae84b1b7b2a;p=kiosk.git diff --git a/generic_news_rss_renderer.py b/generic_news_rss_renderer.py index 849c1ad..21f9afe 100644 --- a/generic_news_rss_renderer.py +++ b/generic_news_rss_renderer.py @@ -1,3 +1,5 @@ +import datetime +from dateutil.parser import parse import file_writer import grab_bag import renderer @@ -10,7 +12,8 @@ import xml.etree.ElementTree as ET class generic_news_rss_renderer(renderer.debuggable_abstaining_renderer): def __init__(self, name_to_timeout_dict, feed_site, feed_uris, page_title): - super(generic_news_rss_renderer, self).__init__(name_to_timeout_dict, False) + super(generic_news_rss_renderer, self).__init__(name_to_timeout_dict, + False) self.debug = 1 self.feed_site = feed_site self.feed_uris = feed_uris @@ -50,14 +53,31 @@ class generic_news_rss_renderer(renderer.debuggable_abstaining_renderer): def find_link(self, item): return item.findtext('link') + def munge_link(self, link): + return link + def find_image(self, item): return item.findtext('image') + def munge_image(self, image): + return image + def item_is_interesting_for_headlines(self, title, description, item): - pass + return True + + def is_item_older_than_n_days(self, item, n): + pubdate = item.findtext('pubDate') + if pubdate is not None: + pubdate = parse(pubdate) + tzinfo = pubdate.tzinfo + now = datetime.datetime.now(tzinfo) + delta = (now - pubdate).total_seconds() / (60 * 60 * 24) + if (delta > n): + return True + return False def item_is_interesting_for_article(self, title, description, item): - pass + return True def periodic_render(self, key): if key == "Fetch News": @@ -91,7 +111,7 @@ class generic_news_rss_renderer(renderer.debuggable_abstaining_renderer): return False for msg in subset: blurb = msg - blurb += "\n" + blurb += u'' details.add_item(blurb) g = file_writer.file_writer('%s_6_none.html' % ( self.get_details_page_prefix())) @@ -132,8 +152,12 @@ class generic_news_rss_renderer(renderer.debuggable_abstaining_renderer): description = item.findtext('description') if description is not None: description = self.munge_description(description) + image = self.find_image(item) + if image is not None: + image = self.munge_image(image) link = item.findtext('link') - image = item.findtext('image') + if link is not None: + link = self.munge_link(link) if (title is None or not self.item_is_interesting_for_headlines(title, @@ -151,38 +175,31 @@ class generic_news_rss_renderer(renderer.debuggable_abstaining_renderer): #print u"Title: %s\nDescription: %s\nLink: %s\nImage: %s\n" % ( # title, description, link, image) - blurb = """
%s' % title
+ blurb += u''
+
+ if link is None:
+ blurb += u'
%s' % title + else: + blurb += u'
%s' % (link, title)
if (description is not None and
- self.item_is_interesting_for_article(title, description, item)):
+ self.item_is_interesting_for_article(title,
+ description,
+ item)):
longblurb = blurb
- longblurb += "
"
+ longblurb += u"
"
longblurb += description
- longblurb += "