git.ucc.asn.au
/
planet-ucc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixes for dodgy blogs, new feedparser
[planet-ucc.git]
/
XMLParse2.py
diff --git
a/XMLParse2.py
b/XMLParse2.py
index
8f6dc7e
..
d1ca814
100644
(file)
--- a/
XMLParse2.py
+++ b/
XMLParse2.py
@@
-13,8
+13,11
@@
import CacheHandler
sys.path.insert(0, 'extra')
import feedparser
sys.path.insert(0, 'extra')
import feedparser
+feedparser.USER_AGENT = "PlanetUCC/1.0b +http://planet.ucc.asn.au/ %s" % feedparser.USER_AGENT
+
class Blog:
def __init__(self):
class Blog:
def __init__(self):
+ self.blogName = None
self.blogTitle = None
self.blogURL = None
self.feedURL = None
self.blogTitle = None
self.blogURL = None
self.feedURL = None
@@
-39,19
+42,20
@@
class XMLParse:
"Return a single Blog object"
item = Blog()
if self.blogObject and self.blogObject.cache:
"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)
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
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:
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')
try:
data = feedparser.parse(self.feedURL)
sys.stdout.write('done.\n')
@@
-61,10
+65,17
@@
class XMLParse:
# create caching data
try:
cache = CacheHandler.CacheObject()
# create caching data
try:
cache = CacheHandler.CacheObject()
- cache.etag = data['etag']
- cache.date = data['modified']
+ try:
+ cache.etag = data['etag']
+ except:
+ cache.etag = None
+ try:
+ cache.date = data['modified']
+ except:
+ cache.date = None
item.cache = cache
except:
item.cache = cache
except:
+ sys.stderr.write('DEBUG: XMLParse2: cache item generation failed\n')
item.cache = None
# parse the return of data into a blog
if data['channel'].has_key('title'):
item.cache = None
# parse the return of data into a blog
if data['channel'].has_key('title'):
UCC
git Repository :: git.ucc.asn.au