# HG changeset patch # User dirk # Date 1315585077 -7200 # Node ID 57e324fa4350b480f516101d759329e1f7b9a361 # Parent d0ced79b50309c3eaf33f4bfb3e389d1066c0908 implement getting a list of feeds that have unread entries diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/map.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/map.js Fri Sep 09 18:17:57 2011 +0200 @@ -0,0 +1,7 @@ +function(doc) +{ + if (doc.doctype == "feedEntry") + { + emit(doc.feed, null); + } +} diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/reduce.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/reduce.js Fri Sep 09 18:17:57 2011 +0200 @@ -0,0 +1,4 @@ +function(keys, values, rereduce) +{ + return true; +} diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchDb.py --- a/backend/couchdb/CouchDb.py Fri Sep 09 17:21:34 2011 +0200 +++ b/backend/couchdb/CouchDb.py Fri Sep 09 18:17:57 2011 +0200 @@ -33,4 +33,5 @@ def readFeedEntriesByCreateDate(): return database + "/read_feedEntries_by_create_date" - +def feedsWithUnreadEntries(): + return database + "/feeds_with_unread_entries" diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchDbBackend.py --- a/backend/couchdb/CouchDbBackend.py Fri Sep 09 17:21:34 2011 +0200 +++ b/backend/couchdb/CouchDbBackend.py Fri Sep 09 18:17:57 2011 +0200 @@ -38,7 +38,11 @@ return self.feeds def _getUnreadFeeds(self): - raise Exception("not yet implemented") + viewResults = self.database.view(CouchDb.feedsWithUnreadEntries(), group=True) + feeds = [] + for row in viewResults: + feeds.append(Feed.load(self.database, row["key"])) + return feeds def _retrieveEntriesForSelectedFeed(self, hideReadEntries): # TODO how to hide read entries if requested?