]> wagner.pp.ru Git - oss/ljdump.git/blobdiff - convertdump.py
now replace lj comm as well as lj-cut tags
[oss/ljdump.git] / convertdump.py
index f098a58f2a2e0b29fd0fbaca86ceb3a5a7e75509..c99fff9b7d8d33bf311056c5ee7419ba660eb313 100755 (executable)
@@ -30,6 +30,7 @@ import os
 import codecs
 import sys
 import getopt
+import re
 
 from time import strptime, strftime
 
@@ -85,7 +86,9 @@ def addEntryForId(outDoc, element, username, id, includeSecure):
     # Create an event node (special case because for some reason there are two
     # 'event' elements in the pydump output, which is probably LJ's fault)
     event = inDoc.getElementsByTagName("event")[0]
-    appendTextNode(outDoc, entry, "event", getNodeText(event, "event"))
+    eventText = getNodeText(event, "event")
+
+    appendTextNode(outDoc, entry, "event", replaceLJTags(eventText))
 
     security = getNodeText(inDoc, "security")
 
@@ -152,8 +155,8 @@ def addCommentsForId(outDoc, entry, username, id):
             getNodeText(comment, "subject"))
 
         # Create an event element
-        appendTextNode(outDoc, outComment, "event", 
-            getNodeText(comment, "body"))
+        bodyText = getNodeText(comment, "body")
+        appendTextNode(outDoc, outComment, "event", replaceLJTags(bodyText))
 
         # Create the author element
         author = outDoc.createElement("author")
@@ -172,6 +175,31 @@ def addCommentsForId(outDoc, entry, username, id):
         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)
+    
+    cutRE = re.compile('<lj-cut>', re.IGNORECASE)
+    rv = re.sub(cutRE, '<!--more-->', rv)
+
+    cutRE = re.compile('</lj-cut>', re.IGNORECASE)
+    rv = re.sub(cutRE, '', rv)
+
+    return rv
+
+
 def usage():
     print( "Usage: convertdump.py [arguments]" )
     print( """