| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2026-04-29 05:04:49 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2026-04-29 05:04:49 UTC |
| parent | f5cbec07a63fcb91fea3b798b02e45010229a5e7 |
| borogove/ChatMessage.hx | +1 | -1 |
| borogove/Message.hx | +2 | -2 |
diff --git a/borogove/ChatMessage.hx b/borogove/ChatMessage.hx index b62a84e..3433c2a 100644 --- a/borogove/ChatMessage.hx +++ b/borogove/ChatMessage.hx @@ -309,7 +309,7 @@ class ChatMessage { @:allow(borogove) private static function fromStanza(stanza:Stanza, localJid:JID, ?addContext: (ChatMessageBuilder, Stanza)->ChatMessageBuilder):Null<ChatMessage> { - switch Message.fromStanza(stanza, localJid, addContext).parsed { + switch Message.fromStanza(stanza, localJid, addContext, null, true).parsed { case ChatMessageStanza(message): return message; default: diff --git a/borogove/Message.hx b/borogove/Message.hx index 4583dca..b992114 100644 --- a/borogove/Message.hx +++ b/borogove/Message.hx @@ -50,7 +50,7 @@ class Message { this.encryption = encryption; } - public static function fromStanza(stanza:Stanza, localJid:JID, ?addContext: (ChatMessageBuilder, Stanza)->ChatMessageBuilder, ?encryptionInfo:EncryptionInfo):Message { + public static function fromStanza(stanza:Stanza, localJid:JID, ?addContext: (ChatMessageBuilder, Stanza)->ChatMessageBuilder, ?encryptionInfo:EncryptionInfo, preferChatMessage = false):Message { final fromAttr = stanza.attr.get("from"); final from = fromAttr == null ? localJid.domain : fromAttr; final localId = stanza.attr.get("id"); @@ -265,7 +265,7 @@ class Message { final replace = stanza.getChild("replace", "urn:xmpp:message-correct:0"); final replaceId = replace?.attr?.get("id"); - if (msg.text == null && msg.attachments.length < 1 && replaceId == null && retracted == null) { + if (!preferChatMessage && msg.text == null && msg.attachments.length < 1 && replaceId == null && retracted == null) { if (msg.payloads.length == 1 && msg.payloads[0].name == "subject") { return new Message(msg.chatId(), msg.senderId, msg.threadId, SubjectStanza(msg.payloads[0].getText()), encryptionInfo); }