Skip to content
Snippets Groups Projects
Commit f77d2840 authored by Yann Leboulanger's avatar Yann Leboulanger
Browse files

[nkour] don't logger groupchat messages that are older that now and already in logs

parent 9f0033f2
No related branches found
No related tags found
No related merge requests found
......@@ -209,6 +209,9 @@ def write(self, kind, jid, message = None, show = None, tim = None, subject = No
jids.jid text column will hold JID if TC-related, room_jid if GC-related,
ROOM_JID/nick if pm-related.'''
# check_unique if True will not write a second log line that has
# same time, same msg, same jid and same kind
check_unique = False
if self.jids_already_in == []: # only happens if we just created the db
self.con = sqlite.connect(LOG_DB_PATH, timeout = 20.0,
isolation_level = 'IMMEDIATE')
......@@ -222,6 +225,9 @@ def write(self, kind, jid, message = None, show = None, tim = None, subject = No
subject_col = subject
if tim:
time_col = int(float(time.mktime(tim)))
now = int(float(time.time()))
if kind == 'gc_msg' and time_col < now:
check_unique = True
else:
time_col = int(float(time.time()))
......@@ -252,6 +258,15 @@ def write(self, kind, jid, message = None, show = None, tim = None, subject = No
nick = None
jid_id = self.get_jid_id(jid, 'ROOM') # re-get jid_id for the new jid
contact_name_col = nick
if check_unique: # check for same time, same msg, same jid, same kind
self.cur.execute('''
SELECT message FROM logs
WHERE time = ? AND message = ? AND jid_id = ?
AND kind = ?
''', (time_col, message_col, jid_id, constants.KIND_GC_MSG))
row = self.cur.fetchone()
if row:
return # do not add the same log line
else:
jid_id = self.get_jid_id(jid)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment