Merge branch 'fix/business_api' into improv/update_baileys_version

This commit is contained in:
ricael 2025-10-30 10:49:37 -03:00
commit 503cbfb21c
2 changed files with 26 additions and 6 deletions

View File

@ -516,7 +516,9 @@ export class BusinessStartupService extends ChannelStartupService {
const mediaUrl = await s3Service.getObjectUrl(fullName); const mediaUrl = await s3Service.getObjectUrl(fullName);
messageRaw.message.mediaUrl = mediaUrl; messageRaw.message.mediaUrl = mediaUrl;
messageRaw.message.base64 = buffer.data.toString('base64'); if (this.localWebhook.enabled && this.localWebhook.webhookBase64) {
messageRaw.message.base64 = buffer.data.toString('base64');
}
// Processar OpenAI speech-to-text para áudio após o mediaUrl estar disponível // Processar OpenAI speech-to-text para áudio após o mediaUrl estar disponível
if (this.configService.get<Openai>('OPENAI').ENABLED && mediaType === 'audio') { if (this.configService.get<Openai>('OPENAI').ENABLED && mediaType === 'audio') {
@ -554,11 +556,19 @@ export class BusinessStartupService extends ChannelStartupService {
this.logger.error(['Error on upload file to minio', error?.message, error?.stack]); this.logger.error(['Error on upload file to minio', error?.message, error?.stack]);
} }
} else { } else {
const buffer = await this.downloadMediaMessage(received?.messages[0]); if (this.localWebhook.enabled && this.localWebhook.webhookBase64) {
messageRaw.message.base64 = buffer.toString('base64'); const buffer = await this.downloadMediaMessage(received?.messages[0]);
messageRaw.message.base64 = buffer.toString('base64');
}
// Processar OpenAI speech-to-text para áudio mesmo sem S3 // Processar OpenAI speech-to-text para áudio mesmo sem S3
if (this.configService.get<Openai>('OPENAI').ENABLED && message.type === 'audio') { if (this.configService.get<Openai>('OPENAI').ENABLED && message.type === 'audio') {
let openAiBase64 = messageRaw.message.base64;
if (!openAiBase64) {
const buffer = await this.downloadMediaMessage(received?.messages[0]);
openAiBase64 = buffer.toString('base64');
}
const openAiDefaultSettings = await this.prismaRepository.openaiSetting.findFirst({ const openAiDefaultSettings = await this.prismaRepository.openaiSetting.findFirst({
where: { where: {
instanceId: this.instanceId, instanceId: this.instanceId,
@ -574,7 +584,7 @@ export class BusinessStartupService extends ChannelStartupService {
openAiDefaultSettings.OpenaiCreds, openAiDefaultSettings.OpenaiCreds,
{ {
message: { message: {
base64: messageRaw.message.base64, base64: openAiBase64,
...messageRaw, ...messageRaw,
}, },
}, },
@ -1016,6 +1026,7 @@ export class BusinessStartupService extends ChannelStartupService {
[message['mediaType']]: { [message['mediaType']]: {
[message['type']]: message['id'], [message['type']]: message['id'],
...(message['mediaType'] !== 'audio' && ...(message['mediaType'] !== 'audio' &&
message['mediaType'] !== 'video' &&
message['fileName'] && message['fileName'] &&
!isImage && { filename: message['fileName'] }), !isImage && { filename: message['fileName'] }),
...(message['mediaType'] !== 'audio' && message['caption'] && { caption: message['caption'] }), ...(message['mediaType'] !== 'audio' && message['caption'] && { caption: message['caption'] }),
@ -1606,9 +1617,14 @@ export class BusinessStartupService extends ChannelStartupService {
const messageType = msg.messageType.includes('Message') ? msg.messageType : msg.messageType + 'Message'; const messageType = msg.messageType.includes('Message') ? msg.messageType : msg.messageType + 'Message';
const mediaMessage = msg.message[messageType]; const mediaMessage = msg.message[messageType];
if (!msg.message?.base64) {
const buffer = await this.downloadMediaMessage({ type: messageType, ...msg.message });
msg.message.base64 = buffer.toString('base64');
}
return { return {
mediaType: msg.messageType, mediaType: msg.messageType,
fileName: mediaMessage?.fileName, fileName: mediaMessage?.fileName || mediaMessage?.filename,
caption: mediaMessage?.caption, caption: mediaMessage?.caption,
size: { size: {
fileLength: mediaMessage?.fileLength, fileLength: mediaMessage?.fileLength,

View File

@ -82,7 +82,7 @@ import { createId as cuid } from '@paralleldrive/cuid2';
import { Instance, Message } from '@prisma/client'; import { Instance, Message } from '@prisma/client';
import { createJid } from '@utils/createJid'; import { createJid } from '@utils/createJid';
import { fetchLatestWaWebVersion } from '@utils/fetchLatestWaWebVersion'; import { fetchLatestWaWebVersion } from '@utils/fetchLatestWaWebVersion';
import {makeProxyAgent, makeProxyAgentUndici} from '@utils/makeProxyAgent'; import { makeProxyAgent, makeProxyAgentUndici } from '@utils/makeProxyAgent';
import { getOnWhatsappCache, saveOnWhatsappCache } from '@utils/onWhatsappCache'; import { getOnWhatsappCache, saveOnWhatsappCache } from '@utils/onWhatsappCache';
import { status } from '@utils/renderStatus'; import { status } from '@utils/renderStatus';
import { sendTelemetry } from '@utils/sendTelemetry'; import { sendTelemetry } from '@utils/sendTelemetry';
@ -1349,6 +1349,10 @@ export class BaileysStartupService extends ChannelStartupService {
this.logger.verbose(messageRaw); this.logger.verbose(messageRaw);
sendTelemetry(`received.message.${messageRaw.messageType ?? 'unknown'}`); sendTelemetry(`received.message.${messageRaw.messageType ?? 'unknown'}`);
if (messageRaw.key.remoteJid?.includes('@lid') && messageRaw.key.remoteJidAlt) {
messageRaw.key.remoteJid = messageRaw.key.remoteJidAlt;
}
console.log(messageRaw);
this.sendDataWebhook(Events.MESSAGES_UPSERT, messageRaw); this.sendDataWebhook(Events.MESSAGES_UPSERT, messageRaw);