From 4a8c6ed66de43d3df8d8ad032dbd2d74e0878d63 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Sat, 30 Apr 2022 17:40:08 +0530 Subject: [PATCH] fix: correctly generate quoted msgs --- src/Utils/messages.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index 658722b..b3808bc 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -19,6 +19,7 @@ import { WAProto, WATextMessage, } from '../Types' +import { jidNormalizedUser } from '../WABinary' import { generateMessageID, unixTimestampSeconds } from './generics' import { downloadContentFromMessage, encryptedStream, generateThumbnail, getAudioDuration, MediaDownloadOptions } from './messages-media' @@ -396,16 +397,28 @@ export const generateWAMessageFromContent = ( if(quoted) { const participant = quoted.key.fromMe ? userJid : (quoted.participant || quoted.key.participant || quoted.key.remoteJid) - message[key].contextInfo = message[key].contextInfo || { } - message[key].contextInfo.participant = participant - message[key].contextInfo.stanzaId = quoted.key.id - message[key].contextInfo.quotedMessage = quoted.message + let quotedMsg = normalizeMessageContent(quoted.message) + const msgType = getContentType(quotedMsg) + // strip any redundant properties + quotedMsg = proto.Message.fromObject({ [msgType]: quotedMsg[msgType] }) + + const quotedContent = quotedMsg[msgType] + if(typeof quotedContent === 'object' && quotedContent && 'contextInfo' in quotedContent) { + delete quotedContent.contextInfo + } + + const contextInfo: proto.IContextInfo = message[key].contextInfo || { } + contextInfo.participant = jidNormalizedUser(participant) + contextInfo.stanzaId = quoted.key.id + contextInfo.quotedMessage = quotedMsg // if a participant is quoted, then it must be a group // hence, remoteJid of group must also be entered if(quoted.key.participant || quoted.participant) { - message[key].contextInfo.remoteJid = quoted.key.remoteJid + contextInfo.remoteJid = quoted.key.remoteJid } + + message[key].contextInfo = contextInfo } if(