diff --git a/CHANGELOG.md b/CHANGELOG.md index 24167432..051a84c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.0.178](https://github.com/GeneralBots/BotServer/compare/2.0.177...2.0.178) (2022-10-09) + + +### Bug Fixes + +* **whatsapp.gblib:** SEND FILE and WPP providers. ([3f7e024](https://github.com/GeneralBots/BotServer/commit/3f7e024b58660d0be0734dc5f3a3cd7884df3727)) + ## [2.0.177](https://github.com/GeneralBots/BotServer/compare/2.0.176...2.0.177) (2022-10-04) diff --git a/package.json b/package.json index ed90e28f..adfc3b92 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "botserver", - "version": "2.0.177", + "version": "2.0.178", "description": "General Bot Community Edition open-core server.", "main": "./boot.js", "bugs": "https://github.com/pragmatismo-io/BotServer/issues", diff --git a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts index a651e453..b897cd15 100644 --- a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts +++ b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts @@ -141,7 +141,8 @@ export class WhatsappDirectLine extends GBService { const gbaiName = `${this.min.botId}.gbai`; const localName = Path.join('work', gbaiName, 'profile'); - const createClient = (browserWSEndpoint) => { + + const createClient = async (browserWSEndpoint) => { let puppeteer: any = { headless: false, args: [ '--disable-setuid-sandbox', @@ -161,7 +162,8 @@ export class WhatsappDirectLine extends GBService { puppeteer: puppeteer }); - client.initialize(); + await client.initialize(); + this.browserWSEndpoint = client.pupBrowser.wsEndpoint(); client.on('message', (async message => { await this.WhatsAppCallback(message, null); @@ -202,7 +204,6 @@ export class WhatsappDirectLine extends GBService { client.on('authenticated', async () => { this.browserWSEndpoint = client.pupBrowser.wsEndpoint(); - const chats = await client.getChats(); await CollectionUtil.asyncForEach(chats, async chat => { @@ -219,21 +220,12 @@ export class WhatsappDirectLine extends GBService { GBLog.info(`WhatsApp QR Code authenticated for ${this.botId}.`); }); + client.pupBrowser.on('disconnected', (async () => { + GBLog.info(`Browser terminated. Restarting ${this.min.botId} WhatsApp native provider.`); + await (createClient.bind(this))(null); + }).bind(this)); }; - - client.pupBrowser.on('disconnected', (async () => { - GBLog.info(`Browser crashed. Restarting ${this.min.botId} WhatsApp native provider.`); - await (createClient.bind(this))(null); - }).bind(this)); - client.pupPage.on('error', (async () => { - GBLog.info(`Page crashed. Restarting ${this.min.botId} WhatsApp native provider.`); - if (!client.pupPage.isClosed()) { - client.pupPage.close(); - } await (createClient.bind(this))(null); - }).bind(this)); - - (createClient.bind(this))(this.browserWSEndpoint); - + await (createClient.bind(this))(this.browserWSEndpoint); setUrl = false; } @@ -300,16 +292,23 @@ export class WhatsappDirectLine extends GBService { public async check() { GBLog.info(`GBWhatsapp: Checking server...`); + switch (this.provider) { + case 'GeneralBots': + const info = await this.customClient.getState(); + GBLog.info(`GBWhatsapp: ${info.WAState}.`); + break; + default: + const options = { + url: urlJoin(this.whatsappServiceUrl, 'status') + `?token=${this.min.instance.whatsappServiceKey}`, + method: 'GET' + }; - const options = { - url: urlJoin(this.whatsappServiceUrl, 'status') + `?token=${this.min.instance.whatsappServiceKey}`, - method: 'GET' - }; + const res = await request(options); + const json = JSON.parse(res); - const res = await request(options); - const json = JSON.parse(res); - - return json.accountStatus === 'authenticated'; + return json.accountStatus === 'authenticated'; + break; + } } public static providerFromRequest(req) {