diff --git a/packages/core.gbapp/services/GBConversationalService.ts b/packages/core.gbapp/services/GBConversationalService.ts index 217a738b..8e577baa 100644 --- a/packages/core.gbapp/services/GBConversationalService.ts +++ b/packages/core.gbapp/services/GBConversationalService.ts @@ -1059,7 +1059,13 @@ export class GBConversationalService { // If it is a group, spells and sends them back. const group = step.context.activity['group']; - if (textProcessed !== text && group) { + + const groupSpell = group ? await min.core.getParam( + min.instance, + 'Group Spell', + false): false; + + if (textProcessed !== text && group && groupSpell) { await min.whatsAppDirectLine.sendToDevice(group, `Spell: ${text}`); } diff --git a/packages/core.gbapp/services/GBCoreService.ts b/packages/core.gbapp/services/GBCoreService.ts index e161cebc..0469c5eb 100644 --- a/packages/core.gbapp/services/GBCoreService.ts +++ b/packages/core.gbapp/services/GBCoreService.ts @@ -683,13 +683,13 @@ ENDPOINT_UPDATE=true value = params ? params[name] : defaultValue; } if (typeof defaultValue === 'boolean') { - return new Boolean(value ? value.toString().toLowerCase() === 'true' : defaultValue); + return new Boolean(value ? value.toString().toLowerCase() === 'true' : defaultValue).valueOf(); } if (typeof defaultValue === 'string') { return value ? value : defaultValue; } if (typeof defaultValue === 'number') { - return new Number(value ? value : defaultValue ? defaultValue : 0); + return new Number(value ? value : defaultValue ? defaultValue : 0).valueOf(); } if (instance['dataValues'] && !value) { diff --git a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts index 5900ed22..4b8ef3c5 100644 --- a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts +++ b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts @@ -106,10 +106,10 @@ export class WhatsappDirectLine extends GBService { whatsappServiceKey === 'internal' ? 'GeneralBots' : whatsappServiceNumber.indexOf(';') > -1 - ? 'maytapi' - : whatsappServiceKey !== 'internal' - ? 'graphapi' - : 'chatapi'; + ? 'maytapi' + : whatsappServiceKey !== 'internal' + ? 'graphapi' + : 'chatapi'; this.groupId = groupId; } @@ -419,10 +419,12 @@ export class WhatsappDirectLine extends GBService { // Bot name must be specified on config. if (botGroupID === group) { + // Shortcut has been mentioned? let found = false; parts.forEach(e1 => { + botShortcuts.forEach(e2 => { if (e1 === e2 && !found) { found = true; @@ -443,17 +445,18 @@ export class WhatsappDirectLine extends GBService { } }); } - - // Ignore group messages without the mention to Bot. - - let smsServiceNumber = this.min.core.getParam(this.min.instance, 'whatsappServiceNumber', null); - if (smsServiceNumber && !answerText) { - smsServiceNumber = smsServiceNumber.replace('+', ''); - if (!message.body.startsWith('@' + smsServiceNumber)) { - return; - } - } }); + + // Ignore group messages without the mention to Bot. + + let botNumber = this.min.core.getParam(this.min.instance, 'Bot Number', null); + if (botNumber && !answerText && !found) { + botNumber = botNumber.replace('+', ''); + if (!message.body.startsWith('@' + botNumber)) { + + return; + } + } } } @@ -691,8 +694,7 @@ export class WhatsappDirectLine extends GBService { await this.printMessages(response.obj.activities, conversationId, from, fromName); } catch (err) { GBLog.error( - `Error calling printMessages on Whatsapp channel ${err.data === undefined ? err : err.data} ${ - err.errObj ? err.errObj.message : '' + `Error calling printMessages on Whatsapp channel ${err.data === undefined ? err : err.data} ${err.errObj ? err.errObj.message : '' }` ); } @@ -1037,7 +1039,7 @@ export class WhatsappDirectLine extends GBService { p => p.instance.botId.toLowerCase() === text.toLowerCase() )[0]; - + GBLog.info(`A WhatsApp mobile requested instance for: ${botId}.`); let urlMin: any = GBServer.globals.minInstances.filter(p => p.instance.botId === botId)[0];