From 4e15d0f0d65e6ce2e4bb0837745d377edb0ea32a Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Sun, 23 Mar 2008 22:52:29 +0000 Subject: [PATCH] remove lines from unread_messages if messages are no more in logs table. Fixes #3793 --- src/common/logger.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common/logger.py b/src/common/logger.py index 0f179119f..e61c5ae60 100644 --- a/src/common/logger.py +++ b/src/common/logger.py @@ -369,8 +369,16 @@ class Logger: ''' % msg_id ) results = self.cur.fetchall() - if len(results) > 0: - all_messages.append(results[0]) + if len(results) == 0: + # Log line is no more in logs table. remove it from unread_messages + sql = 'DELETE FROM unread_messages WHERE message_id=%s' % msg_id + self.cur.execute(sql) + try: + self.con.commit() + except sqlite.OperationalError, e: + print >> sys.stderr, str(e) + continue + all_messages.append(results[0]) return all_messages def write(self, kind, jid, message = None, show = None, tim = None,