Mercurial > hg > Feedworm
view backend/couchdb/FeedEntry.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 | 9d422fa90096 |
children | bb3c851b18b1 |
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): if not self.read: self.read = True self.store(database) def toggleRead(self, database): if self.read: self.read = False else: self.read = True self.store(database)