Update whatsapp.service.ts

Foi criado novo código para recuperar Base64 da media enviada por webhook.
This commit is contained in:
Amilton Morais 2023-10-03 17:18:58 -03:00 committed by GitHub
parent f76a924700
commit f085343a99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -276,6 +276,10 @@ export class WAStartupService {
this.localWebhook.webhook_by_events = data?.webhook_by_events; this.localWebhook.webhook_by_events = data?.webhook_by_events;
this.logger.verbose(`Webhook by events: ${this.localWebhook.webhook_by_events}`); this.logger.verbose(`Webhook by events: ${this.localWebhook.webhook_by_events}`);
this.localWebhook.webhook_base64 = data?.webhook_base64;
this.logger.verbose(`Webhook by webhook_base64: ${this.localWebhook.webhook_base64}`);
this.logger.verbose('Webhook loaded'); this.logger.verbose('Webhook loaded');
} }
@ -1528,15 +1532,42 @@ export class WAStartupService {
return; return;
} }
const messageRaw: MessageRaw = { let messageRaw: MessageRaw;
key: received.key, const globalWebhook = this.configService.get<Webhook>('WEBHOOK').GLOBAL;
pushName: received.pushName, if (this.localWebhook.webhook_base64 === true && received?.message.documentMessage || received?.message.imageMessage ) {
message: { ...received.message }, const buffer = await downloadMediaMessage(
messageType: getContentType(received.message), { key: received.key, message: received?.message },
messageTimestamp: received.messageTimestamp as number, 'buffer',
owner: this.instance.name, {},
source: getDevice(received.key.id), {
}; logger: P({ level: 'error' }),
reuploadRequest: this.client.updateMediaMessage,
},
);
console.log(buffer);
messageRaw = {
key: received.key,
pushName: received.pushName,
message: {
...received.message,
base64: buffer ? buffer.toString('base64') : undefined,
},
messageType: getContentType(received.message),
messageTimestamp: received.messageTimestamp as number,
owner: this.instance.name,
source: getDevice(received.key.id),
};
} else {
messageRaw = {
key: received.key,
pushName: received.pushName,
message: { ...received.message },
messageType: getContentType(received.message),
messageTimestamp: received.messageTimestamp as number,
owner: this.instance.name,
source: getDevice(received.key.id),
};
}
if (this.localSettings.read_messages && received.key.id !== 'status@broadcast') { if (this.localSettings.read_messages && received.key.id !== 'status@broadcast') {
await this.client.readMessages([received.key]); await this.client.readMessages([received.key]);