From 963202a31a61c5015430aeff0f1b4f99b04e8360 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Fri, 15 Jul 2022 09:05:16 -0300 Subject: [PATCH] new(whatsapp.gblib): New providers. --- .gitignore | 1 + logo.png | Bin 7775 -> 8192 bytes package-lock.json | 235 +++++++++++++++++- package.json | 4 + .../basic.gblib/services/DialogKeywords.ts | 15 +- packages/core.gbapp/services/GBMinService.ts | 19 +- .../services/WhatsappDirectLine.ts | 35 ++- 7 files changed, 276 insertions(+), 33 deletions(-) diff --git a/.gitignore b/.gitignore index 60f7c34c..9481d80f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ .env *.env .vscode/launch.json +.wwebjs_auth \ No newline at end of file diff --git a/logo.png b/logo.png index ab5505518e3c8e2b320abc23a3118e4068c17752..9a0a1a84e38e7228ec5530486ac2b47b60d15d76 100644 GIT binary patch literal 8192 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 literal 7775 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, reject) => { sgMail.setApiKey(emailToken); const msg = { @@ -868,4 +868,11 @@ export class DialogKeywords { await this.min.conversationalService.sendFile(this.min, step, mobile, url, caption); } } + + public async getQRCode(text) { + const img = await qrcode.toDataURL(text); + const data = img.replace(/^data:image\/\w+;base64,/, ""); + const buf = Buffer.from(data, "base64"); + return buf; + } } \ No newline at end of file diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index a1f5ea01..0762ddd6 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -349,8 +349,8 @@ export class GBMinService { } let provider = GBMinService.isChatAPI(req, res); - let id = provider ? req.body.messages[0].author.split('@')[0] : req.body.user.phone; - let senderName = provider ? req.body.messages[0].senderName : req.body.user.name; + let id; + let senderName; let botId; let text; @@ -365,10 +365,6 @@ export class GBMinService { case "chatapi": - id = req.body.messages[0].author.split('@')[0]; - senderName = req.body.messages[0].senderName; - text = req.body.messages[0].body; - if (req.body.ack) { res.status(200); res.end(); @@ -380,6 +376,9 @@ export class GBMinService { return; // Exit here. } + id = req.body.messages[0].author.split('@')[0]; + senderName = req.body.messages[0].senderName; + text = req.body.messages[0].body; botId = req.params.botId; if (botId === '[default]' || botId === undefined) { botId = GBConfigService.get('BOT_ID'); @@ -387,10 +386,6 @@ export class GBMinService { break; case "maytapi": - id = req.body.user.phone; - senderName = req.body.user.name; - text = req.body.message.text; - if (req.body.type !== 'message') { res.status(200); res.end(); @@ -402,6 +397,10 @@ export class GBMinService { return; // Exit here. } + id = req.body.user.phone; + senderName = req.body.user.name; + text = req.body.message.text; + botId = WhatsappDirectLine.phones[req.body.phoneId]; break; } diff --git a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts index 91ea3363..dafc8720 100644 --- a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts +++ b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts @@ -92,7 +92,7 @@ export class WhatsappDirectLine extends GBService { this.whatsappServiceKey = whatsappServiceKey; this.whatsappServiceNumber = whatsappServiceNumber; this.whatsappServiceUrl = whatsappServiceUrl; - this.provider = whatsappServiceKey === "gbnative" ? + this.provider = whatsappServiceKey === "internal" ? 'GeneralBots' : whatsappServiceNumber.indexOf(';') > -1 ? 'maytapi' : 'chatapi'; } @@ -139,26 +139,34 @@ export class WhatsappDirectLine extends GBService { await this.received(message, null); }).bind(this)); - client.on('qr', ((qr) => { + client.on('qr', (async (qr) => { const adminNumber = this.min.core.getParam(this.min.instance, 'Bot Admin Number', null); const adminEmail = this.min.core.getParam(this.min.instance, 'Bot Admin E-mail', null); // Sends QR Code to boot bot admin. - const info = this.customClient.info; - const msg = `Please, scan QR Code with ${info.wid.user}(${info.pushname}) for bot ${this.botId}: ${qr}.`; + const msg = `Please, scan QR Code with for bot ${this.botId}.`; GBLog.info(msg); qrcode.generate(qr, { small: true, scale: 0.5 }); // While handling other bots uses boot instance of this class to send QR Codes. - + if (this.botId !== GBServer.globals.minBoot.botId) { - GBServer.globals.minBoot.whatsAppDirectLine.sendMessage(msg); - GBServer.globals.minBoot.whatsAppDirectLine.sendMessage(adminNumber, qr); const s = new DialogKeywords(null, null, null, null); + const qrBuf = await s.getQRCode(qr); + const gbaiName = `${this.min.botId}.gbai`; + const localName = Path.join('work', gbaiName, 'cache', `qr${GBAdminService.getRndReadableIdentifier()}.png`); + fs.writeFileSync(localName, qrBuf); + const url = urlJoin( + GBServer.globals.publicAddress, + this.min.botId, + 'cache', + Path.basename(localName) + ); + GBServer.globals.minBoot.whatsAppDirectLine.sendFileToDevice(adminNumber, url, Path.basename(localName), msg); s.sendEmail(adminEmail, `Check your WhatsApp for bot ${this.botId}`, msg); } @@ -263,6 +271,10 @@ export class WhatsappDirectLine extends GBService { switch (this.provider) { case 'GeneralBots': message = req; + text = message.body; + from = message.from.split('@')[0]; + fromName = message._data.notifyName; + break; case 'chatapi': @@ -485,7 +497,10 @@ export class WhatsappDirectLine extends GBService { const generatedConversationId = response.obj.conversationId; WhatsappDirectLine.conversationIds[botId + from + group] = generatedConversationId; - WhatsappDirectLine.mobiles[generatedConversationId] = from; + if (this.provider === "GeneralBots") { + WhatsappDirectLine.chatIds[generatedConversationId] = message.from; + } + WhatsappDirectLine.mobiles[generatedConversationId] = from; WhatsappDirectLine.usernames[from] = fromName; WhatsappDirectLine.chatIds[generatedConversationId] = message.chatId; @@ -496,7 +511,7 @@ export class WhatsappDirectLine extends GBService { this.inputMessage(client, conversationId, text, from, fromName, group); } - } else { + } else { GBLog.warn(`Inconsistencty found: Invalid agentMode on User Table: ${user.agentMode}`); } @@ -738,7 +753,7 @@ export class WhatsappDirectLine extends GBService { switch (this.provider) { case 'GeneralBots': - this.customClient.sendMessage(to, msg); + this.customClient.sendMessage(to+'@c.us' , msg); break;