Mercurial > hg > Feedworm
diff FeedUpdater.py @ 9:fd4c8bfa62d6
FeedUpdater throws an exception if the URL could not be retrieved successfully. Includes unit tests.
author | Dirk Olmes <dirk@xanthippe.ping.de> |
---|---|
date | Tue, 27 Apr 2010 10:22:35 +0200 |
parents | 215c34f61e95 |
children | 01a86b178e60 |
line wrap: on
line diff
--- a/FeedUpdater.py Tue Apr 27 03:42:08 2010 +0200 +++ b/FeedUpdater.py Tue Apr 27 10:22:35 2010 +0200 @@ -4,6 +4,8 @@ from FeedEntry import FeedEntry import feedparser +STATUS_OK = 200 + def updateAllFeeds(session): allFeeds = session.query(Feed) for feed in allFeeds: @@ -16,10 +18,16 @@ self.feed = feed def update(self): - result = feedparser.parse(self.feed.rss_url) + result = self.getFeed() for entry in result.entries: self.processEntry(entry) + def getFeed(self): + result = feedparser.parse(self.feed.rss_url) + if result["status"] is not STATUS_OK: + raise FeedUpdateException() + return result + def processEntry(self, entry): feedEntry = FeedEntry.findById(entry.id, self.session) if feedEntry is None: @@ -34,3 +42,6 @@ new.summary = entry.summary new.feed = self.feed self.session.add(new) + +class FeedUpdateException(Exception): + pass \ No newline at end of file