From 833cf06d4c9c11fbb22338bea658eddf6a463895 Mon Sep 17 00:00:00 2001 From: OrionDesign Date: Mon, 19 May 2025 11:18:02 -0300 Subject: [PATCH 1/4] =?UTF-8?q?Corre=C3=A7=C3=A3o=20do=20Markdown=20na=20i?= =?UTF-8?q?ntegra=C3=A7=C3=A3o=20N8N?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Descrição Esta PR implementa melhorias no processamento de mensagens do serviço N8n, especificamente no método `sendMessageWhatsApp`. As alterações visam melhorar o tratamento de links e formatação markdown nas mensagens. ## Mudanças - Ajustada a desestruturação do objeto `match` para capturar corretamente o texto completo do link markdown - Modificado o tratamento de links que não são mídia para preservar a formatação original - Mantida a expressão regular para detecção de links markdown ## Impacto - Mensagens com links markdown agora são processadas de forma mais consistente - A formatação original dos links é preservada quando não são tratados como mídia - Melhor tratamento de casos onde o link não corresponde a um tipo de mídia suportado --- src/api/integrations/chatbot/n8n/services/n8n.service.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/api/integrations/chatbot/n8n/services/n8n.service.ts b/src/api/integrations/chatbot/n8n/services/n8n.service.ts index a25568824..ef7cb6912 100644 --- a/src/api/integrations/chatbot/n8n/services/n8n.service.ts +++ b/src/api/integrations/chatbot/n8n/services/n8n.service.ts @@ -194,7 +194,7 @@ export class N8nService { } private async sendMessageWhatsApp(instance: any, remoteJid: string, message: string, settings: N8nSetting) { - const linkRegex = /(!?)\[(.*?)\]\((.*?)\)/g; + const linkRegex = /!?\[(.*?)\]\((.*?)\)/g; let textBuffer = ''; let lastIndex = 0; let match: RegExpExecArray | null; @@ -211,7 +211,7 @@ export class N8nService { return null; }; while ((match = linkRegex.exec(message)) !== null) { - const [altText, url] = match; + const [fullMatch, altText, url] = match; const mediaType = getMediaType(url); const beforeText = message.slice(lastIndex, match.index); if (beforeText) { @@ -282,7 +282,7 @@ export class N8nService { ); } } else { - textBuffer += `[${altText}](${url})`; + textBuffer += fullMatch; } lastIndex = linkRegex.lastIndex; } From 7ea7aa04541dab330c9ce3272881fa952e277121 Mon Sep 17 00:00:00 2001 From: OrionDesign Date: Mon, 19 May 2025 13:20:31 -0300 Subject: [PATCH 2/4] =?UTF-8?q?Corre=C3=A7=C3=A3o=20no=20tratamento=20no?= =?UTF-8?q?=20mensagens=20do=20EvolutionBot=20com=20Markdown?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Descrição Esta PR corrige um problema no tratamento de mensagens retornadas na integração do EvolutionBot, onde aspas extras estavam sendo incluídas no início e fim das mensagens quando acompanhado de Markdown. ## Solução Foi implementada uma lógica inteligente para tratar as aspas nas mensagens: - Verifica se a mensagem inteira está entre aspas simples - Se estiver, verifica se há aspas simples dentro do conteúdo - Remove as aspas externas apenas se não houver aspas/apóstrofos dentro do conteúdo Isso garante que: - Mensagens com aspas extras são corrigidas: `'texto'` -> `texto` - Mensagens com aspas/apóstrofos legítimos são preservadas: `'texto com "aspas" e don't'` -> `'texto com "aspas" e don't'` ## Impacto - Melhora a formatação das mensagens enviadas pelo bot - Preserva aspas e apóstrofos que fazem parte legítima do conteúdo - Mantém a compatibilidade com o formato de mensagens do n8n --- .../evolutionBot/services/evolutionBot.service.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts b/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts index 5275f9e16..0091f86d9 100644 --- a/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts +++ b/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts @@ -101,7 +101,17 @@ export class EvolutionBotService { if (instance.integration === Integration.WHATSAPP_BAILEYS) await instance.client.sendPresenceUpdate('paused', remoteJid); - const message = response?.data?.message; + let message = response?.data?.message; + + if (message && typeof message === 'string') { + + if (message.startsWith("'") && message.endsWith("'")) { + const innerContent = message.slice(1, -1); + if (!innerContent.includes("'")) { + message = innerContent; + } + } + } return message; } From 82b5e434104332f3f20084eb855fd1c30c0cb06f Mon Sep 17 00:00:00 2001 From: OrionDesign <139019565+oriondesign2015@users.noreply.github.com> Date: Tue, 20 May 2025 01:15:43 -0300 Subject: [PATCH 3/4] ajuste no if Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- .../evolutionBot/services/evolutionBot.service.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts b/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts index 0091f86d9..075e04f7d 100644 --- a/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts +++ b/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts @@ -103,16 +103,14 @@ export class EvolutionBotService { let message = response?.data?.message; - if (message && typeof message === 'string') { - - if (message.startsWith("'") && message.endsWith("'")) { - const innerContent = message.slice(1, -1); - if (!innerContent.includes("'")) { - message = innerContent; - } - } + if (message && typeof message === 'string' && (message.startsWith("'") && message.endsWith("'"))) { + const innerContent = message.slice(1, -1); + if (!innerContent.includes("'")) { + message = innerContent; + } } + return message; } From a5c25140e063e1a95d344b393fa79ddc6b565c4b Mon Sep 17 00:00:00 2001 From: OrionDesign Date: Wed, 21 May 2025 15:37:34 -0300 Subject: [PATCH 4/4] =?UTF-8?q?Corrige=20formata=C3=A7=C3=A3o=20do=20c?= =?UTF-8?q?=C3=B3digo=20no=20EvolutionBotService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrige problemas de formatação identificados pelo Prettier no arquivo evolutionBot.service.ts que acabei deixando e alertado pelo git, removendo espaços em branco desnecessários e ajustando a indentação do código. --- .../evolutionBot/services/evolutionBot.service.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts b/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts index 075e04f7d..f039e9321 100644 --- a/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts +++ b/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts @@ -103,14 +103,13 @@ export class EvolutionBotService { let message = response?.data?.message; - if (message && typeof message === 'string' && (message.startsWith("'") && message.endsWith("'"))) { - const innerContent = message.slice(1, -1); - if (!innerContent.includes("'")) { - message = innerContent; - } + if (message && typeof message === 'string' && message.startsWith("'") && message.endsWith("'")) { + const innerContent = message.slice(1, -1); + if (!innerContent.includes("'")) { + message = innerContent; + } } - return message; }