From e8e189c08f87ff91bf14e212affe1a42c0a89bbf Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Tue, 17 Oct 2006 20:59:06 -0400 Subject: [PATCH] Handle feed errors (no version string) better --- planet/spider.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/planet/spider.py b/planet/spider.py index b5cd2a0..9a422a3 100644 --- a/planet/spider.py +++ b/planet/spider.py @@ -186,17 +186,18 @@ def spiderFeed(feed): data.feed['planet_http_last_modified']) # capture feed and data from the planet configuration file - if not data.feed.has_key('links'): data.feed['links'] = list() - feedtype = 'application/atom+xml' - if data.version.startswith('rss'): feedtype = 'application/rss+xml' - if data.version in ['rss090','rss10']: feedtype = 'application/rdf+xml' - for link in data.feed.links: - if link.rel == 'self': - link['type'] = feedtype - break - else: - data.feed.links.append(feedparser.FeedParserDict( - {'rel':'self', 'type':feedtype, 'href':feed})) + if data.version: + if not data.feed.has_key('links'): data.feed['links'] = list() + feedtype = 'application/atom+xml' + if data.version.startswith('rss'): feedtype = 'application/rss+xml' + if data.version in ['rss090','rss10']: feedtype = 'application/rdf+xml' + for link in data.feed.links: + if link.rel == 'self': + link['type'] = feedtype + break + else: + data.feed.links.append(feedparser.FeedParserDict( + {'rel':'self', 'type':feedtype, 'href':feed})) for name, value in config.feed_options(feed).items(): data.feed['planet_'+name] = value @@ -272,6 +273,8 @@ def spiderFeed(feed): # report channel level errors if data.status == 226: if data.feed.has_key('planet_message'): del data.feed['planet_message'] + if feed_info.feed.has_key('planet_updated'): + data.feed['planet_updated'] = feed_info.feed['planet_updated'] elif data.status == 403: data.feed['planet_message'] = "403: forbidden" elif data.status == 404: