diff --git a/plugins/omemo_plugin.py b/plugins/omemo_plugin.py index 8852aa2b..fa5dab67 100644 --- a/plugins/omemo_plugin.py +++ b/plugins/omemo_plugin.py @@ -77,6 +77,7 @@ class Plugin(BasePlugin): """Display contextual information depending on currenttab.""" tab = self.api.current_tab() self.info('OMEMO!') + self.info("My device id: %d" % self.xmpp['xep_0384'].my_device_id()) def command_enable(self, _args): pass @@ -121,4 +122,5 @@ class Plugin(BasePlugin): self.info('Foo2') if self.xmpp['xep_0384'].is_encrypted(message): - self.xmpp['xep_0384'].decrypt_message(message) + _always_none, body = self.xmpp['xep_0384'].decrypt_message(message) + message['body'] = body.decode("utf8") diff --git a/poezio/core/core.py b/poezio/core/core.py index 717ee305..fe6a9d78 100644 --- a/poezio/core/core.py +++ b/poezio/core/core.py @@ -240,6 +240,7 @@ class Core: ('groupchat_subject', self.handler.on_groupchat_subject), ('http_confirm', self.handler.http_confirm), ('message', self.handler.on_message), + ('message_encryption', self.handler.on_encrypted_message), ('message_error', self.handler.on_error_message), ('message_xform', self.handler.on_data_form), ('no_auth', self.handler.on_no_auth), diff --git a/poezio/core/handlers.py b/poezio/core/handlers.py index fc5938f3..8f2f2584 100644 --- a/poezio/core/handlers.py +++ b/poezio/core/handlers.py @@ -271,6 +271,14 @@ class HandlerCore: return self.on_normal_message(message) + def on_encrypted_message(self, message): + """ + When receiving an encrypted message + """ + if message["body"]: + return # Already being handled by on_message. + self.on_message(message) + def on_error_message(self, message): """ When receiving any message with type="error"