modified parser
authorvlad <vlad@vlalin.(none)>
Tue, 9 Feb 2010 12:24:45 +0000 (14:24 +0200)
committervlad <vlad@vlalin.(none)>
Tue, 9 Feb 2010 12:24:45 +0000 (14:24 +0200)
meabookdb
parser.py
test/test.ldiff

index 0b5d1ab..f4ede68 100644 (file)
Binary files a/meabookdb and b/meabookdb differ
index 1dde228..d9779bf 100755 (executable)
--- a/parser.py
+++ b/parser.py
@@ -23,23 +23,41 @@ def read_file(file_name):
     result = {}
     dbo = db.DbSqlite()
     dbo.clear_data()
+    flag_last_string = True
+
     for line in file:
+        # Check end of person 
         if line == "\n":
             dbo.ins_record(result)
             # unset result
             result = {}
             continue
+        # Check uuencode long string
+        if flag_last_string == False:
+            if re.search("^ .*=$", line):
+                value = value + line
+                continue
+            else:
+                value = base64.b64decode(value)
+                key, value = key.strip(), value.strip()
+                try:
+                    result[key].append(value)
+                except KeyError:
+                    result[key]  = [value]
+                flag_last_string = True
+                       
         key, value = line.split(':', 1)
         #Look up uuecode string
         if (re.search("^: ", value)):
-            print base64.b64decode(value)
-            value = base64.b64decode(value)
+            flag_last_string = False
+            continue
+
         key, value = key.strip(), value.strip()
         try:
             result[key].append(value)
         except KeyError:
             result[key]  = [value]
-    #return result
+    return result
 
 def main(argv):
     """ Main """
index 9b26f1b..e195164 100644 (file)
@@ -53,7 +53,8 @@ objectclass: inetOrgPerson
 objectclass: mozillaAbPersonAlpha
 givenName:: 0JLQsNGB0Y8=
 sn:: 0J/Rg9C/0LrQuNC9
-cn:: 0JLQsNGB0Y8g0J/Rg9C/0LrQuNC9
+cn:: 0JPQoNCY0J3QldCS0JjQpyDQkNC90LDRgtC+0LvQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy
+ 0LjRhw==
 mail: vasya@company.org
 modifytimestamp: 0Z
 title: student