diff options
author | Philipp Hörist <philipp@hoerist.com> | 2019-10-05 14:16:42 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2019-10-05 14:16:42 +0300 |
commit | ff8e7bb66682565ad6d5cc3023612b506502cef9 (patch) | |
tree | e6e863876d2bbc01cffcfc094cfc4a5d9fb301eb /nbxmpp/modules | |
parent | 35cb5c69d84938bec1c2eeab820ad2b8b06f75bc (diff) |
Determine remote jid correctly in all cases
Diffstat (limited to 'nbxmpp/modules')
-rw-r--r-- | nbxmpp/modules/message.py | 16 |
1 files changed, 15 insertions, 1 deletions
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) |