# HG changeset patch # User Dirk Olmes # Date 1314171550 -7200 # Node ID e927c6910c387e3d45eca17b0b067d5a441a95c5 # Parent 2642c8d89bdc5bc8506fd1e3a01dc0f0855c8e88# Parent 2cd30af937fa0e4df0d588e37b9ac31647b1a877 Automated merge with https://xanthippe.dyndns.org/hg/Feedworm diff -r 2642c8d89bdc -r e927c6910c38 backend/couchdb/CouchDbBackend.py --- a/backend/couchdb/CouchDbBackend.py Wed Aug 24 09:15:29 2011 +0200 +++ b/backend/couchdb/CouchDbBackend.py Wed Aug 24 09:39:10 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 diff -r 2642c8d89bdc -r e927c6910c38 backend/couchdb/Feed.py --- a/backend/couchdb/Feed.py Wed Aug 24 09:15:29 2011 +0200 +++ b/backend/couchdb/Feed.py Wed Aug 24 09:39:10 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