5 def getNodeText(doc, nodename):
8 nodelist = doc.getElementsByTagName(nodename)[0].childNodes
11 if node.nodeType == node.TEXT_NODE:
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)
23 def addEntryForID(doc, username, id):
24 entryFile = open("%s/L-%s" % (username,id), "r")
25 inDoc = xml.dom.minidom.parse(entryFile)
27 # Create an entry element
28 entry = outDoc.createElement("entry")
29 ljElement.appendChild(entry)
31 # Create an itemid element
32 appendTextNode(outDoc, entry, "itemid", getNodeText(inDoc,"itemid"))
34 # Create an eventtime element
35 appendTextNode(outDoc, entry, "eventtime", getNodeText(inDoc, "eventtime"))
37 # Create an subject element
38 appendTextNode(outDoc, entry, "subject", getNodeText(inDoc, "subject"))
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"))
45 # Create an allowmask element (doesn't exist in pydump output if public)
47 appendTextNode(outDoc, entry, "allowmask",
48 getNodeText(inDoc, "allowmask"))
50 appendTextNode(outDoc, entry, "allowmask", "0")
52 # Create a taglist element
53 appendTextNode(outDoc, entry, "taglist", getNodeText(inDoc, "taglist"))
55 # XXXSMG: make sure there is a comment file before trying to do anything
57 commentFile = open("%s/C-%s" % (username,id), "r")
60 # Create the minidom document
61 outDoc = xml.dom.minidom.Document()
63 # Create the <livejournal> base element
64 ljElement = outDoc.createElement("livejournal")
65 outDoc.appendChild(ljElement)
67 addEntryForID(outDoc, "grahams", "2583")
69 # Print our newly created XML
70 print outDoc.toprettyxml(indent=" ")