Mercurial > hg > Feedworm
view backend/sqlalchemy/Feed.py @ 205:adf7f617bda9
make the name of the design document configurable via command line switch. When cloning the feedworm db, the design document is no longer the same as the database name
author | dirk |
---|---|
date | Sat, 02 Jun 2012 04:24:49 +0200 |
parents | 7157bfd3f4d4 |
children | bb3c851b18b1 |
line wrap: on
line source
from datetime import datetime, timedelta import FeedEntry class Feed(object): @staticmethod def all(session): return session.query(Feed).order_by(Feed.title).all() def __init__(self, rss_url, title=None): self.rss_url = rss_url self.title = title # default: update every 60 minutes self.update_interval = 60 self.incrementNextUpdateDate() self.auto_load_entry_link = False self.always_open_in_browser = False def __repr__(self): return "<Feed (%d) %s>" % (self.pk, self.title) def userPresentableString(self): return self.title def entriesSortedByUpdateDate(self, hideReadEntries=False): if hideReadEntries: sortedEntries = self._unreadEntries() else: sortedEntries = list(self.entries) sortedEntries.sort(FeedEntry.compareByUpdateDate) return sortedEntries def _unreadEntries(self): retValue = [] for entry in self.entries: if not entry.read: retValue.append(entry) return retValue def incrementNextUpdateDate(self): delta = timedelta(minutes=self.update_interval) self.next_update = datetime.now() + delta def takeChangesFrom(self, changes): for key in changes.keys(): setattr(self, key, changes[key])