From 4f46ce78940e02d94f9f307b047e3363eaacf555 Mon Sep 17 00:00:00 2001 From: Yves Marcoz Date: Sun, 18 Jul 2010 01:04:32 -0700 Subject: [PATCH] Fixed hide read feeds --- debian/changelog | 7 +++++++ src/FeedingIt.py | 10 ++++++++-- src/rss_sqlite.py | 22 ++++++++++++++-------- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7235a43..bdedc03 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +feedingit (0.8.0-3) unstable; urgency=low + + * Updated feed/article cell size in widget + * Updated hide read feed option + + -- Yves Sun, 18 Jul 2010 01:40:19 -0800 + feedingit (0.8.0-1) unstable; urgency=low * Modified storage engine to use sqlite3 diff --git a/src/FeedingIt.py b/src/FeedingIt.py index 2e53a52..613d457 100644 --- a/src/FeedingIt.py +++ b/src/FeedingIt.py @@ -708,9 +708,14 @@ class DisplayFeed(hildon.StackableWindow): #self.pannableFeed.set_property("mov-mode", hildon.MOVEMENT_MODE_BOTH) hideReadArticles = self.config.getHideReadArticles() + if hideReadArticles: + articles = self.feed.getIds(onlyUnread=True) + else: + articles = self.feed.getIds() + hasArticle = False self.current = list() - for id in self.feed.getIds(): + for id in articles: isRead = False try: isRead = self.feed.isEntryRead(id) @@ -1063,8 +1068,9 @@ class FeedingIt: gtk.ICON_LOOKUP_USE_BUILTIN) self.feedItems.clear() + hideReadFeed = self.config.getHideReadFeeds() order = self.config.getFeedSortOrder() - keys = self.listing.getSortedListOfKeys(order) + keys = self.listing.getSortedListOfKeys(order, onlyUnread=hideReadFeed) for key in keys: unreadItems = self.listing.getFeedNumberOfUnreadItems(key) diff --git a/src/rss_sqlite.py b/src/rss_sqlite.py index 3fd2c4d..fb62c4f 100644 --- a/src/rss_sqlite.py +++ b/src/rss_sqlite.py @@ -230,8 +230,11 @@ class Feed: def generateUniqueId(self, entry): return getId(str(entry["date"]) + str(entry["title"])) - def getIds(self): - rows = self.db.execute("SELECT id FROM feed ORDER BY date DESC;").fetchall() + def getIds(self, onlyUnread=False): + if onlyUnread: + rows = self.db.execute("SELECT id FROM feed where read=0 ORDER BY date DESC;").fetchall() + else: + rows = self.db.execute("SELECT id FROM feed ORDER BY date DESC;").fetchall() ids = [] for row in rows: ids.append(row[0]) @@ -476,23 +479,26 @@ class Listing: keys.append(row[0]) return keys - def getSortedListOfKeys(self, order): + def getSortedListOfKeys(self, order, onlyUnread=False): if order == "Most unread": - tmp = "ORDER BY unread" + tmp = "ORDER BY unread DESC" #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][1], reverse=True) elif order == "Least unread": - tmp = "ORDER BY unread DESC" + tmp = "ORDER BY unread" #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][1]) elif order == "Most recent": - tmp = "ORDER BY updateTime" + tmp = "ORDER BY updateTime DESC" #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][2], reverse=True) elif order == "Least recent": - tmp = "ORDER BY updateTime DESC" + tmp = "ORDER BY updateTime" #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][2]) else: # order == "Manual" or invalid value... tmp = "ORDER BY rank" #keyorder = sorted(feedInfo, key = lambda k: feedInfo[k][0]) - sql = "SELECT id FROM feeds " + tmp + if onlyUnread: + sql = "SELECT id FROM feeds WHERE unread>0 " + tmp + else: + sql = "SELECT id FROM feeds " + tmp rows = self.db.execute(sql) keys = [] for row in rows: -- 1.7.9.5