Skip to content

Commit b0ca79c

Browse files
Anderson SilvaAnderson Silva
authored andcommitted
fix(evolutionbot): implement splitMessages and linkPreview functionality
- Replace instance.textMessage() with sendMessageWhatsApp() method - Enable message splitting by double line breaks (\n\n) - Add proper delay and typing indicators between split messages - Fix linkPreview parameter passing to base class methods - Support linkPreview: false/true from webhook response - Remove unnecessary debug logs for cleaner output Fixes: EvolutionBot was not respecting splitMessages and linkPreview configurations
1 parent 4726c47 commit b0ca79c

File tree

2 files changed

+8
-22
lines changed

2 files changed

+8
-22
lines changed

src/api/integrations/chatbot/base-chatbot.service.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ export abstract class BaseChatbotService<BotType = any, SettingsType = any> {
180180
remoteJid: string,
181181
message: string,
182182
settings: SettingsType,
183+
linkPreview: boolean = true,
183184
): Promise<void> {
184185
if (!message) return;
185186

@@ -202,7 +203,7 @@ export abstract class BaseChatbotService<BotType = any, SettingsType = any> {
202203
if (mediaType) {
203204
// Send accumulated text before sending media
204205
if (textBuffer.trim()) {
205-
await this.sendFormattedText(instance, remoteJid, textBuffer.trim(), settings, splitMessages);
206+
await this.sendFormattedText(instance, remoteJid, textBuffer.trim(), settings, splitMessages, linkPreview);
206207
textBuffer = '';
207208
}
208209

@@ -252,7 +253,7 @@ export abstract class BaseChatbotService<BotType = any, SettingsType = any> {
252253

253254
// Send any remaining text
254255
if (textBuffer.trim()) {
255-
await this.sendFormattedText(instance, remoteJid, textBuffer.trim(), settings, splitMessages);
256+
await this.sendFormattedText(instance, remoteJid, textBuffer.trim(), settings, splitMessages, linkPreview);
256257
}
257258
}
258259

@@ -265,6 +266,7 @@ export abstract class BaseChatbotService<BotType = any, SettingsType = any> {
265266
text: string,
266267
settings: any,
267268
splitMessages: boolean,
269+
linkPreview: boolean = true,
268270
): Promise<void> {
269271
const timePerChar = settings?.timePerChar ?? 0;
270272
const minDelay = 1000;
@@ -290,6 +292,7 @@ export abstract class BaseChatbotService<BotType = any, SettingsType = any> {
290292
number: remoteJid.split('@')[0],
291293
delay: settings?.delayMessage || 1000,
292294
text: message,
295+
linkPreview,
293296
},
294297
false,
295298
);
@@ -316,6 +319,7 @@ export abstract class BaseChatbotService<BotType = any, SettingsType = any> {
316319
number: remoteJid.split('@')[0],
317320
delay: settings?.delayMessage || 1000,
318321
text: text,
322+
linkPreview,
319323
},
320324
false,
321325
);

src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,10 @@ export class EvolutionBotService extends BaseChatbotService<EvolutionBot, Evolut
115115
},
116116
};
117117

118-
this.logger.debug(`[EvolutionBot] Sending request to endpoint: ${endpoint}`);
119-
this.logger.debug(`[EvolutionBot] Request payload: ${JSON.stringify(sanitizedPayload, null, 2)}`);
120-
121118
const response = await axios.post(endpoint, payload, {
122119
headers,
123120
});
124121

125-
this.logger.debug(`[EvolutionBot] Response received - Status: ${response.status}`);
126-
127122
if (instance.integration === Integration.WHATSAPP_BAILEYS) {
128123
await instance.client.sendPresenceUpdate('paused', remoteJid);
129124
}
@@ -134,10 +129,6 @@ export class EvolutionBotService extends BaseChatbotService<EvolutionBot, Evolut
134129
// Validate linkPreview is boolean and default to true for backward compatibility
135130
const linkPreview = typeof rawLinkPreview === 'boolean' ? rawLinkPreview : true;
136131

137-
this.logger.debug(
138-
`[EvolutionBot] Processing response - Message length: ${message?.length || 0}, LinkPreview: ${linkPreview}`,
139-
);
140-
141132
if (message && typeof message === 'string' && message.startsWith("'") && message.endsWith("'")) {
142133
const innerContent = message.slice(1, -1);
143134
if (!innerContent.includes("'")) {
@@ -146,17 +137,8 @@ export class EvolutionBotService extends BaseChatbotService<EvolutionBot, Evolut
146137
}
147138

148139
if (message) {
149-
// Send message directly with validated linkPreview option
150-
await instance.textMessage(
151-
{
152-
number: remoteJid.split('@')[0],
153-
delay: settings?.delayMessage || 1000,
154-
text: message,
155-
linkPreview, // Always boolean, defaults to true
156-
},
157-
false,
158-
);
159-
this.logger.debug(`[EvolutionBot] Message sent successfully with linkPreview: ${linkPreview}`);
140+
// Use the base class method that handles splitMessages functionality
141+
await this.sendMessageWhatsApp(instance, remoteJid, message, settings, linkPreview);
160142
} else {
161143
this.logger.warn(`[EvolutionBot] No message content received from bot response`);
162144
}

0 commit comments

Comments
 (0)