Mercurial > hg > Feedworm
view backend/couchdb/Feed.py @ 192:9d422fa90096
optimize marking feed entries as read: do not round trip to the database if the entry was already marked as read
author | dirk |
---|---|
date | Wed, 21 Sep 2011 13:23:25 +0200 |
parents | 91a24f499318 |
children | bb3c851b18b1 |
line wrap: on
line source
from couchdb.mapping import BooleanField, DateTimeField, Document, IntegerField, TextField from datetime import datetime, timedelta import CouchDb class Feed(Document): doctype = TextField(default="feed") title = TextField() rss_url = TextField() update_interval = IntegerField(default=60) next_update = DateTimeField() auto_load_entry_link = BooleanField(default=False) always_open_in_browser = BooleanField(default=False) @staticmethod def all(database): return Feed.view(database, CouchDb.feeds()) @staticmethod def create(url, title=None): feed = Feed() feed.rss_url = url feed.title = title return feed def needsUpdate(self): delta = datetime.now() - self.next_update return delta.total_seconds() > self._updateIntervalInSeconds() def incrementNextUpdateDate(self): updateInterval = self._updateIntervalInSeconds() delta = timedelta(seconds=updateInterval) self.next_update = datetime.now() + delta def _updateIntervalInSeconds(self): return self.update_interval * 60