class Blog:
def __init__(self):
+ self.blogName = None
self.blogTitle = None
self.blogURL = None
self.feedURL = None
self.itemTitle = None
self.itemDate = None
self.itemURL = None
+ self.commentsURL = None
self.contents = None
class XMLParse:
"Return a single Blog object"
item = Blog()
if self.blogObject and self.blogObject.cache:
- sys.stdout.write('Downloading feed %s...' % self.feedURL)
+ sys.stdout.write('Downloading feed %s... ' % self.feedURL)
try:
data = feedparser.parse(self.feedURL, self.blogObject.cache.etag, self.blogObject.cache.date)
- sys.stdout.write('done.\n')
+ # check to see what we got returned
+ if data['items'] == [] and data['channel'] == {}:
+ sys.stdout.write('cached.\n')
+ return self.blogObject
+ else:
+ sys.stdout.write('done.\n')
except:
sys.stdout.write('failed.\n')
return None
- # check to see what we got returned
- if data['items'] == [] and data['channel'] == {}:
- sys.stdout.write('Feed %s is upto date.\n' % self.feedURL)
- return self.blogObject
else:
- sys.stdout.write('Downloading feed from %s (no cache)...' % self.feedURL)
+ sys.stdout.write('Downloading feed (no cache) %s... ' % self.feedURL)
try:
data = feedparser.parse(self.feedURL)
sys.stdout.write('done.\n')
item.blogURL = data['channel']['link']
else:
item.blogURL = self.feedURL
+ if data['feed'].has_key ('image') and data['feed']['image'].has_key ('url'):
+ item.imageURL = data['feed']['image']['url']
+ if data['feed'].has_key ('image') and data['feed']['image'].has_key ('link'):
+ item.imageLink = data['feed']['image']['link']
for entry in data['items']:
blogItem = BlogItem()
if entry.has_key('title'):
blogItem.itemURL = entry['link']
else:
blogItem.itemURL = item.blogURL
- if entry.has_key('date_parsed'):
- blogItem.itemDate = time.mktime(entry['date_parsed']) + 28800
+ if entry.has_key('modified_parsed'):
+ try: blogItem.itemDate = time.mktime(entry['modified_parsed']) + 28800
+ except: blogItem.itemDate = 0
else:
blogItem.itemDate = 0
if entry.has_key('description'):
blogItem.contents = entry['description']
else:
blogItem.contents = '(entry could not be retrieved)'
+ if entry.has_key ('comments'):
+ blogItem.commentsURL = entry['comments']
item.items.append(blogItem)
return item