+ addCommentsForId(outDoc, entry, username, id)
+
+ element.appendChild(entry)
+
+def addCommentsForId(outDoc, entry, username, id):
+ try:
+ commentFile = open("%s/C-%s" % (username,id), "r")
+ except IOError: # there are no comments for this entry
+ return
+
+ inDoc = xml.dom.minidom.parse(commentFile)
+
+ comments = inDoc.getElementsByTagName("comment")
+
+ for comment in comments:
+ outComment = outDoc.createElement("comment")
+ entry.appendChild(outComment)
+
+ # add the item id for the comment
+ appendTextNode(outDoc, outComment, "itemid",
+ getNodeText(comment, "id"))
+
+ # convert the time string
+ timeString = getNodeText(comment, "date")
+ if( timeString != "" ):
+ inDate = strptime(timeString, "%Y-%m-%dT%H:%M:%SZ")
+ outDate = strftime("%Y-%m-%d %H:%M:%S", inDate)
+ appendTextNode(outDoc, outComment, "eventtime", outDate)
+ else:
+ emptyTime = outDoc.createElement("eventtime")
+ outComment.appendChild(emptyTime)
+
+ # Create an subject element
+ appendTextNode(outDoc, outComment, "subject",
+ getNodeText(comment, "subject"))
+
+ # Create an event element
+ bodyText = getNodeText(comment, "body")
+ appendTextNode(outDoc, outComment, "event", replaceLJTags(bodyText))
+
+ # Create the author element
+ author = outDoc.createElement("author")
+ outComment.appendChild(author)
+
+ try:
+ cUser = getNodeText(comment, "user")
+ except:
+ cUser = "anonymous"
+
+ appendTextNode(outDoc, author, "name", cUser)
+ appendTextNode(outDoc, author, "email", cUser + "@livejournal.com")
+
+ # Create the parent_itemid
+ parentId = getNodeText(comment, "parentid")
+ if(parentId != ""):
+ appendTextNode(outDoc, outComment, "parent_itemid", parentId)
+
+def replaceLJTags(entry):
+ rv = entry
+
+ # replace lj user tags
+ userRE = re.compile('<lj user="(.*?)" ?/?>', re.IGNORECASE)
+ rv = re.sub(userRE, '<a href="http://\\1.livejournal.com/" class="lj-user">\\1</a>', rv)
+
+ # replace lj comm tags
+ commRE = re.compile('<lj comm="(.*?)" ?/?>', re.IGNORECASE)
+ rv = re.sub(commRE, '<a href="http://community.livejournal.com/\\1/" class="lj-comm">\\1</a>', rv)
+
+ # replace lj-cut tags
+ namedCutRE = re.compile('<lj-cut +text="(.*?)" ?/?>',
+ re.IGNORECASE|re.DOTALL)
+ rv = re.sub(namedCutRE, '<!--more \\1-->', rv)