From 892c5872965801087475deb863b450ab400e6946 Mon Sep 17 00:00:00 2001 From: Washington Moreira Date: Fri, 21 Mar 2025 17:27:07 -0300 Subject: [PATCH 1/2] feature(enhanced_media_support): added new options to override media filename --- src/controllers/clientController.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/controllers/clientController.js b/src/controllers/clientController.js index 399268e..8e85d21 100644 --- a/src/controllers/clientController.js +++ b/src/controllers/clientController.js @@ -75,47 +75,52 @@ const sendMessage = async (req, res) => { case 'string': if (options?.media) { const media = options.media - media.filename = null - media.filesize = null - options.media = new MessageMedia(media.mimetype, media.data, media.filename, media.filesize) + media.filename = media.filename || null; + media.filesize = media.filesize || null; + options.media = new MessageMedia(media.mimetype, media.data, media.filename, media.filesize); } messageOut = await client.sendMessage(chatId, content, options) - break + break; case 'MessageMediaFromURL': { const messageMediaFromURL = await MessageMedia.fromUrl(content, { unsafeMime: true }) + + if (options?.filename) { + messageMediaFromURL.filename = options?.filename; + } + messageOut = await client.sendMessage(chatId, messageMediaFromURL, options) - break + break; } case 'MessageMedia': { const messageMedia = new MessageMedia(content.mimetype, content.data, content.filename, content.filesize) messageOut = await client.sendMessage(chatId, messageMedia, options) - break + break; } case 'Location': { const location = new Location(content.latitude, content.longitude, content.description) messageOut = await client.sendMessage(chatId, location, options) - break + break; } case 'Buttons': { const buttons = new Buttons(content.body, content.buttons, content.title, content.footer) messageOut = await client.sendMessage(chatId, buttons, options) - break + break; } case 'List': { const list = new List(content.body, content.buttonText, content.sections, content.title, content.footer) messageOut = await client.sendMessage(chatId, list, options) - break + break; } case 'Contact': { const contactId = content.contactId.endsWith('@c.us') ? content.contactId : `${content.contactId}@c.us` const contact = await client.getContactById(contactId) messageOut = await client.sendMessage(chatId, contact, options) - break + break; } case 'Poll': { const poll = new Poll(content.pollName, content.pollOptions, content.options) messageOut = await client.sendMessage(chatId, poll, options) - break + break; } default: return sendErrorResponse(res, 404, 'contentType invalid, must be string, MessageMedia, MessageMediaFromURL, Location, Buttons, List, Contact or Poll') From 5479367ca73ba83c922fade57d759ef1684063d1 Mon Sep 17 00:00:00 2001 From: Washington Moreira Date: Fri, 21 Mar 2025 17:47:56 -0300 Subject: [PATCH 2/2] feature(enhanced_media_support): added new options to override media filename --- src/controllers/clientController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/clientController.js b/src/controllers/clientController.js index 8e85d21..4c31d0f 100644 --- a/src/controllers/clientController.js +++ b/src/controllers/clientController.js @@ -88,7 +88,7 @@ const sendMessage = async (req, res) => { messageMediaFromURL.filename = options?.filename; } - messageOut = await client.sendMessage(chatId, messageMediaFromURL, options) + messageOut = await client.sendMessage(chatId, messageMediaFromURL, options); break; } case 'MessageMedia': {