changeset 01a00dc2a239 in /home/hg/repos/gajim-plugins
author: Daniel Gultsch <daniel(a)gultsch.de>
branches:
details:gajim-plugins?cmd=changeset;node=01a00dc2a239
description: add device ids when receiving a whisper message
diffstat:
omemo/__init__.py | 6 ++++++
omemo/lib/python-omemo/src/omemo/state.py | 10 ++++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
diffs (50 lines):
diff -r ace1409f4cab -r 01a00dc2a239 omemo/__init__.py
--- a/omemo/__init__.py Fri Mar 25 18:07:46 2016 +0100
+++ b/omemo/__init__.py Fri Mar 25 20:15:35 2016 +0100
@@ -122,6 +122,7 @@
def message_received(self, msg):
if msg.stanza.getTag('encrypted', namespace=NS_OMEMO):
account = msg.conn.name
+ my_jid = gajim.get_jid_from_account(account)
log.debug(account + ' ⇒ OMEMO msg received')
state = self.get_omemo_state(account)
@@ -138,6 +139,11 @@
if not plaintext:
return
+ if my_jid == msg_dict['sender_jid']:
+ state.add_own_device(msg['sid'])
+ else:
+ state.add_device(msg_dict['sender_jid'], msg_dict['sid'])
+
msg.msgtxt = plaintext
msg.stanza.setBody(msg.msgtxt)
diff -r ace1409f4cab -r 01a00dc2a239 omemo/lib/python-omemo/src/omemo/state.py
--- a/omemo/lib/python-omemo/src/omemo/state.py Fri Mar 25 18:07:46 2016 +0100
+++ b/omemo/lib/python-omemo/src/omemo/state.py Fri Mar 25 20:15:35 2016 +0100
@@ -91,6 +91,12 @@
log.debug('Saving devices for ' + name + ' → ' + str(devices))
self.device_ids[name] = devices
+ def add_device(self, name, device_id):
+ if name not in self.device_ids:
+ self.device_ids[name] = {device_id}
+ elif device_id not in self.device_ids[name]:
+ self.device_ids[name].append(device_id)
+
def set_own_devices(self, name, devices):
""" Overwrite the current :py:attribute:`OmemoState.own_devices` with
the given devices.
@@ -103,6 +109,10 @@
self.own_name = name
self.own_devices = devices
+ def add_own_device(self, device_id):
+ if device_id not in self.own_devices:
+ self.own_devices.append(device_id)
+
@property
def own_device_id(self):
reg_id = self.store.getLocalRegistrationId()