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

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