feedlist: update blog URL
[planet-ucc.git] / XMLParse2.py
index 3a14e2b..978b418 100644 (file)
@@ -17,6 +17,7 @@ feedparser.USER_AGENT = "PlanetUCC/1.0b +http://planet.ucc.asn.au/ %s" % feedpar
 
 class Blog:
        def __init__(self):
+               self.blogName   = None
                self.blogTitle  = None
                self.blogURL    = None
                self.feedURL    = None
@@ -30,6 +31,7 @@ class BlogItem:
                self.itemTitle  = None
                self.itemDate   = None
                self.itemURL    = None
+               self.commentsURL = None
                self.contents   = None
 
 class XMLParse:
@@ -41,19 +43,20 @@ 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')
@@ -84,6 +87,10 @@ class XMLParse:
                        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'):
@@ -94,13 +101,16 @@ class XMLParse:
                                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

UCC git Repository :: git.ucc.asn.au