From 02e05aba4201d6cecf25b42947b23c1119306f0c Mon Sep 17 00:00:00 2001 From: kaatt <10688522+kaatt@users.noreply.github.com> Date: Wed, 21 Dec 2022 17:44:13 +0530 Subject: [PATCH] improve normalizeMessageContent --- src/Utils/messages.ts | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index d966b33..8ae8a49 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -569,13 +569,21 @@ export const getContentType = (content: WAProto.IMessage | undefined) => { * @returns */ export const normalizeMessageContent = (content: WAMessageContent | null | undefined): WAMessageContent | undefined => { - content = content?.ephemeralMessage?.message?.viewOnceMessage?.message || - content?.ephemeralMessage?.message || - content?.viewOnceMessage?.message || - content?.documentWithCaptionMessage?.message || - content || - undefined - return content + if(!content) { + return undefined + } + + for(;;) { + const [key] = Object.keys(content!) + const inner = content![key].message + if(!inner) { + content = inner + } else { + break + } + } + + return content! } /** @@ -725,6 +733,7 @@ export const downloadMediaMessage = async( const contentType = getContentType(mContent) let mediaType = contentType?.replace('Message', '') as MediaType const media = mContent[contentType!] + console.log({ mContent, contentType, media }) if(!media || typeof media !== 'object' || (!('url' in media) && !('thumbnailDirectPath' in media))) { throw new Boom(`"${contentType}" message is not a media message`) @@ -771,4 +780,4 @@ export const assertMediaContent = (content: proto.IMessage | null | undefined) = } return mediaContent -} \ No newline at end of file +}