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 import XHTMLWriter, RSS2Writer
13
14 # step 1: read in the config and check each object from cache
15 cache   = CacheHandler.CacheHandler()
16 feeds   = []
17
18 for feed in open('feedlist').readlines():
19         if feed.strip()[0] != '#':
20                 storage         = feed.strip().split('\t')
21                 name, feed      = storage[0], storage[-1]
22                 try:
23                         feeds.append((name, feed, cache.getBlog(name, feed)))
24                 except:
25                         sys.stderr.write('DEBUG: update-planet: something went wrong retrieving feed\n')
26
27 # step 2: process each feed
28 blogs   = []
29 for feed in feeds:
30         # XMLParse2 takes two paramaters, a URL and a CacheObject
31         blog    = XMLParse.XMLParse(feed[1], feed[2]).parse()
32         if blog:
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         else:
39                 pass
40
41 # step 3: sift the feeds
42 xmlwriter       = XMLWriter.XMLWriter(blogs)
43
44 # step 4: write feed to disk
45 try:
46         codecs.open('planet.html', 'wb', 'utf-8').write(xmlwriter.write(XHTMLWriter.XHTMLWriter))
47 except:
48         sys.stderr.write('DEBUG: update-planet: could not write planet.html, aborting\n')
49         raise
50
51 try:
52         codecs.open('rss2.xml', 'wb', 'utf-8').write(xmlwriter.write(RSS2Writer.RSS2Writer))
53 except:
54         sys.stderr.write('DEBUG: update-planet: could not write rss2.xml, aborting\n')
55         raise

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