.toNumber added for Chats-out Node

This commit is contained in:
rawee 2023-01-17 01:38:37 +05:30
parent 02e63b7497
commit 98742199d5
5 changed files with 100 additions and 44 deletions

View File

@ -55,7 +55,14 @@ Admin Node generate QR Code just below the node for easy connection with whatsap
3. **Chats Out** : As simple as mention on name, node will send `msg.payload` recived at input to the number mentioned in node.
*Don't forget to mention international dialing code befor your number. Number must be in format like `+11 99999 99999` without any space.*
<p>Don't forget to mention international dialing code befor your number.
Number must be in format like <b>+11 99999 99999</b> without any space.</p>
<P><b>OR</b></P>
<P>Leave the Number blank and provide the number along with paylod
at `msg.toNumber` with international code.</P>
<p>To send message on multiple contacts an Arrar of number can be passed
on `msg.toNumber` like `msg.toNumber = [+1199999999, +12990000099, +1311111111].
</p>
4. **Group Message** : Whatsapp Group Node to send message in a Group.
@ -63,7 +70,7 @@ Admin Node generate QR Code just below the node for easy connection with whatsap
5. **Reply Node** : In Beta mode.
Node will reply on each message starting with string mentioned in instruction or defaults `!red`.
Node will reply(the `payload`) on each message starting with string mentioned in instruction coloum or defaults `!red`.
## Issues & Updates
@ -73,11 +80,14 @@ Issues and Suggestions are welcome [here.](https://github.com/raweee/node-red-co
* `Ver-0.1.21` : Group Message Node added.
* `Ver-0.1.23` : Nodes are formatted correctly and names are updated.
* `Ver-0.1.28` : Now QR Codes are directlly avilable in run time on Whatsapp-Admin-Node.
* `Ver-0.1.30` : Message can be send to an Array of contacts provided at `msg.toNumber`.
* Working on Reply Node.
## Future Nodes
Currently working on more Whatsapp Node and will be avilable soon -
1. Chat Reply node. (working)
2. Whatsapp button message.
3. Whatsapp List message.
2. Instruction (smart) Reply Node.
Complete detail for Nodes will also be updated as soon as possible.

View File

@ -33,6 +33,11 @@
<div class="form-tips">
<p>Don't forget to mention international dialing code befor your number.
Number must be in format like <b>+11 99999 99999</b> without any space.</p>
<P><b>OR</b></P>
<P>Leave the Number blank here and provide the number along with msg.paylod
at `msg.toNumber` with international code.</P>
<p>To send message on multiple contacts an Arrar of number can be passed
on `msg.toNumber` like `msg.toNumber = ["+1199999999", "+12990000099", "+1311111111"].</p>
</div>
</script>

View File

@ -9,30 +9,42 @@ module.exports = function(RED) {
let SetStatus = function(WAStatus, color){
node.status({fill:color,shape:"dot",text:WAStatus});
};
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
node.on('input', (message)=> {
if (node.number){
node.number = node.number.replace(/\D/g, '');
node.number = `${node.number}@c.us`;
function whatsappMessage(numb , inputMessage){
if (node.waClient){
try {
node.waClient.sendMessage(node.number, message.payload);
numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, '');
numb = `${numb}@c.us`;
node.waClient.sendMessage(numb, inputMessage);
SetStatus("Message Send.", "green");
setTimeout(()=>{
SetStatus('Connected','green');
}, 3000)
}, 2000)
}
catch(e) {
node.log(`Error Sending Msg: ${e}`);
};
}
else {
}
} else { node.log(`Error Sending Msg: ${e}`)}
};
node.on('input', (message)=> {
if (node.number){
whatsappMessage(node.number, message.payload);
} else if (message.toNumber){
var numbers = typeof message.toNumber === 'number' ? Array.of(message.toNumber) : message.toNumber;
for (number of numbers) {
setTimeout(()=> {
whatsappMessage(number, message.payload)}
, 3000);
}
} else {
SetStatus("No number","red");
setTimeout(()=>{
SetStatus('Connected','green');
}, 5000)
}
});
//whatsapp Status Parameters----

85
package-lock.json generated
View File

