fix: Update message model and enhance media handling in Baileys service

- Changed the type of `message` in `MessageRaw` from `object` to `any` for better flexibility.
- Improved media message handling in `BaileysStartupService` to support base64 encoding for various media types, enhancing webhook functionality.
- Added logging for media message detection to aid in debugging.
This commit is contained in:
Guilherme Gomes 2025-05-22 16:50:42 -03:00
parent 2d9ca15d74
commit f95727edbf
2 changed files with 42 additions and 2 deletions

View File

@ -24,7 +24,7 @@ export class MessageRaw {
key?: Key;
pushName?: string;
participant?: string;
message?: object;
message?: any;
messageType?: string;
messageTimestamp?: number | Long;
owner: string;

View File

@ -64,6 +64,7 @@ import {
Log,
ProviderSession,
QrCode,
Websocket,
} from '../../../config/env.config';
import { INSTANCE_DIR } from '../../../config/path.config';
import { BadRequestException, InternalServerErrorException, NotFoundException } from '../../../exceptions';
@ -1115,7 +1116,16 @@ export class BaileysStartupService extends ChannelStartupService {
const contentMsg = received?.message[getContentType(received.message)] as any;
if (this.localWebhook.webhook_base64 === true && isMedia) {
if (
(
this.localWebhook.webhook_base64 === true ||
(
this.configService.get<Websocket>('WEBSOCKET').GLOBAL_EVENTS === true &&
this.configService.get<Websocket>('WEBSOCKET').ENABLED === true
)
) &&
isMedia
) {
const buffer = await downloadMediaMessage(
{ key: received.key, message: received?.message },
'buffer',
@ -1956,6 +1966,36 @@ export class BaileysStartupService extends ChannelStartupService {
source: getDevice(messageSent.key.id),
};
const isMedia =
messageRaw.messageType === 'imageMessage' ||
messageRaw.messageType === 'videoMessage' ||
messageRaw.messageType === 'documentMessage' ||
messageRaw.messageType === 'audioMessage';
console.log('isMedia', isMedia);
if (
(
this.localWebhook.webhook_base64 === true ||
(
this.configService.get<Websocket>('WEBSOCKET').GLOBAL_EVENTS === true &&
this.configService.get<Websocket>('WEBSOCKET').ENABLED === true
)
) &&
isMedia
) {
const buffer = await downloadMediaMessage(
{ key: messageRaw.key, message: messageRaw?.message },
'buffer',
{},
{
logger: P({ level: 'error' }) as any,
reuploadRequest: this.client.updateMediaMessage,
},
);
messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined;
}
this.logger.log(messageRaw);
this.logger.verbose('Sending data to webhook in event SEND_MESSAGE');