From 05b0bbb283a2a54b5e49c9d6cb9c99fbe24beb70 Mon Sep 17 00:00:00 2001 From: cedricbonhomme Date: Fri, 3 Dec 2010 08:02:11 +0100 Subject: Updated code for new data structure. #3 --- pyAggr3g470r.py | 235 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 116 insertions(+), 119 deletions(-) (limited to 'pyAggr3g470r.py') diff --git a/pyAggr3g470r.py b/pyAggr3g470r.py index 4a2accc1..f92407d3 100755 --- a/pyAggr3g470r.py +++ b/pyAggr3g470r.py @@ -159,7 +159,7 @@ class Root: feed.feed_image.encode('utf-8')) # The main page display only 10 articles by feeds. - for article in feed.articles[:10]: + for article in feed.articles.values()[:10]: if article.article_readed == "0": # not readed articles are in bold @@ -421,107 +421,105 @@ class Root: return self.error_page("Bad URL") try: feed = self.feeds[feed_id] - except KeyError: - return self.error_page("This feed do not exists.") + article = feed.articles[article_id] + except: + self.error_page("This article do not exists.") html = htmlheader() html += htmlnav html += """
""" - for article in feed.articles: - if article_id == article.article_id: - - try: - os.makedirs("./var/qrcode/") - except OSError: - pass - if not os.path.isfile("./var/qrcode/"+article_id+".png"): - # QR code generation - try: - qr = PyQRNative.QRCode(7, PyQRNative.QRErrorCorrectLevel.L) - qr.addData(article.article_link) - qr.make() - im = qr.makeImage() - im.save("./var/qrcode/"+article_id+".png", format='png') - except Exception, e: - # Code length overflow - print e - - if article.article_readed == "0": - self.mark_as_read("Article:"+article.article_link) # update the database - - html += '\n
\n' - html += """

%s from %s

\n
\n""" % \ - (article.article_title.encode('utf-8'), feed.feed_id, \ - feed.feed_title.encode('utf-8')) - if article.like == "1": - html += """""" % \ - (feed.feed_id, article.article_id) - else: - html += """""" % \ - (feed.feed_id, article.article_id) - html += """  """ % \ - (feed.feed_id, article.article_id) - html += "

" - description = article.article_description - if description: - html += description.encode('utf-8') - else: - html += "No description available." - html += "\n
\n
\n" - html += """\nPlain text\n""" % \ - (feed.feed_id, article.article_id) - html += """ - Export to EPUB\n""" % \ - (feed.feed_id, article.article_id) - html += """
\nComplete story\n
\n""" % \ - (article.article_link.encode('utf-8'),) - # Share this article: - # on Identi.ca - html += """\n    \n""" % \ - (article.article_title.encode('utf-8'), article.article_link.encode('utf-8')) - - # on Google Buzz - html += """\n\n\n\t -    """ % \ - (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) - - # on delicious - html += """\n\n\n\t -    """ % \ - (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) - - # on Digg - html += """\n\n\n\t -    """ % \ - (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) - # on reddit - html += """\n\n\n\t -    """ % \ - (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) - # on Scoopeo - html += """\n\n\n\t -    """ % \ - (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) - # on Blogmarks - html += """\n\n\n\t -    """ % \ - (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) - - # on Twitter - html += """\n\n\n""" % \ - (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) - - # on Google Buzz with counter - html += """

\n\n    """ % \ - (article.article_link.encode('utf-8'),) + try: + os.makedirs("./var/qrcode/") + except OSError: + pass + if not os.path.isfile("./var/qrcode/"+article_id+".png"): + # QR code generation + try: + qr = PyQRNative.QRCode(7, PyQRNative.QRErrorCorrectLevel.L) + qr.addData(article.article_link) + qr.make() + im = qr.makeImage() + im.save("./var/qrcode/"+article_id+".png", format='png') + except Exception, e: + # Code length overflow + print e + + if article.article_readed == "0": + self.mark_as_read("Article:"+article.article_link) # update the database + + html += '\n
\n' + html += """

%s from %s

