mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-25 01:48:39 -06:00
Merge pull request #290 from gabrielpastori1/chatwoot-format
Chatwoot format
This commit is contained in:
commit
c07e23bf8d
@ -889,6 +889,7 @@ export const chatwootSchema: JSONSchema7 = {
|
|||||||
token: { type: 'string' },
|
token: { type: 'string' },
|
||||||
url: { type: 'string' },
|
url: { type: 'string' },
|
||||||
sign_msg: { type: 'boolean', enum: [true, false] },
|
sign_msg: { type: 'boolean', enum: [true, false] },
|
||||||
|
sign_delimiter: { type: ['string', 'null'] },
|
||||||
reopen_conversation: { type: 'boolean', enum: [true, false] },
|
reopen_conversation: { type: 'boolean', enum: [true, false] },
|
||||||
conversation_pending: { type: 'boolean', enum: [true, false] },
|
conversation_pending: { type: 'boolean', enum: [true, false] },
|
||||||
auto_create: { type: 'boolean', enum: [true, false] },
|
auto_create: { type: 'boolean', enum: [true, false] },
|
||||||
|
@ -37,6 +37,7 @@ export class ChatwootController {
|
|||||||
if (data.sign_msg !== true && data.sign_msg !== false) {
|
if (data.sign_msg !== true && data.sign_msg !== false) {
|
||||||
throw new BadRequestException('sign_msg is required');
|
throw new BadRequestException('sign_msg is required');
|
||||||
}
|
}
|
||||||
|
if (data.sign_msg === false) data.sign_delimiter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data.enabled) {
|
if (!data.enabled) {
|
||||||
@ -45,6 +46,7 @@ export class ChatwootController {
|
|||||||
data.token = '';
|
data.token = '';
|
||||||
data.url = '';
|
data.url = '';
|
||||||
data.sign_msg = false;
|
data.sign_msg = false;
|
||||||
|
data.sign_delimiter = null;
|
||||||
data.reopen_conversation = false;
|
data.reopen_conversation = false;
|
||||||
data.conversation_pending = false;
|
data.conversation_pending = false;
|
||||||
data.auto_create = false;
|
data.auto_create = false;
|
||||||
|
@ -5,6 +5,7 @@ export class ChatwootDto {
|
|||||||
url?: string;
|
url?: string;
|
||||||
name_inbox?: string;
|
name_inbox?: string;
|
||||||
sign_msg?: boolean;
|
sign_msg?: boolean;
|
||||||
|
sign_delimiter?: string;
|
||||||
number?: string;
|
number?: string;
|
||||||
reopen_conversation?: boolean;
|
reopen_conversation?: boolean;
|
||||||
conversation_pending?: boolean;
|
conversation_pending?: boolean;
|
||||||
|
@ -10,6 +10,7 @@ export class ChatwootRaw {
|
|||||||
url?: string;
|
url?: string;
|
||||||
name_inbox?: string;
|
name_inbox?: string;
|
||||||
sign_msg?: boolean;
|
sign_msg?: boolean;
|
||||||
|
sign_delimiter?: string;
|
||||||
number?: string;
|
number?: string;
|
||||||
reopen_conversation?: boolean;
|
reopen_conversation?: boolean;
|
||||||
conversation_pending?: boolean;
|
conversation_pending?: boolean;
|
||||||
@ -23,6 +24,7 @@ const chatwootSchema = new Schema<ChatwootRaw>({
|
|||||||
url: { type: String, required: true },
|
url: { type: String, required: true },
|
||||||
name_inbox: { type: String, required: true },
|
name_inbox: { type: String, required: true },
|
||||||
sign_msg: { type: Boolean, required: true },
|
sign_msg: { type: Boolean, required: true },
|
||||||
|
sign_delimiter: { type: String, required: false },
|
||||||
number: { type: String, required: true },
|
number: { type: String, required: true },
|
||||||
reopen_conversation: { type: Boolean, required: true },
|
reopen_conversation: { type: Boolean, required: true },
|
||||||
conversation_pending: { type: Boolean, required: true },
|
conversation_pending: { type: Boolean, required: true },
|
||||||
|
@ -1019,7 +1019,11 @@ export class ChatwootService {
|
|||||||
this.logger.verbose('check if is group');
|
this.logger.verbose('check if is group');
|
||||||
const chatId =
|
const chatId =
|
||||||
body.conversation.meta.sender?.phone_number?.replace('+', '') || body.conversation.meta.sender?.identifier;
|
body.conversation.meta.sender?.phone_number?.replace('+', '') || body.conversation.meta.sender?.identifier;
|
||||||
const messageReceived = body.content;
|
const messageReceived = body.content
|
||||||
|
.replaceAll(/\*((?!\s)([^\n*]+?)(?<!\s))\*/g, '_$1_') // Substitui * por _
|
||||||
|
.replaceAll(/\*{2}((?!\s)([^\n*]+?)(?<!\s))\*{2}/g, '*$1*') // Substitui ** por *
|
||||||
|
.replace(/~{2}((?!\s)([^\n*]+?)(?<!\s))~{2}/g, '~$1~'); // Substitui ~~ por ~
|
||||||
|
|
||||||
const senderName = body?.sender?.name;
|
const senderName = body?.sender?.name;
|
||||||
const waInstance = this.waMonitor.waInstances[instance.instanceName];
|
const waInstance = this.waMonitor.waInstances[instance.instanceName];
|
||||||
|
|
||||||
@ -1115,7 +1119,13 @@ export class ChatwootService {
|
|||||||
if (senderName === null || senderName === undefined) {
|
if (senderName === null || senderName === undefined) {
|
||||||
formatText = messageReceived;
|
formatText = messageReceived;
|
||||||
} else {
|
} else {
|
||||||
formatText = this.provider.sign_msg ? `*${senderName}:*\n${messageReceived}` : messageReceived;
|
const formattedDelimiter = this.provider.sign_delimiter
|
||||||
|
? this.provider.sign_delimiter.replaceAll('\\n', '\n')
|
||||||
|
: '\n';
|
||||||
|
const textToConcat = this.provider.sign_msg ? [`*${senderName}:*`] : [];
|
||||||
|
textToConcat.push(messageReceived);
|
||||||
|
|
||||||
|
formatText = textToConcat.join(formattedDelimiter);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const message of body.conversation.messages) {
|
for (const message of body.conversation.messages) {
|
||||||
@ -1470,7 +1480,13 @@ export class ChatwootService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.logger.verbose('get conversation message');
|
this.logger.verbose('get conversation message');
|
||||||
const bodyMessage = await this.getConversationMessage(body.message);
|
|
||||||
|
const bodyMessage = await this.getConversationMessage(body.message)
|
||||||
|
.replaceAll(/\*((?!\s)([^\n*]+?)(?<!\s))\*/g, '**$1**')
|
||||||
|
.replaceAll(/_((?!\s)([^\n_]+?)(?<!\s))_/g, '*$1*')
|
||||||
|
.replaceAll(/~((?!\s)([^\n~]+?)(?<!\s))~/g, '~~$1~~');
|
||||||
|
|
||||||
|
this.logger.verbose('body message: ' + bodyMessage);
|
||||||
|
|
||||||
if (bodyMessage && bodyMessage.includes('Por favor, classifique esta conversa, http')) {
|
if (bodyMessage && bodyMessage.includes('Por favor, classifique esta conversa, http')) {
|
||||||
this.logger.verbose('conversation is closed');
|
this.logger.verbose('conversation is closed');
|
||||||
|
@ -357,10 +357,12 @@ export class WAStartupService {
|
|||||||
this.logger.verbose(`Chatwoot url: ${data.url}`);
|
this.logger.verbose(`Chatwoot url: ${data.url}`);
|
||||||
this.logger.verbose(`Chatwoot inbox name: ${data.name_inbox}`);
|
this.logger.verbose(`Chatwoot inbox name: ${data.name_inbox}`);
|
||||||
this.logger.verbose(`Chatwoot sign msg: ${data.sign_msg}`);
|
this.logger.verbose(`Chatwoot sign msg: ${data.sign_msg}`);
|
||||||
|
this.logger.verbose(`Chatwoot sign delimiter: ${data.sign_delimiter}`);
|
||||||
this.logger.verbose(`Chatwoot reopen conversation: ${data.reopen_conversation}`);
|
this.logger.verbose(`Chatwoot reopen conversation: ${data.reopen_conversation}`);
|
||||||
this.logger.verbose(`Chatwoot conversation pending: ${data.conversation_pending}`);
|
this.logger.verbose(`Chatwoot conversation pending: ${data.conversation_pending}`);
|
||||||
|
|
||||||
Object.assign(this.localChatwoot, data);
|
Object.assign(this.localChatwoot, { ...data, sign_delimiter: data.sign_msg ? data.sign_delimiter : null });
|
||||||
|
|
||||||
this.logger.verbose('Chatwoot set');
|
this.logger.verbose('Chatwoot set');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,6 +380,7 @@ export class WAStartupService {
|
|||||||
this.logger.verbose(`Chatwoot url: ${data.url}`);
|
this.logger.verbose(`Chatwoot url: ${data.url}`);
|
||||||
this.logger.verbose(`Chatwoot inbox name: ${data.name_inbox}`);
|
this.logger.verbose(`Chatwoot inbox name: ${data.name_inbox}`);
|
||||||
this.logger.verbose(`Chatwoot sign msg: ${data.sign_msg}`);
|
this.logger.verbose(`Chatwoot sign msg: ${data.sign_msg}`);
|
||||||
|
this.logger.verbose(`Chatwoot sign delimiter: ${data.sign_delimiter}`);
|
||||||
this.logger.verbose(`Chatwoot reopen conversation: ${data.reopen_conversation}`);
|
this.logger.verbose(`Chatwoot reopen conversation: ${data.reopen_conversation}`);
|
||||||
this.logger.verbose(`Chatwoot conversation pending: ${data.conversation_pending}`);
|
this.logger.verbose(`Chatwoot conversation pending: ${data.conversation_pending}`);
|
||||||
|
|
||||||
@ -388,6 +391,7 @@ export class WAStartupService {
|
|||||||
url: data.url,
|
url: data.url,
|
||||||
name_inbox: data.name_inbox,
|
name_inbox: data.name_inbox,
|
||||||
sign_msg: data.sign_msg,
|
sign_msg: data.sign_msg,
|
||||||
|
sign_delimiter: data.sign_delimiter || null,
|
||||||
reopen_conversation: data.reopen_conversation,
|
reopen_conversation: data.reopen_conversation,
|
||||||
conversation_pending: data.conversation_pending,
|
conversation_pending: data.conversation_pending,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user