view backend/couchdb/FeedUpdater.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 95445513cc34
children bb3c851b18b1
line wrap: on
line source


from FeedEntry import FeedEntry
from backend.AbstractFeedUpdater import AbstractFeedUpdater
import logging

log = logging.getLogger("FeedUpdater")

class FeedUpdater(AbstractFeedUpdater):
    def __init__(self, database, preferences):
        AbstractFeedUpdater.__init__(self, preferences)
        self.database = database

    def _processEntry(self, entry):
        feedEntry = FeedEntry.findByLink(entry.link, self.database)
        if feedEntry is None:
            self._createFeedEntry(entry)

    def _createFeedEntry(self, entry):
        if hasattr(entry, "published"):
            log.info("new feed entry: %s (%s)" % (entry.title, entry.published))
        else:
            log.info("new feed entry: %s" % (entry.title))
        feedEntry = FeedEntry()
        feedEntry.feed = self.feed.id
        feedEntry.link = entry.link
        feedEntry.title = entry.title
        feedEntry.summary = entry.summary
        feedEntry.updated = entry.updated_parsed
        feedEntry.store(self.database)

    def _incrementFeedUpdateDate(self):
        self.feed.incrementNextUpdateDate()
        self.feed.store(self.database)

    def _setFeedTitle(self, feedDict):
        oldTitle = self.feed.title
        AbstractFeedUpdater._setFeedTitle(self, feedDict)
        if oldTitle != self.feed.title:
            self.feed.store(self.database)