]> git.openstreetmap.org Git - osqa.git/blobdiff - forum_modules/sximporter/importer.py
Sor order was not working.
[osqa.git] / forum_modules / sximporter / importer.py
index 2ae3c748efbdde9267035ae3bf986baddbd8ae6f..a16b29c741ada6038cb0ce9aec5ef405b2225594 100644 (file)
@@ -47,7 +47,7 @@ class UnknownUser(object):
 class IdMapper(dict):\r
     def __getitem__(self, key):\r
         key = int(key)\r
-        return super(IdMapper, self).get(key, key)\r
+        return super(IdMapper, self).get(key, 1)\r
 \r
     def __setitem__(self, key, value):\r
         super(IdMapper, self).__setitem__(int(key), int(value))\r
@@ -80,16 +80,16 @@ def userimport(dump, options):
             username = sxu.get('displayname', sxu.get('displaynamecleaned', sxu.get('realname', UnknownUser())))\r
 \r
             if not isinstance(username, UnknownUser) and username in user_by_name:\r
-                if options.get('mergesimilar', False) and sxu.get('email', 'INVALID') == user_by_name[username].email:\r
-                    osqau = user_by_name[username]\r
-                    create = False\r
-                    uidmapper[sxu.get('id')] = osqau.id\r
-                else:\r
-                    inc = 1\r
-                    while ("%s %d" % (username, inc)) in user_by_name:\r
-                        inc += 1\r
+                #if options.get('mergesimilar', False) and sxu.get('email', 'INVALID') == user_by_name[username].email:\r
+                #    osqau = user_by_name[username]\r
+                #    create = False\r
+                #    uidmapper[sxu.get('id')] = osqau.id\r
+                #else:\r
+                inc = 1\r
+                while ("%s %d" % (username, inc)) in user_by_name:\r
+                    inc += 1\r
 \r
-                    username = "%s %d" % (username, inc)\r
+                username = "%s %d" % (username, inc)\r
 \r
         sxbadges = sxu.get('badgesummary', None)\r
         badges = {'1':'0','2':'0','3':'0'}\r
@@ -120,10 +120,13 @@ def userimport(dump, options):
 \r
             osqau.save()\r
 \r
-            s = orm.SubscriptionSettings(user=osqau)\r
-            s.save()\r
+            try:\r
+                orm.SubscriptionSettings.objects.get(user=osqau)\r
+            except:\r
+                s = orm.SubscriptionSettings(user=osqau)\r
+                s.save()\r
 \r
-            user_by_name[osqau.username] = osqau\r
+            uidmapper[osqau.id] = osqau.id\r
         else:\r
             new_about = sxu.get('aboutme', None)\r
             if new_about and osqau.about != new_about:\r
@@ -142,6 +145,7 @@ def userimport(dump, options):
             merged_users.append(osqau.id)\r
             osqau.save()\r
 \r
+        user_by_name[osqau.username] = osqau\r
 \r
         openid = sxu.get('openid', None)\r
         if openid and openidre.match(openid):\r
@@ -259,7 +263,7 @@ def comment_import(dump, uidmap, posts):
             id = currid,\r
             node_type = "comment",\r
             added_at = readTime(sxc['creationdate']),\r
-            author_id = uidmap[sxc['userid']],\r
+            author_id = uidmap[sxc.get('userid', 1)],\r
             body = sxc['text'],\r
             parent_id = sxc.get('postid'),\r
             vote_up_count = 0,\r
@@ -272,7 +276,7 @@ def comment_import(dump, uidmap, posts):
             oc.deleted_by_id = uidmap[sxc['deletionuserid']]\r
             oc.author_id = uidmap[sxc['deletionuserid']]\r
         else:\r
-            oc.author_id = uidmap[sxc['userid']]\r
+            oc.author_id = uidmap[sxc.get('userid', 1)]\r
 \r
 \r
         posts[oc.id] = oc\r