From 70810fff6a8f43c81892369c53294eb77fc79ad6 Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Mon, 7 Feb 2011 14:01:22 -0500 Subject: [PATCH] Fix for Google Reader Shared Feeds: http://lists.planetplanet.org/archives/devel/2011-February/002196.html --- planet/reconstitute.py | 1 + planet/spider.py | 4 +++- tests/data/reconstitute/gr_id.xml | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/data/reconstitute/gr_id.xml diff --git a/planet/reconstitute.py b/planet/reconstitute.py index ffba7a0..bb41cfa 100644 --- a/planet/reconstitute.py +++ b/planet/reconstitute.py @@ -70,6 +70,7 @@ def id(xentry, entry): if entry.has_key("id") and entry.id: entry_id = entry.id + if hasattr(entry_id, 'values'): entry_id = entry_id.values()[0] elif entry.has_key("link") and entry.link: entry_id = entry.link elif entry.has_key("title") and entry.title: diff --git a/planet/spider.py b/planet/spider.py index 311077f..50d1739 100644 --- a/planet/spider.py +++ b/planet/spider.py @@ -176,7 +176,9 @@ def writeCache(feed_uri, feed_info, data): # generate an id, if none is present if not entry.has_key('id') or not entry.id: entry['id'] = reconstitute.id(None, entry) - if not entry['id']: continue + elif hasattr(entry['id'], 'values'): + entry['id'] = entry['id'].values()[0] + if not entry['id']: continue # determine updated date for purposes of selection updated = '' diff --git a/tests/data/reconstitute/gr_id.xml b/tests/data/reconstitute/gr_id.xml new file mode 100644 index 0000000..eca22b7 --- /dev/null +++ b/tests/data/reconstitute/gr_id.xml @@ -0,0 +1,11 @@ + + + + + http://example.com/1 + + +