Mercurial > hg > Feedworm
view backend/couchdb/FeedEntry.py @ 189:e5d492595bdb
the view returns feed entries for a feed sorted by update date now, no need to do sorting in-memory
author | dirk |
---|---|
date | Wed, 14 Sep 2011 00:17:55 +0200 |
parents | ac1de0a467fd |
children | 9d422fa90096 |
line wrap: on
line source
from backend.couchdb.ListDateTimeField import ListDateTimeField from couchdb.mapping import BooleanField, Document, TextField from datetime import datetime import CouchDb class FeedEntry(Document): doctype = TextField(default="feedEntry") create_timestamp = ListDateTimeField(default=datetime.now()) read = BooleanField(default=False) link = TextField() title = TextField() summary = TextField() updated = ListDateTimeField() feed = TextField() @staticmethod def findByLink(link, database): result = FeedEntry.view(database, CouchDb.feedEntryByLink(), key=link) try: return iter(result).next() except StopIteration: return None @staticmethod def getReadFeedEntriesOlderThan(timestamp, database): end = [timestamp.year, timestamp.month, timestamp.day, timestamp.hour, timestamp.minute, timestamp.second] return FeedEntry.view(database, CouchDb.readFeedEntriesByCreateDate(), endkey=end) @staticmethod def entriesForFeed(feed, database): ''' the definition of the view makes sure that the entries come out sorted by udpate date ''' viewResults = FeedEntry.view(database, CouchDb.feedEntriesByFeed(), startkey=[feed.id], endkey=[feed.id, {}]) return list(viewResults) def markRead(self, database): self.read = True self.store(database) def toggleRead(self, database): if self.read: self.read = False else: self.read = True self.store(database)