@ -1,17 +1,16 @@
{
"name": "node-red-contrib-whatsapp-link",
"version": "0.1.25",
"version": "0.1.30",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "node-red-contrib-whatsapp-link",
"version": "0.1.25",
"version": "0.1.30",
"license": "ISC",
"dependencies": {
"puppeteer": "latest",
"qrcode": "^1.5.1",
"whatsapp-web.js": "^1.18.4"
"whatsapp-web.js": "latest"
},
"engines": {
"node": ">=8.0.0"
@ -23,9 +22,9 @@
"integrity": "sha512-wtnBAETBVYZ9GvcbgdswRVSLkFkYAGv1KzwBBTeRXvGT9sb9cPllOgFFWXCn9PyARQ0H+Ijz6mmoRrGateUDxQ=="
},
"node_modules/@types/node": {
"version": "18.11.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
"integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
"version": "18.11.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
"optional": true
},
"node_modules/@types/yauzl": {
@ -374,6 +373,25 @@
"node-fetch": "2.6.7"
}
},
"node_modules/cross-fetch/node_modules/node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
"engines": {
"node": "4.x || >=6.0.0"
},
"peerDependencies": {
"encoding": "^0.1.0"
},
"peerDependenciesMeta": {
"encoding": {
"optional": true
}
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -838,9 +856,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"version": "2.6.8",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz",
"integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@ -983,6 +1001,7 @@
"version": "13.7.0",
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz",
"integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==",
"deprecated": "< 18.1.0 is no longer supported",
"hasInstallScript": true,
"dependencies": {
"cross-fetch": "3.1.5",
@ -1051,9 +1070,9 @@
}
},
"node_modules/readdir-glob/node_modules/minimatch": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
"integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.4.tgz",
"integrity": "sha512-U0iNYXt9wALljzfnGkhFSy5sAC6/SCR3JrHrlsdJz4kF8MvhTRQNiC59iUi1iqsitV7abrNAJWElVL9pdnoUgw==",
"optional": true,
"dependencies": {
"brace-expansion": "^2.0.1"
@ -1273,9 +1292,9 @@
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/whatsapp-web.js": {
"version": "1.18.4",
"resolved": "https://registry.npmjs.org/whatsapp-web.js/-/whatsapp-web.js-1.18.4.tgz",
"integrity": "sha512-Dqu6Q37tDDAcVJ44aMdRE76sI/9rBCUG+NTz1Kxh2w4obX2WtpoRetilxqgx1r4+pFUl58Lf21wGOEwPZ1pT/A==",
"version": "1.19.2",
"resolved": "https://registry.npmjs.org/whatsapp-web.js/-/whatsapp-web.js-1.19.2.tgz",
"integrity": "sha512-ibEKy0KJsmH1rH9DKXfWk9vCnP/Dw/nZF9Ax3M7LCYtumSC+fiXMRF3BMVu7E75NRdv1pzjw4v05/Oq9aYY6aA==",
"dependencies": {
"@pedroslopez/moduleraid": "^5.0.2",
"fluent-ffmpeg": "^2.1.2",
@ -1426,9 +1445,9 @@
"integrity": "sha512-wtnBAETBVYZ9GvcbgdswRVSLkFkYAGv1KzwBBTeRXvGT9sb9cPllOgFFWXCn9PyARQ0H+Ijz6mmoRrGateUDxQ=="
},
"@types/node": {
"version": "18.11.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
"integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
"version": "18.11.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
"optional": true
},
"@types/yauzl": {
@ -1695,6 +1714,16 @@
"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
"requires": {
"node-fetch": "2.6.7"
},
"dependencies": {
"node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"requires": {
"whatwg-url": "^5.0.0"
}
}
}
},
"debug": {
@ -2075,9 +2104,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"version": "2.6.8",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz",
"integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==",
"requires": {
"whatwg-url": "^5.0.0"
}
@ -2234,9 +2263,9 @@
}
},
"minimatch": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
"integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.4.tgz",
"integrity": "sha512-U0iNYXt9wALljzfnGkhFSy5sAC6/SCR3JrHrlsdJz4kF8MvhTRQNiC59iUi1iqsitV7abrNAJWElVL9pdnoUgw==",
"optional": true,
"requires": {
"brace-expansion": "^2.0.1"
@ -2419,9 +2448,9 @@
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"whatsapp-web.js": {
"version": "1.18.4",
"resolved": "https://registry.npmjs.org/whatsapp-web.js/-/whatsapp-web.js-1.18.4.tgz",
"integrity": "sha512-Dqu6Q37tDDAcVJ44aMdRE76sI/9rBCUG+NTz1Kxh2w4obX2WtpoRetilxqgx1r4+pFUl58Lf21wGOEwPZ1pT/A==",
"version": "1.19.2",
"resolved": "https://registry.npmjs.org/whatsapp-web.js/-/whatsapp-web.js-1.19.2.tgz",
"integrity": "sha512-ibEKy0KJsmH1rH9DKXfWk9vCnP/Dw/nZF9Ax3M7LCYtumSC+fiXMRF3BMVu7E75NRdv1pzjw4v05/Oq9aYY6aA==",
"requires": {
"@pedroslopez/moduleraid": "^5.0.2",
"archiver": "^5.3.1",

View File

@ -1,7 +1,7 @@
{
"name": "node-red-contrib-whatsapp-link",
"version": "0.1.29",
"description": "Node to send and receive whatsapp chats and group messages. | No third party APIs",
"version": "0.1.30",
"description": "Node to send and receive whatsapp messages in groups and chats. | No third party APIs",
"repository": {
"type": "git",
"url": "git+https://github.com/raweee/node-red-contrib-whatsapp-link.git"
@ -31,7 +31,7 @@
},
"dependencies": {
"qrcode": "^1.5.1",
"whatsapp-web.js": "^1.18.4"
"whatsapp-web.js": "latest"
},
"engines": {
"node": ">=8.0.0"