Mercurial > web-gnusto
view generate_index.py @ 93:817aa2851339 default tip
Added a very simple index.html.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Fri, 23 May 2008 03:50:44 -0700 |
parents | 9bd1e980425f |
children |
line wrap: on
line source
import elementtree.ElementTree as ET import urllib2 import re import os import json ZCODE_REGEXP = r".*\.z[1-8]$" EXCLUDED_DIRS = ["if-archive/infocom", "if-archive/solutions", "if-archive/starters"] EXCLUDED_DIRS_REGEXP = "|".join(EXCLUDED_DIRS) INDEX_URL = "http://www.ifarchive.org/indexes/Master-Index.xml" XML_FILENAME = "Master-Index.xml" JSON_FILENAME = "if-archive.json" if __name__ == "__main__": if not os.path.exists(XML_FILENAME): print "Fetching %s." % INDEX_URL data = urllib2.urlopen(INDEX_URL).read() open(XML_FILENAME, "w").write(data) print "Scanning files." page = ET.ElementTree(file=XML_FILENAME) files = page.findall("file") zfiles = [ filenode for filenode in files if re.match(ZCODE_REGEXP, filenode.find("name").text) and filenode.find("description") is not None and not re.match(EXCLUDED_DIRS_REGEXP, filenode.find("path").text) ] dicts = [] print "Writing %s" % JSON_FILENAME for filenode in zfiles: desc = filenode.find("description").text.strip() if desc[-1] == ")": desc = desc[:desc.rindex("(")] elif desc[-1] == "]": desc = desc[:desc.rindex("[")] dicts.append( {"path" : filenode.find("path").text, "desc" : desc.encode("utf-8")} ) open(JSON_FILENAME, "w").write(json.write(dicts))