Mercurial > hg > Feedworm
view backend/couchdb/CouchDbBackend.py @ 146:8ec20377bcb0
move getting the entries for a feed to the backend so that the couchdb backend can use a custom view for feed entries
author | Dirk Olmes <dirk@xanthippe.ping.de> |
---|---|
date | Thu, 25 Aug 2011 07:01:45 +0200 |
parents | 74217db92993 |
children | c5a427d46703 |
line wrap: on
line source
from FeedUpdater import FeedUpdater from Preferences import Preferences from backend.couchdb.Feed import Feed from backend.couchdb.FeedEntry import FeedEntry import couchdb DATABASE = "feedtest" class CouchDbBackend(object): ''' Backend that uses CouchDB for persistence ''' def __init__(self): server = couchdb.Server() self.database = server[DATABASE] def preferences(self): return Preferences(self.database) def getFeeds(self): if self.preferences().showOnlyUnreadFeeds(): return self._getUnreadFeeds() else: return Feed.all(self.database) def _getUnreadFeeds(self): raise Exception("not yet implemented") def toggleRead(self, feedEntry): raise Exception("not yet implemented") def markAllEntriesRead(self, feed): raise Exception("not yet implemented") def createFeed(self, url): raise Exception("not yet implemented") def updateFeed(self, feed, changes): raise Exception("not yet implemented") def deleteFeed(self, feed): raise Exception("not yet implemented") def entriesForFeed(self, feed, hideReadEntries): viewName = "feedtest/feedEntries_by_feed" if hideReadEntries: viewName = "feedtest/unread_feedEntries_by_feed" viewResults = self.database.view(viewName) return [FeedEntry(row) for row in viewResults] def markFeedEntriesAsRead(self, entries): raise Exception("not yet implemented") def updateAllFeeds(self): # TODO use a view instead of iterating all feeds allFeeds = Feed.all(self.database) for feed in allFeeds: if feed.needsUpdate(): FeedUpdater(feed, self.database).update() def expireFeedEntries(self): print("Expiring feeds is not yet implemented") # raise Exception("not yet implemented") def dispose(self): # nothing to do here pass