feat: dify send images

This commit is contained in:
Davidson Gomes 2024-08-15 20:24:57 -03:00
parent 19f0296718
commit fb93c890ca

View File

@ -1118,14 +1118,51 @@ export class DifyService {
const message = response?.data?.answer; const message = response?.data?.answer;
await instance.textMessage( const regex = /!?\[(.*?)\]\((.*?)\)/g;
{
number: remoteJid.split('@')[0], const result = [];
delay: settings?.delayMessage || 1000, let lastIndex = 0;
text: message,
}, let match;
false, while ((match = regex.exec(message)) !== null) {
); if (match.index > lastIndex) {
result.push({ text: message.slice(lastIndex, match.index).trim() });
}
result.push({ caption: match[1], url: match[2] });
lastIndex = regex.lastIndex;
}
if (lastIndex < message.length) {
result.push({ text: message.slice(lastIndex).trim() });
}
for (const item of result) {
if (item.text) {
await instance.textMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
text: item.text,
},
false,
);
}
if (item.url) {
await instance.mediaMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
mediatype: 'image',
media: item.url,
caption: item.caption,
},
false,
);
}
}
await this.prismaRepository.integrationSession.update({ await this.prismaRepository.integrationSession.update({
where: { where: {
@ -1186,14 +1223,51 @@ export class DifyService {
const message = response?.data?.answer; const message = response?.data?.answer;
await instance.textMessage( const regex = /!?\[(.*?)\]\((.*?)\)/g;
{
number: remoteJid.split('@')[0], const result = [];
delay: settings?.delayMessage || 1000, let lastIndex = 0;
text: message,
}, let match;
false, while ((match = regex.exec(message)) !== null) {
); if (match.index > lastIndex) {
result.push({ text: message.slice(lastIndex, match.index).trim() });
}
result.push({ caption: match[1], url: match[2] });
lastIndex = regex.lastIndex;
}
if (lastIndex < message.length) {
result.push({ text: message.slice(lastIndex).trim() });
}
for (const item of result) {
if (item.text) {
await instance.textMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
text: item.text,
},
false,
);
}
if (item.url) {
await instance.mediaMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
mediatype: 'image',
media: item.url,
caption: item.caption,
},
false,
);
}
}
await this.prismaRepository.integrationSession.update({ await this.prismaRepository.integrationSession.update({
where: { where: {
@ -1274,14 +1348,51 @@ export class DifyService {
const message = response?.data?.answer; const message = response?.data?.answer;
await instance.textMessage( const regex = /!?\[(.*?)\]\((.*?)\)/g;
{
number: remoteJid.split('@')[0], const result = [];
delay: settings?.delayMessage || 1000, let lastIndex = 0;
text: message,
}, let match;
false, while ((match = regex.exec(message)) !== null) {
); if (match.index > lastIndex) {
result.push({ text: message.slice(lastIndex, match.index).trim() });
}
result.push({ caption: match[1], url: match[2] });
lastIndex = regex.lastIndex;
}
if (lastIndex < message.length) {
result.push({ text: message.slice(lastIndex).trim() });
}
for (const item of result) {
if (item.text) {
await instance.textMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
text: item.text,
},
false,
);
}
if (item.url) {
await instance.mediaMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
mediatype: 'image',
media: item.url,
caption: item.caption,
},
false,
);
}
}
await this.prismaRepository.integrationSession.update({ await this.prismaRepository.integrationSession.update({
where: { where: {
@ -1346,14 +1457,51 @@ export class DifyService {
const message = response?.data?.data.outputs.text; const message = response?.data?.data.outputs.text;
await instance.textMessage( const regex = /!?\[(.*?)\]\((.*?)\)/g;
{
number: remoteJid.split('@')[0], const result = [];
delay: settings?.delayMessage || 1000, let lastIndex = 0;
text: message,
}, let match;
false, while ((match = regex.exec(message)) !== null) {
); if (match.index > lastIndex) {
result.push({ text: message.slice(lastIndex, match.index).trim() });
}
result.push({ caption: match[1], url: match[2] });
lastIndex = regex.lastIndex;
}
if (lastIndex < message.length) {
result.push({ text: message.slice(lastIndex).trim() });
}
for (const item of result) {
if (item.text) {
await instance.textMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
text: item.text,
},
false,
);
}
if (item.url) {
await instance.mediaMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
mediatype: 'image',
media: item.url,
caption: item.caption,
},
false,
);
}
}
if (settings.keepOpen) { if (settings.keepOpen) {
await this.prismaRepository.integrationSession.update({ await this.prismaRepository.integrationSession.update({
@ -1523,14 +1671,51 @@ export class DifyService {
const message = response?.data?.answer; const message = response?.data?.answer;
await instance.textMessage( const regex = /!?\[(.*?)\]\((.*?)\)/g;
{
number: remoteJid.split('@')[0], const result = [];
delay: settings?.delayMessage || 1000, let lastIndex = 0;
text: message,
}, let match;
false, while ((match = regex.exec(message)) !== null) {
); if (match.index > lastIndex) {
result.push({ text: message.slice(lastIndex, match.index).trim() });
}
result.push({ caption: match[1], url: match[2] });
lastIndex = regex.lastIndex;
}
if (lastIndex < message.length) {
result.push({ text: message.slice(lastIndex).trim() });
}
for (const item of result) {
if (item.text) {
await instance.textMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
text: item.text,
},
false,
);
}
if (item.url) {
await instance.mediaMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
mediatype: 'image',
media: item.url,
caption: item.caption,
},
false,
);
}
}
await this.prismaRepository.integrationSession.update({ await this.prismaRepository.integrationSession.update({
where: { where: {
@ -1591,14 +1776,51 @@ export class DifyService {
const message = response?.data?.answer; const message = response?.data?.answer;
await instance.textMessage( const regex = /!?\[(.*?)\]\((.*?)\)/g;
{
number: remoteJid.split('@')[0], const result = [];
delay: settings?.delayMessage || 1000, let lastIndex = 0;
text: message,
}, let match;
false, while ((match = regex.exec(message)) !== null) {
); if (match.index > lastIndex) {
result.push({ text: message.slice(lastIndex, match.index).trim() });
}
result.push({ caption: match[1], url: match[2] });
lastIndex = regex.lastIndex;
}
if (lastIndex < message.length) {
result.push({ text: message.slice(lastIndex).trim() });
}
for (const item of result) {
if (item.text) {
await instance.textMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
text: item.text,
},
false,
);
}
if (item.url) {
await instance.mediaMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
mediatype: 'image',
media: item.url,
caption: item.caption,
},
false,
);
}
}
await this.prismaRepository.integrationSession.update({ await this.prismaRepository.integrationSession.update({
where: { where: {
@ -1758,14 +1980,51 @@ export class DifyService {
const message = response?.data?.data.outputs.text; const message = response?.data?.data.outputs.text;
await instance.textMessage( const regex = /!?\[(.*?)\]\((.*?)\)/g;
{
number: remoteJid.split('@')[0], const result = [];
delay: settings?.delayMessage || 1000, let lastIndex = 0;
text: message,
}, let match;
false, while ((match = regex.exec(message)) !== null) {
); if (match.index > lastIndex) {
result.push({ text: message.slice(lastIndex, match.index).trim() });
}
result.push({ caption: match[1], url: match[2] });
lastIndex = regex.lastIndex;
}
if (lastIndex < message.length) {
result.push({ text: message.slice(lastIndex).trim() });
}
for (const item of result) {
if (item.text) {
await instance.textMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
text: item.text,
},
false,
);
}
if (item.url) {
await instance.mediaMessage(
{
number: remoteJid.split('@')[0],
delay: settings?.delayMessage || 1000,
mediatype: 'image',
media: item.url,
caption: item.caption,
},
false,
);
}
}
if (settings.keepOpen) { if (settings.keepOpen) {
await this.prismaRepository.integrationSession.update({ await this.prismaRepository.integrationSession.update({