mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-19 12:09:15 +00:00
build: ⚡ fix
build: ⚡ fix
This commit is contained in:
@@ -18,7 +18,6 @@ class CoreClass {
|
|||||||
flowClass
|
flowClass
|
||||||
databaseClass
|
databaseClass
|
||||||
providerClass
|
providerClass
|
||||||
listCallbacks = []
|
|
||||||
constructor(_flow, _database, _provider) {
|
constructor(_flow, _database, _provider) {
|
||||||
this.flowClass = _flow
|
this.flowClass = _flow
|
||||||
this.databaseClass = _database
|
this.databaseClass = _database
|
||||||
@@ -106,7 +105,6 @@ class CoreClass {
|
|||||||
from,
|
from,
|
||||||
keyword: null,
|
keyword: null,
|
||||||
index,
|
index,
|
||||||
options: prevMsg?.options ?? {},
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.slice(0, optListMsg.limit)
|
.slice(0, optListMsg.limit)
|
||||||
@@ -116,24 +114,18 @@ class CoreClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
|
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
|
||||||
const cbEveryCtx =
|
const cbEveryCtx = (inRef) => {
|
||||||
(inRef, _injectMessageCtx, _injectfallBack, _injectflowDynamic) =>
|
this.flowClass.allCallbacks[inRef](messageCtxInComming, {
|
||||||
() => {
|
fallBack,
|
||||||
this.flowClass.allCallbacks[inRef](_injectMessageCtx, {
|
flowDynamic,
|
||||||
fallBack: _injectfallBack,
|
})
|
||||||
flowDynamic: _injectflowDynamic,
|
}
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 📄 [options: callback]: Si se tiene un callback se ejecuta
|
// 📄 [options: callback]: Si se tiene un callback se ejecuta
|
||||||
const callAllCb = (_msgToList = []) => {
|
if (!fallBackFlag) {
|
||||||
for (const ite of _msgToList) {
|
if (prevMsg?.options?.capture) cbEveryCtx(prevMsg?.ref)
|
||||||
this.listCallbacks[ite?.ref] = cbEveryCtx(
|
for (const ite of this.flowClass.find(body)) {
|
||||||
ite?.ref,
|
if (!ite?.options?.capture) cbEveryCtx(ite?.ref)
|
||||||
messageCtxInComming,
|
|
||||||
fallBack,
|
|
||||||
flowDynamic
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,7 +138,10 @@ class CoreClass {
|
|||||||
|
|
||||||
msgToSend = this.flowClass.find(body, false, flowStandalone) || []
|
msgToSend = this.flowClass.find(body, false, flowStandalone) || []
|
||||||
|
|
||||||
callAllCb(msgToSend)
|
for (const ite of msgToSend) {
|
||||||
|
cbEveryCtx(ite?.ref)
|
||||||
|
}
|
||||||
|
|
||||||
this.sendFlow(msgToSend, from)
|
this.sendFlow(msgToSend, from)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -158,14 +153,12 @@ class CoreClass {
|
|||||||
|
|
||||||
if (['string', 'boolean'].includes(typeCapture) && valueCapture) {
|
if (['string', 'boolean'].includes(typeCapture) && valueCapture) {
|
||||||
msgToSend = this.flowClass.find(refToContinue?.ref, true) || []
|
msgToSend = this.flowClass.find(refToContinue?.ref, true) || []
|
||||||
callAllCb(msgToSend)
|
|
||||||
this.sendFlow(msgToSend, from)
|
this.sendFlow(msgToSend, from)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
msgToSend = this.flowClass.find(body) || []
|
msgToSend = this.flowClass.find(body) || []
|
||||||
callAllCb(msgToSend)
|
|
||||||
this.sendFlow(msgToSend, from)
|
this.sendFlow(msgToSend, from)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,19 +169,10 @@ class CoreClass {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
sendProviderAndSave = (numberOrId, ctxMessage) => {
|
sendProviderAndSave = (numberOrId, ctxMessage) => {
|
||||||
const executeCb = (ref) => {
|
|
||||||
try {
|
|
||||||
return this.listCallbacks[ref]()
|
|
||||||
} catch (e) {
|
|
||||||
return Promise.resolve()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const { answer } = ctxMessage
|
const { answer } = ctxMessage
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
this.providerClass.sendMessage(numberOrId, answer, ctxMessage),
|
this.providerClass.sendMessage(numberOrId, answer, ctxMessage),
|
||||||
this.databaseClass.save({ ...ctxMessage, from: numberOrId }),
|
this.databaseClass.save({ ...ctxMessage, from: numberOrId }),
|
||||||
executeCb(ctxMessage?.ref),
|
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -97,13 +97,21 @@ class DialogFlowContext extends CoreClass {
|
|||||||
})
|
})
|
||||||
|
|
||||||
customPayload = {
|
customPayload = {
|
||||||
media: fields?.media?.stringValue,
|
options: {
|
||||||
buttons: mapButtons,
|
media: fields?.media?.stringValue,
|
||||||
|
buttons: mapButtons,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ctxFromDX = {
|
||||||
|
...customPayload,
|
||||||
|
answer: fields?.answer?.stringValue,
|
||||||
|
}
|
||||||
|
this.sendFlow([ctxFromDX], from)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const ctxFromDX = {
|
const ctxFromDX = {
|
||||||
...customPayload,
|
|
||||||
answer: queryResult?.fulfillmentText,
|
answer: queryResult?.fulfillmentText,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ const pino = require('pino')
|
|||||||
const rimraf = require('rimraf')
|
const rimraf = require('rimraf')
|
||||||
const mime = require('mime-types')
|
const mime = require('mime-types')
|
||||||
const { join } = require('path')
|
const { join } = require('path')
|
||||||
const { existsSync, createWriteStream } = require('fs')
|
const { existsSync, createWriteStream, readFileSync } = require('fs')
|
||||||
const { Console } = require('console')
|
const { Console } = require('console')
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@@ -137,7 +137,7 @@ class BaileysProvider extends ProviderClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const btnCtx =
|
const btnCtx =
|
||||||
payload?.message?.templateButtonReplyMessage
|
payload?.message?.buttonsResponseMessage
|
||||||
?.selectedDisplayText
|
?.selectedDisplayText
|
||||||
|
|
||||||
if (btnCtx) payload.body = btnCtx
|
if (btnCtx) payload.body = btnCtx
|
||||||
@@ -167,8 +167,8 @@ class BaileysProvider extends ProviderClass {
|
|||||||
sendMedia = async (number, imageUrl, text) => {
|
sendMedia = async (number, imageUrl, text) => {
|
||||||
const fileDownloaded = await baileyDownloadMedia(imageUrl)
|
const fileDownloaded = await baileyDownloadMedia(imageUrl)
|
||||||
return this.vendor.sendMessage(number, {
|
return this.vendor.sendMessage(number, {
|
||||||
image: { url: fileDownloaded },
|
image: readFileSync(fileDownloaded),
|
||||||
text,
|
caption: text,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,20 +229,22 @@ class BaileysProvider extends ProviderClass {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
sendButtons = async (number, text, buttons) => {
|
sendButtons = async (number, text, buttons) => {
|
||||||
const numberClean = number.replace('+', '')
|
const numberClean = baileyCleanNumber(number)
|
||||||
|
|
||||||
const templateButtons = buttons.map((btn, i) => ({
|
const templateButtons = buttons.map((btn, i) => ({
|
||||||
index: `${i}`,
|
buttonId: `id-btn-${i}`,
|
||||||
quickReplyButton: {
|
buttonText: { displayText: btn.body },
|
||||||
displayText: btn.body,
|
type: 1,
|
||||||
id: `id-btn-${i}`,
|
|
||||||
},
|
|
||||||
}))
|
}))
|
||||||
|
|
||||||
return this.vendor.sendMessage(`${numberClean}@c.us`, {
|
const buttonMessage = {
|
||||||
text,
|
text,
|
||||||
footer: '',
|
footer: '',
|
||||||
templateButtons: templateButtons,
|
buttons: templateButtons,
|
||||||
})
|
headerType: 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.vendor.sendMessage(numberClean, buttonMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user