From b9fff8cfb529517f0e1dfcb4c3684ab523278654 Mon Sep 17 00:00:00 2001 From: hernani Date: Fri, 23 Apr 2010 22:49:28 +0000 Subject: [PATCH] better memory management in the importer, and handle some more awkward case git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@68 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum_modules/pgfulltext/startup.py | 5 ++--- forum_modules/sximporter/importer.py | 27 ++++++++++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/forum_modules/pgfulltext/startup.py b/forum_modules/pgfulltext/startup.py index 32a7992..6a6f85d 100644 --- a/forum_modules/pgfulltext/startup.py +++ b/forum_modules/pgfulltext/startup.py @@ -15,7 +15,6 @@ except: if install: - print 'install' f = open(os.path.join(os.path.dirname(__file__), 'pg_fts_install.sql'), 'r') try: @@ -32,8 +31,8 @@ if install: kv.save() except Exception, e: - import sys, traceback - traceback.print_exc(file=sys.stdout) + #import sys, traceback + #traceback.print_exc(file=sys.stdout) pass finally: cursor.close() diff --git a/forum_modules/sximporter/importer.py b/forum_modules/sximporter/importer.py index 2ae3c74..7b54506 100644 --- a/forum_modules/sximporter/importer.py +++ b/forum_modules/sximporter/importer.py @@ -47,7 +47,7 @@ class UnknownUser(object): class IdMapper(dict): def __getitem__(self, key): key = int(key) - return super(IdMapper, self).get(key, key) + return super(IdMapper, self).get(key, 1) def __setitem__(self, key, value): super(IdMapper, self).__setitem__(int(key), int(value)) @@ -80,16 +80,16 @@ def userimport(dump, options): username = sxu.get('displayname', sxu.get('displaynamecleaned', sxu.get('realname', UnknownUser()))) if not isinstance(username, UnknownUser) and username in user_by_name: - if options.get('mergesimilar', False) and sxu.get('email', 'INVALID') == user_by_name[username].email: - osqau = user_by_name[username] - create = False - uidmapper[sxu.get('id')] = osqau.id - else: - inc = 1 - while ("%s %d" % (username, inc)) in user_by_name: - inc += 1 + #if options.get('mergesimilar', False) and sxu.get('email', 'INVALID') == user_by_name[username].email: + # osqau = user_by_name[username] + # create = False + # uidmapper[sxu.get('id')] = osqau.id + #else: + inc = 1 + while ("%s %d" % (username, inc)) in user_by_name: + inc += 1 - username = "%s %d" % (username, inc) + username = "%s %d" % (username, inc) sxbadges = sxu.get('badgesummary', None) badges = {'1':'0','2':'0','3':'0'} @@ -123,7 +123,7 @@ def userimport(dump, options): s = orm.SubscriptionSettings(user=osqau) s.save() - user_by_name[osqau.username] = osqau + uidmapper[osqau.id] = osqau.id else: new_about = sxu.get('aboutme', None) if new_about and osqau.about != new_about: @@ -142,6 +142,7 @@ def userimport(dump, options): merged_users.append(osqau.id) osqau.save() + user_by_name[osqau.username] = osqau openid = sxu.get('openid', None) if openid and openidre.match(openid): @@ -259,7 +260,7 @@ def comment_import(dump, uidmap, posts): id = currid, node_type = "comment", added_at = readTime(sxc['creationdate']), - author_id = uidmap[sxc['userid']], + author_id = uidmap[sxc.get('userid', 1)], body = sxc['text'], parent_id = sxc.get('postid'), vote_up_count = 0, @@ -272,7 +273,7 @@ def comment_import(dump, uidmap, posts): oc.deleted_by_id = uidmap[sxc['deletionuserid']] oc.author_id = uidmap[sxc['deletionuserid']] else: - oc.author_id = uidmap[sxc['userid']] + oc.author_id = uidmap[sxc.get('userid', 1)] posts[oc.id] = oc -- 2.39.5