changeset f8da63260783 in /home/hg/repos/gajim-plugins
author: lovetox forenjunkie@chello.at branches: details:gajim-plugins?cmd=changeset;node=f8da63260783 description: Remove XHTML from encrypted messages
diffstat:
omemo/__init__.py | 20 ++++++++++++++++++-- 1 files changed, 18 insertions(+), 2 deletions(-)
diffs (44 lines):
diff -r e020fa0c2ab7 -r f8da63260783 omemo/__init__.py --- a/omemo/__init__.py Sat Jun 11 00:31:19 2016 +0200 +++ b/omemo/__init__.py Mon Jun 13 22:21:29 2016 +0200 @@ -76,7 +76,9 @@ 'raw-iq-received': (ged.PRECORE, self.handle_iq_received), 'signed-in': (ged.PRECORE, self.signed_in), 'stanza-message-outgoing': - (ged.PRECORE, self.handle_outgoing_msgs), + (ged.PRECORE, self.handle_outgoing_stanza), + 'message-outgoing': + (ged.PRECORE, self.handle_outgoing_event), } self.config_dialog = ui.OMEMOConfigDialog(self) self.gui_extension_points = {'chat_control': (self.connect_ui, None)} @@ -538,7 +540,20 @@ iq_ids_to_callbacks[id_] = lambda event: log.info(event)
@log_calls('OmemoPlugin') - def handle_outgoing_msgs(self, event): + def handle_outgoing_event(self, event): + # Handles the message before it gets made into a stanza + # and allows us to remove every xhtml before it even gets + # pressed into a stanza + account = event.account + state = self.get_omemo_state(account) + + if not state.encryption.is_active(event.jid): + return False + + event.xhtml = None + + @log_calls('OmemoPlugin') + def handle_outgoing_stanza(self, event): if not event.msg_iq.getTag('body'): return plaintext = event.msg_iq.getBody().encode('utf8') @@ -564,6 +579,7 @@ gajim.get_jid_from_account(account), to_jid, plaintext) if not msg_dict: return True + encrypted_node = OmemoMessage(msg_dict) event.msg_iq.delChild('body') event.msg_iq.addChild(node=encrypted_node)