From 3bb0dbd2a41184192eba01d3c1de4fb674011515 Mon Sep 17 00:00:00 2001 From: Mohammed Ashab Uddin Date: Mon, 3 Aug 2020 10:54:48 +0400 Subject: [PATCH] accepts message with "" --- whatsapp-web.js/src/models/commands.js | 17 +++++++++++- .../src/userInteraction/messages.js | 1 + whatsapp-web.js/test/test_command.js | 27 +++++++++++++++++++ whatsapp-web.js/test/test_entity.js | 2 +- 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/whatsapp-web.js/src/models/commands.js b/whatsapp-web.js/src/models/commands.js index 674a54b..89256c5 100644 --- a/whatsapp-web.js/src/models/commands.js +++ b/whatsapp-web.js/src/models/commands.js @@ -28,8 +28,10 @@ class Command{ }else if(this.requireInput){ //the command requires input + let splitCommand = this.command.split(' '); - let splitMsg = msg.split(' '); + let splitMsg = this._getInputMessage(message); + //check the number of words both has //if not same then return false @@ -95,6 +97,19 @@ class Command{ return input; } + _getInputMessage(msg){ + let split = msg.split(/['"]/g); + if(split.length > 1) + { + let splitMsg = split[0].trim().split(' '); + let inputs = split.slice(1).filter( el => el.trim() == "" ? null : el); + splitMsg = splitMsg.concat(inputs); + return splitMsg; + } + + return msg.split(' '); + } + } module.exports.Command = Command; diff --git a/whatsapp-web.js/src/userInteraction/messages.js b/whatsapp-web.js/src/userInteraction/messages.js index bf68004..b54d477 100644 --- a/whatsapp-web.js/src/userInteraction/messages.js +++ b/whatsapp-web.js/src/userInteraction/messages.js @@ -238,4 +238,5 @@ module.exports= onMessage = async (message, client) => { + //export default onMessage; \ No newline at end of file diff --git a/whatsapp-web.js/test/test_command.js b/whatsapp-web.js/test/test_command.js index fff3df5..df1577e 100644 --- a/whatsapp-web.js/test/test_command.js +++ b/whatsapp-web.js/test/test_command.js @@ -164,6 +164,33 @@ describe('Command', () => { expect(a.getInput(message)['name']).to.equal('pikachu'); }); + it('Test : _getInputMessage() with a sentence', () => { + let a = new Command({command : 'wg website desc '}); + let b = a._getInputMessage(`wg website desc "Hello everynyan, how are you"`); + expect(b[0]).to.equal('wg'); + expect(b[1]).to.equal('website'); + expect(b[2]).to.equal('desc'); + expect(b[3]).to.equal('Hello everynyan, how are you'); + }) + + it('Test : _getInputMessage() with multiple sentence input', () => { + let a = new Command({command : 'wg website desc '}); + let b = a._getInputMessage(`wg website desc "Hello everynyan, how are you" "I am fine thank you"`); + expect(b[0]).to.equal('wg'); + expect(b[1]).to.equal('website'); + expect(b[2]).to.equal('desc'); + expect(b[3]).to.equal('Hello everynyan, how are you'); + expect(b[4]).to.equal('I am fine thank you'); + }) + it('Test : _getInputMessage() with single word', () => { + let a = new Command({command : 'wg website desc '}); + let b = a._getInputMessage(`wg website desc Hello`); + expect(b[0]).to.equal('wg'); + expect(b[1]).to.equal('website'); + expect(b[2]).to.equal('desc'); + expect(b[3]).to.equal('Hello'); + }) + }); \ No newline at end of file diff --git a/whatsapp-web.js/test/test_entity.js b/whatsapp-web.js/test/test_entity.js index 46ea027..342d6b8 100644 --- a/whatsapp-web.js/test/test_entity.js +++ b/whatsapp-web.js/test/test_entity.js @@ -76,7 +76,7 @@ describe('Entity', () => { expect(a.selectedData).to.equals('gada'); }); - it.only('Test: selectedData() = false', () => { + it('Test: selectedData() = false', () => { let a = new Entity(); a.addData('hello world', new Website('hello world')); a.addData('gada', new Website('gada'));