]> www.wagner.pp.ru Git - oss/ljdump.git/blob - convertdump.py
Created new convertdump script
[oss/ljdump.git] / convertdump.py
1 #!/usr/bin/python
2
3 import xml.dom.minidom 
4
5 def getNodeText(doc, nodename):
6     rc = ""
7
8     nodelist = doc.getElementsByTagName(nodename)[0].childNodes
9
10     for node in nodelist:
11         if node.nodeType == node.TEXT_NODE:
12             rc = rc + node.data
13
14     return rc
15
16 def appendTextNode(doc, parent, nodename, value):
17     element = doc.createElement(nodename)
18     textNode = doc.createTextNode(value)
19     element.appendChild(textNode)
20     parent.appendChild(element)
21
22
23 def addEntryForID(doc, username, id):
24     entryFile = open("%s/L-%s" % (username,id), "r")
25     inDoc = xml.dom.minidom.parse(entryFile)
26
27     # Create an entry element
28     entry = outDoc.createElement("entry")
29     ljElement.appendChild(entry)
30
31     # Create an itemid element
32     appendTextNode(outDoc, entry, "itemid", getNodeText(inDoc,"itemid"))
33
34     # Create an eventtime element
35     appendTextNode(outDoc, entry, "eventtime", getNodeText(inDoc, "eventtime"))
36
37     # Create an subject element
38     appendTextNode(outDoc, entry, "subject", getNodeText(inDoc, "subject"))
39
40     # Create an event node (special case because for some reason there are two
41     # 'event' elements in the pydump output, which is probably LJ's fault)
42     event = inDoc.getElementsByTagName("event")[0]
43     appendTextNode(outDoc, entry, "event", getNodeText(event, "event"))
44
45     # Create an allowmask element (doesn't exist in pydump output if public)
46     try:
47         appendTextNode(outDoc, entry, "allowmask", 
48             getNodeText(inDoc, "allowmask"))
49     except:
50         appendTextNode(outDoc, entry, "allowmask", "0")
51
52     # Create a taglist element
53     appendTextNode(outDoc, entry, "taglist", getNodeText(inDoc, "taglist"))
54
55     # XXXSMG: make sure there is a comment file before trying to do anything
56     # with it
57     commentFile = open("%s/C-%s" % (username,id), "r")
58     
59
60 # Create the minidom document
61 outDoc = xml.dom.minidom.Document()
62
63 # Create the <livejournal> base element
64 ljElement = outDoc.createElement("livejournal")
65 outDoc.appendChild(ljElement)
66
67 addEntryForID(outDoc, "grahams", "2583")
68
69 # Print our newly created XML
70 print outDoc.toprettyxml(indent="  ")