Mercurial > hg > Feedworm
diff backend/AbstractFeedUpdater.py @ 160:86f828096aaf
Do not fetch and parse the feed twice when creating a new one. Pass the parsed info into the update method instead to reuse.
author | dirk |
---|---|
date | Mon, 29 Aug 2011 03:07:50 +0200 |
parents | 74217db92993 |
children | 04c3b9796b89 |
line wrap: on
line diff
--- a/backend/AbstractFeedUpdater.py Mon Aug 29 02:41:24 2011 +0200 +++ b/backend/AbstractFeedUpdater.py Mon Aug 29 03:07:50 2011 +0200 @@ -15,13 +15,13 @@ def __init__(self, feed): self.feed = feed - def update(self): + def update(self, feedDict=None): log.info("updating " + self.feed.rss_url) - result = self._retrieveFeed() - for entry in result.entries: - self._normalize(entry) - self._processEntry(entry) - self._incrementFeedUpdateDate() + if feedDict is None: + result = self._retrieveFeed() + else: + result = feedDict + self._processEntries(result) def _retrieveFeed(self): result = feedparser.parse(self.feed.rss_url) @@ -33,6 +33,12 @@ raise FeedUpdateException("HTTP status " + str(status)) return result + def _processEntries(self, feedDict): + for entry in feedDict.entries: + self._normalize(entry) + self._processEntry(entry) + self._incrementFeedUpdateDate() + def _normalize(self, entry): if not hasattr(entry, "id"): entry.id = entry.link