From daa2d204c14eff04ee803e1c8b5db91dee1dc3fd Mon Sep 17 00:00:00 2001 From: Ronald Schaten Date: Fri, 29 Oct 2010 00:28:25 +0200 Subject: [PATCH] refactoring, improvement of debug-output --- atomstrom.py | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/atomstrom.py b/atomstrom.py index 79220ff..9f716cb 100755 --- a/atomstrom.py +++ b/atomstrom.py @@ -124,7 +124,17 @@ session = Session() #session.add(Feed('http://www.heise.de/newsticker/heise-atom.xml', 1, 0, 0, 1)) #session.add(Feed('http://blog.schatenseite.de/feed/', 1, 0, 0, 1)) -for feed in session.query(Feed).filter_by(enabled=1).order_by(Feed.id): +def process_feed_entry(feed, entry): + query = session.query(Entry).filter_by(feed_id=feed.id, title=entry.title.encode('latin-1', 'replace')) + try: + thisentry = query.one() + thisentry.update(entry) + return "-" + except Exception, e: + feed.entry.append(Entry(entry)) + return "+" + +def fetch_single_feed(feed): print "fetching %s" % feed.url parser = feedparser.parse(feed.url) print "processing feed info..." @@ -136,16 +146,24 @@ for feed in session.query(Feed).filter_by(enabled=1).order_by(Feed.id): feed.feedinfo = Feedinfo(parser) print "processing feed entries: ", + entries_new = 0 + entries_total = 0 for entry in parser.entries: - query = session.query(Entry).filter_by(feed_id=feed.id, title=entry.title.encode('latin-1', 'replace')) - try: - thisentry = query.one() - sys.stdout.write("-") - thisentry.update(entry) - except Exception, e: - sys.stdout.write("+") - feed.entry.append(Entry(entry)) + entries_total = entries_total + 1 + ret = process_feed_entry(feed, entry) + if ret == "+": + entries_new = entries_new + 1 + sys.stdout.write(ret) + print " (%d/%d new)" % (entries_new, entries_total) - print +def fetch_all_feeds(): + print "fetching all feeds..." + for feed in session.query(Feed).filter_by(enabled=1).order_by(Feed.id): + fetch_single_feed(feed) + print + +if __name__ == "__main__": + print "main" + fetch_all_feeds() session.commit()