Shortened time.
[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                 except:
24                         sys.stderr.write('DEBUG: update-planet: something went wrong retrieving feed\n')
25
26 # step 2: process each feed
27 blogs   = []
28 for feed in feeds:
29         # XMLParse2 takes two paramaters, a URL and a CacheObject
30         blog    = XMLParse.XMLParse(feed[1], feed[2]).parse()
31         if blog:
32                 blog.blogTitle  = feed[0]
33                 blog.feedURL    = feed[1]
34                 blogs.append(blog)
35                 # write the cache back down to disk
36                 cache.storeBlog(blog)
37         else:
38                 pass
39
40 # step 3: write feed to disk
41 try:
42         codecs.open('planet.html', 'wb', 'utf-8').write(XMLWriter.XMLWriter(XMLWriter.XHTMLWriter, blogs).write())
43 except:
44         sys.stderr.write('DEBUG: update-planet: could not write planet.html, aborting\n')

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