Attempt to default to feed updated_parsed - response to problem handling RSS 0.9x feed - see http://lists.planetplanet.org/archives/devel/2006-November/001273.html

This commit is contained in:
Harry Fuecks 2006-11-10 15:08:18 +00:00
parent d68ab54ea1
commit 7696b0e9a7
2 changed files with 12 additions and 5 deletions

View File

@ -225,7 +225,7 @@ def reconstitute(feed, entry):
content(xentry, 'content', entry.get('content',[None])[0], bozo)
content(xentry, 'rights', entry.get('rights_detail',None), bozo)
date(xentry, 'updated', entry.get('updated_parsed',time.gmtime()))
date(xentry, 'updated', entry_updated(feed.feed, entry, time.gmtime()))
date(xentry, 'published', entry.get('published_parsed',None))
for tag in entry.get('tags',[]):
@ -251,3 +251,12 @@ def reconstitute(feed, entry):
xentry.appendChild(xsource)
return xdoc
def entry_updated(feed, entry, default = None):
chks = ((entry, 'updated_parsed'),
(entry, 'published_parsed'),
(feed, 'updated_parsed'),)
for node, field in chks:
if node.has_key(field) and node[field]:
return node[field]
return default

View File

@ -241,10 +241,8 @@ def spiderFeed(feed, only_if_new=0):
# get updated-date either from the entry or the cache (default to now)
mtime = None
if not entry.has_key('updated_parsed'):
if entry.has_key('published_parsed'):
entry['updated_parsed'] = entry.published_parsed
if entry.has_key('updated_parsed') and entry['updated_parsed']:
entry['updated_parsed'] = reconstitute.entry_updated(data.feed, entry)
if entry['updated_parsed']:
try:
mtime = calendar.timegm(entry.updated_parsed)
if mtime > time.time(): mtime = None