From ff8e7bb66682565ad6d5cc3023612b506502cef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 5 Oct 2019 13:16:42 +0200 Subject: Determine remote jid correctly in all cases --- nbxmpp/modules/message.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'nbxmpp/modules') diff --git a/nbxmpp/modules/message.py b/nbxmpp/modules/message.py index da59fa1..6385868 100644 --- a/nbxmpp/modules/message.py +++ b/nbxmpp/modules/message.py @@ -40,7 +40,21 @@ class BaseMessage: def _process_message_base(self, _con, stanza, properties): properties.type = self._parse_type(stanza) - properties.jid = stanza.getFrom() + + # Determine remote JID + if properties.is_carbon_message and properties.carbon.is_sent: + properties.jid = stanza.getTo() + + elif properties.is_mam_message and not properties.type.is_groupchat: + own_jid = self._client.get_bound_jid() + if own_jid.bareMatch(stanza.getFrom()): + properties.jid = stanza.getTo() + else: + properties.jid = stanza.getFrom() + + else: + properties.jid = stanza.getFrom() + properties.id = stanza.getID() properties.self_message = self._parse_self_message(stanza, properties) -- cgit v1.2.3