From 488dde724fa7647a04050074967ead9ad16199b7 Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Sun, 24 Jul 2011 19:05:15 +0200 Subject: [PATCH] If a new feed's title is '', don't abort: set the title to that in the feed. --- src/FeedingIt.py | 9 +++++---- src/rss_sqlite.py | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/FeedingIt.py b/src/FeedingIt.py index f7a45b3..a36d663 100644 --- a/src/FeedingIt.py +++ b/src/FeedingIt.py @@ -175,7 +175,8 @@ class AddWidgetWizard(gtk.Dialog): self.nameEntry = hildon.Entry(gtk.HILDON_SIZE_AUTO) self.nameEntry.set_placeholder('Feed name') - if not titleIn == None: + # If titleIn matches urlIn, there is no title. + if not titleIn == None and titleIn != urlIn: self.nameEntry.set_text(titleIn) self.nameEntry.select_region(-1, -1) @@ -538,7 +539,7 @@ class SortList(hildon.StackableWindow): ret = wizard.run() if ret == 2: (title, url, category) = wizard.getData() - if (not title == '') and (not url == ''): + if url != '': self.listing.editFeed(key, title, url, category=category) self.refreshList() wizard.destroy() @@ -559,7 +560,7 @@ class SortList(hildon.StackableWindow): ret = wizard.run() if ret == 2: (title, url, category) = wizard.getData() - if (not title == '') and (not url == ''): + if url: self.listing.addFeed(title, url, category=category) wizard.destroy() self.refreshList() @@ -1177,7 +1178,7 @@ class FeedingIt: ret = wizard.run() if ret == 2: (title, url, category) = wizard.getData() - if (not title == '') and (not url == ''): + if url: self.listing.addFeed(title, url, category=category) wizard.destroy() self.displayListing() diff --git a/src/rss_sqlite.py b/src/rss_sqlite.py index b3dc2b0..6735468 100644 --- a/src/rss_sqlite.py +++ b/src/rss_sqlite.py @@ -443,9 +443,14 @@ class Feed: if not success: etag = None modified = None + title = None + try: + title = tmp.feed.title + except (AttributeError, UnboundLocalError), exception: + pass if postFeedUpdateFunc is not None: postFeedUpdateFunc (self.key, updateTime, etag, modified, - *postFeedUpdateFuncArgs) + title, *postFeedUpdateFuncArgs) def setEntryRead(self, id): self.db.execute("UPDATE feed SET read=1 WHERE id=?;", (id,) ) @@ -808,7 +813,7 @@ class Listing: def _queuePostFeedUpdate(self, *args, **kwargs): mainthread.execute (self._postFeedUpdate, async=True, *args, **kwargs) - def _postFeedUpdate(self, key, updateTime, etag, modified): + def _postFeedUpdate(self, key, updateTime, etag, modified, title): if modified==None: modified="None" else: @@ -817,6 +822,10 @@ class Listing: self.db.execute("UPDATE feeds SET updateTime=?, etag=?, modified=? WHERE id=?;", (updateTime, etag, modified, key) ) else: self.db.execute("UPDATE feeds SET etag=?, modified=? WHERE id=?;", (etag, modified, key) ) + + if title is not None: + self.db.execute("UPDATE feeds SET title=(case WHEN title=='' THEN ? ELSE title END) where id=?;", + (title, key)) self.db.commit() self.updateUnread(key) @@ -846,7 +855,10 @@ class Listing: return self.db.execute("SELECT unread FROM feeds WHERE id=?;", (key,)).fetchone()[0] def getFeedTitle(self, key): - return self.db.execute("SELECT title FROM feeds WHERE id=?;", (key,)).fetchone()[0] + (title, url) = self.db.execute("SELECT title, url FROM feeds WHERE id=?;", (key,)).fetchone() + if title: + return title + return url def getFeedUrl(self, key): return self.db.execute("SELECT url FROM feeds WHERE id=?;", (key,)).fetchone()[0] @@ -918,7 +930,7 @@ class Listing: def addFeed(self, title, url, id=None, category=1): if not id: - id = getId(title) + id = getId(url) count = self.db.execute("SELECT count(*) FROM feeds WHERE id=?;", (id,) ).fetchone()[0] if count == 0: max_rank = self.db.execute("SELECT MAX(rank) FROM feeds;").fetchone()[0] -- 1.7.9.5