From c311183d57e1c34e89ea819b2238742b63e54dfa Mon Sep 17 00:00:00 2001 From: Nikos Kouremenos <kourem@gmail.com> Date: Sat, 26 Nov 2005 00:03:09 +0000 Subject: [PATCH] fix so we mark new jids if they are room as room-type --- scripts/migrate_logs_to_dot9_db.py | 8 ++++---- src/common/logger.py | 30 ++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/scripts/migrate_logs_to_dot9_db.py b/scripts/migrate_logs_to_dot9_db.py index da359c4c30..263b0cb7f8 100755 --- a/scripts/migrate_logs_to_dot9_db.py +++ b/scripts/migrate_logs_to_dot9_db.py @@ -140,7 +140,7 @@ def visit(arg, dirname, filenames): for filename in filenames: # Don't take this file into account, this is dup info # notifications are also in contact log file - if filename == 'notify.log': + if filename in ('notify.log', 'readme'): continue filename = decode_string(filename) if not filename: @@ -150,14 +150,14 @@ def visit(arg, dirname, filenames): continue jid = get_jid(dirname, filename) + if filename == os.path.basename(dirname): # gajim@conf/gajim@conf then gajim@conf is type room type = constants.JID_ROOM_TYPE - print 'marking jid as of type room' + print 'Processing', jid, 'of type room' else: type = constants.JID_NORMAL_TYPE - print 'marking jid as of type normal' + print 'Processing', jid, 'of type normal' - print 'Processing', jid # jid is already in the DB, don't create a new row, just get his jid_id if jid in jids_already_in: cur.execute('SELECT jid_id FROM jids WHERE jid = "%s"' % jid) diff --git a/src/common/logger.py b/src/common/logger.py index 071398874c..2648524f9f 100644 --- a/src/common/logger.py +++ b/src/common/logger.py @@ -118,25 +118,31 @@ class Logger: (possible_room_jid, constants.JID_ROOM_TYPE)) row = cur.fetchone() if row is not None: + print 'PM!!' return True else: + print ' NO PM!!' return False - def get_jid_id(self, jid): + def get_jid_id(self, jid, typestr = None): '''jids table has jid and jid_id logs table has log_id, jid_id, contact_name, time, kind, show, message so to ask logs we need jid_id that matches our jid in jids table this method asks jid and returns the jid_id for later sql-ing on logs ''' if jid.find('/') != -1: # if it has a / - is_pm = self.jid_is_from_pm(jid) - if not is_pm: # it's normal jid with resource + jid_is_from_pm = self.jid_is_from_pm(jid) + if not jid_is_from_pm: # it's normal jid with resource jid = jid.split('/', 1)[0] # remove the resource if jid in self.jids_already_in: # we already have jids in DB cur.execute('SELECT jid_id FROM jids WHERE jid="%s"' % jid) jid_id = cur.fetchone()[0] else: # oh! a new jid :), we add it now - cur.execute('INSERT INTO jids (jid) VALUES (?)', (jid,)) + if typestr == 'ROOM': + typ = constants.JID_ROOM_TYPE + else: + typ = constants.JID_NORMAL_TYPE + cur.execute('INSERT INTO jids (jid, type) VALUES (?, ?)', (jid, typ)) con.commit() jid_id = cur.lastrowid self.jids_already_in.append(jid) @@ -249,15 +255,17 @@ class Logger: else: time_col = int(float(time.time())) - jid_id = self.get_jid_id(jid) - - kind_col, show_col = self.convert_human_values_to_db_api_values(kind, show) + + kind_col, show_col = self.convert_human_values_to_db_api_values(kind, + show) # now we may have need to do extra care for some values in columns if kind == 'status': # we store (not None) time, jid, show, msg # status for roster items if show is None: show_col = constants.SHOW_ONLINE + + jid_id = self.get_jid_id(jid) elif kind == 'gcstatus': # status in ROOM (for pm status see status) @@ -265,7 +273,7 @@ class Logger: show_col = constants.SHOW_ONLINE jid, nick = jid.split('/', 1) - jid_id = self.get_jid_id(jid) # re-get jid_id for the new jid + jid_id = self.get_jid_id(jid, 'ROOM') # re-get jid_id for the new jid contact_name_col = nick elif kind == 'gc_msg': @@ -275,9 +283,11 @@ class Logger: # it's server message f.e. error message # when user tries to ban someone but he's not allowed to nick = None - jid_id = self.get_jid_id(jid) # re-get jid_id for the new jid + jid_id = self.get_jid_id(jid, 'ROOM') # re-get jid_id for the new jid contact_name_col = nick - + else: + jid_id = self.get_jid_id(jid) + values = (jid_id, contact_name_col, time_col, kind_col, show_col, message_col, subject_col) self.commit_to_db(values) -- GitLab