From 03f33852dfb76e521d483f3cec24cd54f7e6f1f3 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Wed, 29 Dec 2021 14:10:00 +0530 Subject: [PATCH] fix: ensure media cache does not override caption & other properties --- src/Utils/messages.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index 202598f..d399751 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -77,14 +77,6 @@ export const prepareWAMessageMedia = async( // generate the key mediaType + ':' + uploadData.media.url!.toString() ) - // check for cache hit - if(cacheableKey) { - const mediaBuff: Buffer = options.mediaCache!.get(cacheableKey) - if(mediaBuff) { - logger?.debug({ cacheableKey }, `got media cache hit`) - return WAProto.Message.decode(mediaBuff) - } - } if(mediaType === 'document' && !uploadData.fileName) { uploadData.fileName = 'file' @@ -92,6 +84,18 @@ export const prepareWAMessageMedia = async( if(!uploadData.mimetype) { uploadData.mimetype = MIMETYPE_MAP[mediaType] } + + // check for cache hit + if(cacheableKey) { + const mediaBuff: Buffer = options.mediaCache!.get(cacheableKey) + if(mediaBuff) { + logger?.debug({ cacheableKey }, `got media cache hit`) + const obj = WAProto.Message.decode(mediaBuff) + const key = `${mediaType}Message` + return Object.assign(obj[key], { ...uploadData }) + } + } + const requiresDurationComputation = mediaType === 'audio' && typeof uploadData.seconds === 'undefined' const requiresThumbnailComputation = (mediaType === 'image' || mediaType === 'video') && (typeof uploadData['jpegThumbnail'] === 'undefined')