git » sdk » commit 64859f4

Bypass the dump out to unknown sometimes

author Stephen Paul Weber
2026-04-29 05:04:49 UTC
committer Stephen Paul Weber
2026-04-29 05:04:49 UTC
parent f5cbec07a63fcb91fea3b798b02e45010229a5e7

Bypass the dump out to unknown sometimes

Especially in sqlite persitence which uses this parser

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);
 			}