view backend/couchdb/Feed.py @ 141:6ea813cfac33

pull out common code for updating a feed into an abstract class, have the sqlalchemy backend use that class.
author Dirk Olmes <dirk@xanthippe.ping.de>
date Wed, 24 Aug 2011 10:53:46 +0200
parents 2cd30af937fa
children 74217db92993
line wrap: on
line source


from datetime import datetime

DATE_FORMAT = "%Y-%m-%d %H:%M:%S"

class Feed(object):
    @staticmethod
    def all(database):
        viewResults = database.view("feedtest/feeds")
        return [Feed(row) for row in viewResults]

    def __init__(self, row):
        self.row = row

    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