From 8aa8dab2f6575d4e30b9729953bd7b6a393c66b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Wed, 20 Feb 2019 23:18:18 +0100 Subject: [omemo] Store last seen date of fingerprints --- omemo/backend/liteaxolotlstore.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'omemo/backend/liteaxolotlstore.py') diff --git a/omemo/backend/liteaxolotlstore.py b/omemo/backend/liteaxolotlstore.py index 4a10e33..004d3ed 100644 --- a/omemo/backend/liteaxolotlstore.py +++ b/omemo/backend/liteaxolotlstore.py @@ -15,7 +15,7 @@ # You should have received a copy of the GNU General Public License # along with OMEMO Gajim Plugin. If not, see . - +import time import logging import sqlite3 from collections import namedtuple @@ -209,7 +209,6 @@ class LiteAxolotlStore(AxolotlStore): END TRANSACTION; """ % (add_timestamp)) - def loadSignedPreKey(self, signedPreKeyId): query = 'SELECT record FROM signed_prekeys WHERE prekey_id = ?' result = self._con.execute(query, (signedPreKeyId, )).fetchone() @@ -499,3 +498,20 @@ class LiteAxolotlStore(AxolotlStore): def isUntrustedIdentity(self, recipient_id, identity_key): return self.getTrustForIdentity( recipient_id, identity_key) not in (Trust.TRUSTED, Trust.UNDECIDED) + + def getIdentityLastSeen(self, recipient_id, identity_key): + identity_key = identity_key.getPublicKey().serialize() + query = '''SELECT timestamp FROM identities + WHERE recipient_id = ? AND public_key = ?''' + result = self._con.execute(query, (recipient_id, + identity_key)).fetchone() + return result.timestamp if result is not None else None + + def setIdentityLastSeen(self, recipient_id, identity_key): + timestamp = int(time.time()) + identity_key = identity_key.getPublicKey().serialize() + log.info('Set last seen for %s %s', recipient_id, timestamp) + query = '''UPDATE identities SET timestamp = ? + WHERE recipient_id = ? AND public_key = ?''' + self._con.execute(query, (timestamp, recipient_id, identity_key)) + self._con.commit() -- cgit v1.2.3