See Changelog
[planet-ucc.git] / update-planet
1 #!/usr/bin/python
2 #
3 # update-planet
4 #
5 # Downloads feeds from the URLs specified and generates the XHTML files.
6 #
7 # (c) 2004, Davyd Madeley <[email protected]>
8 #
9
10 import sys, codecs
11 import XMLParse2 as XMLParse, XMLWriter, CacheHandler
12
13 # step 1: read in the config and check each object from cache
14 cache   = CacheHandler.CacheHandler()
15 feeds   = []
16
17 for feed in open('feedlist').readlines():
18         if feed.strip()[0] != '#':
19                 storage         = feed.strip().split('\t')
20                 name, feed      = storage[0], storage[-1]
21                 try:
22                         feeds.append((name, feed, cache.getBlog(name, feed)))
23 #                       # XXX: might want to consider some good caching code in here
24 #                       feeds.append((name, feed, urllib2.urlopen(feed).read()))
25                 except:
26                         raise
27
28 # step 2: process each feed
29 blogs   = []
30 for feed in feeds:
31         # XMLParse2 takes two paramaters, a URL and a CacheObject
32         blog    = XMLParse.XMLParse(feed[1], feed[2]).parse()
33         blog.blogTitle  = feed[0]
34         blog.feedURL    = feed[1]
35         blogs.append(blog)
36         # write the cache back down to disk
37         cache.storeBlog(blog)
38
39 # step 3: write feed to disk
40 try:
41         codecs.open('planet.html', 'wb', 'utf-8').write(XMLWriter.XMLWriter(XMLWriter.XHTMLWriter, blogs).write())
42 except:
43         sys.stderr.write('DEBUG: update-planet: could not write planet.html, aborting\n')

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