Mercurial > hg > Feedworm
changeset 139:2cd30af937fa
add the required methods for determining if a feed needs to be updated
author | Dirk Olmes <dirk@xanthippe.ping.de> |
---|---|
date | Tue, 23 Aug 2011 16:02:35 +0200 |
parents | 5b131f82057d |
children | e927c6910c38 |
files | backend/couchdb/CouchDbBackend.py backend/couchdb/Feed.py |
diffstat | 2 files changed, 25 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/backend/couchdb/CouchDbBackend.py Tue Aug 23 14:36:58 2011 +0200 +++ b/backend/couchdb/CouchDbBackend.py Tue Aug 23 16:02:35 2011 +0200 @@ -1,7 +1,9 @@ from Preferences import Preferences +from backend.couchdb.Feed import Feed import couchdb + DATABASE = "feedtest" class CouchDbBackend(object): @@ -38,10 +40,15 @@ raise Exception("not yet implemented") def updateAllFeeds(self): - raise Exception("not yet implemented") + # TODO use a view instead of iterating all feeds + allFeeds = Feed.all(self.database) + for feed in allFeeds: + if feed.needsUpdate(): + print("feed needs update " + str(feed)) def expireFeedEntries(self): - raise Exception("not yet implemented") + print("Expiring feeds is not yet implemented") +# raise Exception("not yet implemented") def dispose(self): # nothing to do here
--- a/backend/couchdb/Feed.py Tue Aug 23 14:36:58 2011 +0200 +++ b/backend/couchdb/Feed.py Tue Aug 23 16:02:35 2011 +0200 @@ -1,3 +1,7 @@ + +from datetime import datetime + +DATE_FORMAT = "%Y-%m-%d %H:%M:%S" class Feed(object): @staticmethod @@ -10,3 +14,15 @@ def __getattr__(self, key): return self.row.value[key] + + def needsUpdate(self): + updateDate = self._nextUpdateDate() + delta = datetime.now() - updateDate + return delta.total_seconds() > self._updateIntervalInSeconds() + + def _nextUpdateDate(self): + nextUpdateString = self.next_update + return datetime.strptime(nextUpdateString, DATE_FORMAT) + + def _updateIntervalInSeconds(self): + return self.update_interval * 60