From fa67ceaeb2390047b37527b37d65a0dd61c7431c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 10 Feb 2013 17:00:15 +0530 Subject: [PATCH] News download: Handle feeds that have entries with empty ids --- src/calibre/web/feeds/__init__.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/calibre/web/feeds/__init__.py b/src/calibre/web/feeds/__init__.py index ee8072cda4..43b404367c 100644 --- a/src/calibre/web/feeds/__init__.py +++ b/src/calibre/web/feeds/__init__.py @@ -152,11 +152,13 @@ class Feed(object): for item in articles: if len(self.articles) >= max_articles_per_feed: break - id = item.get('id', 'internal id#'+str(self.id_counter)) + self.id_counter += 1 + id = item.get('id', None) + if not id: + id = 'internal id#%s'%self.id_counter if id in self.added_articles: return self.added_articles.append(id) - self.id_counter += 1 published = time.gmtime(item.get('timestamp', time.time())) title = item.get('title', _('Untitled article')) link = item.get('url', None) @@ -176,13 +178,15 @@ class Feed(object): def parse_article(self, item): - id = item.get('id', 'internal id#'+str(self.id_counter)) + self.id_counter += 1 + id = item.get('id', None) + if not id: + id = 'internal id#%s'%self.id_counter if id in self.added_articles: return published = item.get('date_parsed', time.gmtime()) if not published: published = time.gmtime() - self.id_counter += 1 self.added_articles.append(id) title = item.get('title', _('Untitled article'))