\n
\n""" % \ + (article.article_title.encode('utf-8'), feed_id, \ + feed.feed_title.encode('utf-8')) + if article.like == "1": + html += """""" % \ + (feed_id, article.article_id) + else: + html += """""" % \ + (feed_id, article.article_id) + html += """  """ % \ + (feed_id, article.article_id) + html += "

" + description = article.article_description + if description: + html += description.encode('utf-8') + else: + html += "No description available." + html += "\n
\n
\n" + html += """\nPlain text\n""" % \ + (feed_id, article.article_id) + html += """ - Export to EPUB\n""" % \ + (feed_id, article.article_id) + html += """
\nComplete story\n
\n""" % \ + (article.article_link.encode('utf-8'),) + # Share this article: + # on Identi.ca + html += """\n    \n""" % \ + (article.article_title.encode('utf-8'), article.article_link.encode('utf-8')) + + # on Google Buzz + html += """\n\n\n\t +    """ % \ + (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) + + # on delicious + html += """\n\n\n\t +    """ % \ + (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) + + # on Digg + html += """\n\n\n\t +    """ % \ + (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) + # on reddit + html += """\n\n\n\t +    """ % \ + (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) + # on Scoopeo + html += """\n\n\n\t +    """ % \ + (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) + # on Blogmarks + html += """\n\n\n\t +    """ % \ + (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) + + # on Twitter + html += """\n\n\n""" % \ + (article.article_link.encode('utf-8'), article.article_title.encode('utf-8')) + + # on Google Buzz with counter + html += """

\n\n    """ % \ + (article.article_link.encode('utf-8'),) + + html += """
\n""" % \ + (article_id,) - html += """
\n""" % \ - (article_id,) - break html += "
\n" + htmlfooter return html @@ -547,7 +545,7 @@ class Root: html += """
""" html += """

Articles of the feed %s


""" % (feed.feed_title.encode('utf-8')) - for article in feed.articles: + for article in feed.articles.values(): if article.article_readed == "0": # not readed articles are in bold @@ -599,7 +597,7 @@ class Root: for feed in self.feeds.values(): new_feed_section = True nb_unread = 0 - for article in feed.articles: + for article in feed.articles.values(): if article.article_readed == "0": nb_unread += 1 if new_feed_section is True: @@ -635,11 +633,11 @@ class Root: else: try: feed = self.feeds[feed_id] - except KeyError: - return self.error_page("This feed do not exists.") + except: + self.error_page("This feed do not exists.") html += """

Unread article(s) of the feed %s


""" % (feed.feed_id, feed.feed_title.encode('utf-8')) - for article in feed.articles: + for article in feed.articles.values(): if article.article_readed == "0": # descrition for the CSS ToolTips article_content = utils.clear_string(article.article_description.encode('utf-8')) @@ -693,7 +691,7 @@ class Root: timeline = Counter() for feed in self.feeds.values(): new_feed_section = True - for article in feed.articles: + for article in feed.articles.values(): if querystring == "all": timeline[article.article_date.encode('utf-8').split(' ')[0].split('-')[0]] += 1 @@ -762,25 +760,24 @@ class Root: try: feed_id, article_id = target.split(':') except: - return self.error_page("This article do not exists.") + return self.error_page("Bad URL.") try: - articles_list = self.articles[feed_id] - except KeyError: - return self.error_page("This feed do not exists.") + feed = self.feeds[feed_id] + article = feed.articles[article_id] + except: + self.error_page("This article do not exists.") html = htmlheader() html += htmlnav html += """
""" feed_id, article_id = target.split(':') - for article in articles_list: - if article_id == article.article_id: - html += """

%s from %s

\n
\n"""% \ - (article.article_title.encode('utf-8'), feed_id, \ - feed.feed_title.encode('utf-8')) - description = utils.clear_string(article.article_description.encode('utf-8')) - if description: - html += description - else: - html += "No description available." + html += """

%s from %s

\n
\n"""% \ + (article.article_title.encode('utf-8'), feed_id, \ + feed.feed_title.encode('utf-8')) + description = utils.clear_string(article.article_description.encode('utf-8')) + if description: + html += description + else: + html += "No description available." html += "\n
\n" + htmlfooter return html @@ -933,7 +930,7 @@ class Root: html += "

Your favorites articles

" for feed in self.feeds.values(): new_feed_section = True - for article in feed.articles: + for article in feed.articles.values(): if article.like == "1": if new_feed_section is True: new_feed_section = False -- cgit