Mercurial > hg > Feedworm
view backend/couchdb/Preferences.py @ 206:f74fe7cb5091
when updating feeds, only ever create new Feed objects for entries that are younger than the current expire date. This ensures that we do not see old, read, expired entries again
author | dirk |
---|---|
date | Sat, 02 Jun 2012 04:30:04 +0200 |
parents | 2c91b5653878 |
children | bb3c851b18b1 |
line wrap: on
line source
import CouchDb DAYS_TO_KEEP_FEED_ENTRIES = "daysToKeepFeedEntries" HIDE_READ_FEED_ENTRIES = "hideReadFeedEntries" PROXY_HOST = "proxyHost" PROXY_PORT = "proxyPort" SHOW_ONLY_UNREAD_FEEDS = "showOnlyUnreadFeeds" START_MAXIMIZED = "startMaximized" USE_PROXY = "useProxy" class Preferences(object): def __init__(self, database): self.database = database self._initDocument() self.documentIsDirty = False def _initDocument(self): viewResults = self.database.view(CouchDb.preference()) try: row = iter(viewResults).next() self.document = self.database[row.id] except StopIteration: empty = { "doctype" : "preferences" } doc_id, doc_rev = self.database.save(empty) #@UnusedVariable self.document = self.database[doc_id] def _documentValue(self, key, defaultValue=None): if key in self.document.keys(): return self.document[key] else: return defaultValue def _setDocumentValue(self, key, value): self.document[key] = value self.documentIsDirty = True def isProxyConfigured(self): return self.proxyHost() is not None def proxyHost(self): return self._documentValue(PROXY_HOST) def useProxy(self): return self._documentValue(USE_PROXY, True) def setUseProxy(self, value): self._setDocumentValue(USE_PROXY, value) def setProxyHost(self, hostname): if hostname is None: if PROXY_HOST in self.document.keys(): del self.document[PROXY_HOST] self.documentIsDirty = True else: self._setDocumentValue(PROXY_HOST, hostname) def proxyPort(self): return self._documentValue(PROXY_PORT) def setProxyPort(self, port): if port is None: if PROXY_PORT in self.document.keys(): del self.document[PROXY_PORT] self.documenIsDirty = True else: self._setDocumentValue(PROXY_PORT, port) def showOnlyUnreadFeeds(self): return self._documentValue(SHOW_ONLY_UNREAD_FEEDS, False) def setShowOnlyUnreadFeeds(self, flag): self._setDocumentValue(SHOW_ONLY_UNREAD_FEEDS, flag) def startMaximized(self): return self._documentValue(START_MAXIMIZED, False) def setStartMaximized(self, flag): self._setDocumentValue(START_MAXIMIZED, flag) def hideReadFeedEntries(self): return self._documentValue(HIDE_READ_FEED_ENTRIES, False) def setHideReadFeedEntries(self, flag): self._setDocumentValue(HIDE_READ_FEED_ENTRIES, flag) def daysToKeepFeedEntries(self): value = self._documentValue(DAYS_TO_KEEP_FEED_ENTRIES, 90) return int(value) def setDaysToKeepFeedEntries(self, days): self._setDocumentValue(DAYS_TO_KEEP_FEED_ENTRIES, days) def commit(self): if self.documentIsDirty: self.database.save(self.document) def rollback(self): if self.documentIsDirty: self._initDocument()