diff options
author | Philipp Hörist <philipp@hoerist.com> | 2019-02-21 01:18:18 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2019-02-21 02:15:16 +0300 |
commit | 8aa8dab2f6575d4e30b9729953bd7b6a393c66b6 (patch) | |
tree | cdfc1716b4fc661ea842c3c3e144ec36cd981c63 /omemo/backend/liteaxolotlstore.py | |
parent | 7228a478ce8dcb5673effed87bb55d096dd2ca23 (diff) |
[omemo] Store last seen date of fingerprints
Diffstat (limited to 'omemo/backend/liteaxolotlstore.py')
-rw-r--r-- | omemo/backend/liteaxolotlstore.py | 20 |
1 files changed, 18 insertions, 2 deletions
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 <http://www.gnu.org/licenses/>. - +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() |