view backend/sqlalchemy/FeedList.py @ 132:63d6d60d37ff

new backend for using CouchDB as persistence mechanism ... currently all methods are unimplemented
author Dirk Olmes <dirk@xanthippe.ping.de>
date Mon, 22 Aug 2011 19:51:59 +0200
parents 04a730f9d07d
children
line wrap: on
line source


from Feed import Feed
from FeedEntry import FeedEntry
from Preferences import Preferences
from sqlalchemy.orm import joinedload

def getFeeds(session):
    preferences = Preferences(session)
    if preferences.showOnlyUnreadFeeds():
        return _getUnreadFeeds(session)
    else:
        return Feed.all(session)

def _getUnreadFeeds(session):
    query = session.query(FeedEntry).filter(FeedEntry.read == 0)
    queryWithOptions = query.options(joinedload("feed"))
    result = queryWithOptions.all()
    return _collectFeeds(result)

def _collectFeeds(feedEntries):
    feeds = [entry.feed for entry in feedEntries]
    uniqueFeeds = set(feeds)
    return list(uniqueFeeds)