Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <philipp@hoerist.com>2019-02-21 01:18:18 +0300
committerPhilipp Hörist <philipp@hoerist.com>2019-02-21 02:15:16 +0300
commit8aa8dab2f6575d4e30b9729953bd7b6a393c66b6 (patch)
treecdfc1716b4fc661ea842c3c3e144ec36cd981c63 /omemo/backend/liteaxolotlstore.py
parent7228a478ce8dcb5673effed87bb55d096dd2ca23 (diff)
[omemo] Store last seen date of fingerprints
Diffstat (limited to 'omemo/backend/liteaxolotlstore.py')
-rw-r--r--omemo/backend/liteaxolotlstore.py20
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()