node-red-contrib-whatsapp-link
Advanced tools
Comparing version 0.1.34 to 0.1.35
@@ -20,2 +20,3 @@ module.exports = function(RED) { | ||
let msg = {}; | ||
msg.event = waEvent; | ||
msg.payload = message.body|| null; | ||
@@ -30,3 +31,6 @@ msg.from = message.author || message.from ; | ||
node.waClient.on(waEvent, async message => { | ||
node.send(message); | ||
msg = {}; | ||
msg.event = waEvent; | ||
msg.message = message | ||
node.send(msg); | ||
}); | ||
@@ -68,7 +72,8 @@ }; | ||
msgs.messages.forEach(async msg =>{ | ||
msg.payload = msg.message?.conversation; | ||
msg.from = msg.key.participant || msg.key.remoteJid; | ||
msg.from = msg.from.replace(/\D/g, '') || msg.from; | ||
msg.chatID = msg.key.remoteJid.replace(/\D/g, '') || msg.key.remoteJid ; | ||
node.send(msg) | ||
msg.event = waEvent; | ||
msg.payload = msg.message?.conversation; | ||
msg.from = msg.key.participant || msg.key.remoteJid; | ||
msg.from = msg.from.replace(/\D/g, '') || msg.from; | ||
msg.chatID = msg.key.remoteJid.replace(/\D/g, '') || msg.key.remoteJid ; | ||
node.send(msg) | ||
}) | ||
@@ -79,5 +84,5 @@ }); | ||
client.ev.on(waEvent, msgs =>{ | ||
msgs.event = waEvent; | ||
node.send(msgs) | ||
}); | ||
}; | ||
@@ -84,0 +89,0 @@ }) |
@@ -15,12 +15,25 @@ module.exports = function(RED) { | ||
function webNubmerSeteing(numb){ | ||
async function webNubmerSeteing(numb){ | ||
numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, ''); | ||
numb = `${numb}@c.us`; | ||
return numb | ||
// numb = `${numb}@c.us`; | ||
var numbID = await node.waClient.getNumberId(numb); | ||
if(numbID) { | ||
return `${numbID.user}@${numbID.server}`; | ||
} else { | ||
return `${numb}@g.us` | ||
} | ||
// return numb | ||
} | ||
function socNubmerSeteing(numb){ | ||
async function socNubmerSeteing(numb){ | ||
if (numb.remoteJid){ | ||
return numb.remoteJid; | ||
} | ||
numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, ''); | ||
numb = `${numb}@s.whatsapp.net` | ||
return numb | ||
const [result] = await (await node.waClient).onWhatsApp(numb) | ||
if (result?.exists){ | ||
console.log(result.exists) | ||
return result.jid | ||
} | ||
return numb = `${numb}@g.us`; | ||
} | ||
@@ -31,9 +44,6 @@ | ||
try { | ||
numb = webNubmerSeteing(numb); | ||
numb = await webNubmerSeteing(numb); | ||
if(typeof inputMessage === "object"){ | ||
// inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer) | ||
let myBtn = new Buttons('Button body',[{body:'bt1'},{body:'bt2'},{body:'bt3'}],'title','footer'); | ||
console.log(myBtn) | ||
inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer); | ||
node.waClient.sendMessage(numb, inputMessage); | ||
inputMessage = myBtn | ||
} | ||
@@ -49,3 +59,3 @@ node.waClient.sendMessage(numb, inputMessage); | ||
let client = await node.waClient; | ||
numb = socNubmerSeteing(numb) | ||
numb = await socNubmerSeteing(numb) | ||
if (typeof inputMessage ==="string"){ | ||
@@ -57,3 +67,3 @@ inputMessage = {text : inputMessage}; | ||
catch(e) { | ||
node.error(`Error Sending Msg: ${e}`); | ||
node.error(`Error Sending Msg:: ${e}`); | ||
} | ||
@@ -74,3 +84,3 @@ } | ||
if (node.waClient.clientType === "waWebClient"){ | ||
numb = webNubmerSeteing(node.number) | ||
numb = await webNubmerSeteing(node.number) | ||
var myMessage = new MessageMedia('image/png', whatsappImageBase64, null, null); | ||
@@ -80,3 +90,3 @@ node.waClient.sendMessage(numb, myMessage, {caption : whatsappCaption || "Image from Node-Red"}); | ||
else { | ||
numb = socNubmerSeteing(node.number) | ||
numb = await socNubmerSeteing(node.number) | ||
const imageMessage = { | ||
@@ -110,3 +120,3 @@ text: whatsappCaption, | ||
} else if (message.toNumber){ | ||
var numbers = typeof message.toNumber === 'number' ? Array.of(message.toNumber) : message.toNumber; | ||
var numbers = message.toNumber instanceof Array ? message.toNumber : Array.of(message.toNumber); | ||
for (number of numbers) { | ||
@@ -122,3 +132,6 @@ if(message.image){ | ||
} | ||
} else { | ||
} else if(message.key.remoteJid){ | ||
whatsappMessage(message.key, message.payload) | ||
} | ||
else { | ||
SetStatus("No number","red"); | ||
@@ -125,0 +138,0 @@ setTimeout(()=>{ |
@@ -105,3 +105,3 @@ module.exports = function(RED) { | ||
} else if (message.toNumber){ | ||
var numbers = typeof message.toNumber === 'number' ? Array.of(message.toNumber) : message.toNumber; | ||
var numbers = message.toNumber instanceof Array ? message.toNumber : Array.of(message.toNumber); | ||
for (number of numbers) { | ||
@@ -108,0 +108,0 @@ if(message.image){ |
{ | ||
"name": "node-red-contrib-whatsapp-link", | ||
"version": "0.1.34", | ||
"version": "0.1.35", | ||
"description": "Node to send and receive whatsapp messages in groups and chats. | No third party APIs", | ||
@@ -35,3 +35,4 @@ "repository": { | ||
"whatsapp-web.js": "latest", | ||
"qrcode": "^1.5.1" | ||
"qrcode": "^1.5.1", | ||
"pino": "latest" | ||
}, | ||
@@ -38,0 +39,0 @@ "engines": { |
@@ -64,53 +64,7 @@ # Whatsapp Link :iphone: | ||
Other Events options -- | ||
Their are many other events options avilable along with `message` event in Chats-In Node. For details refer documentation for Chats-In Node. | ||
| waWebClient | Description | | ||
|-------------|-------------| | ||
| `message` | ||
| `message_create` | ||
| `auth_failure` | ||
| `authenticated` | ||
| `change_battery` | ||
| `change_state` | ||
| `disconnected` | ||
| `group_join` | ||
| `group_leave` | ||
| `group_update` | ||
| `incoming_call` | ||
| `media_uploaded` | ||
| `message_ack` | ||
| `message_reaction` | ||
| `message_revoke_everyone` | ||
| `message_revoke_me` | ||
| `qr` | ||
| `ready` | ||
| waSocketClient | Description | | ||
|-------------|----------------| | ||
| `messages.upsert` | ||
| `connection.update` | ||
| `creds.update` | ||
| `messaging-history.set` | ||
| `chats.upsert` | ||
| `chats.update` | ||
| `chats.delete` | ||
| `presence.update` | ||
| `contacts.upsert` | ||
| `contacts.update` | ||
| `messages.delete` | ||
| `messages.update` | ||
| `messages.media-update` | ||
| `messages.reaction` | ||
| `message-receipt.update` | ||
| `groups.upsert` | ||
| `groups.update` | ||
| `group-participants.update` | ||
| `blocklist.set` | ||
| `blocklist.update` | ||
| `call` | ||
3. **Chats / Group Out** : As simple as mention on name, node will send `msg.payload` recived at input to the number mentioned in node. | ||
3. **Chats Out** : As simple as mention on name, node will send `msg.payload` recived at input to the number mentioned in node. | ||
MultiMedia Message: Requirments- | ||
@@ -315,7 +269,3 @@ | Input | Description | | ||
``` | ||
### Screen Shots of Buttons and Image Messages. | ||
![](.github/messageScreenShot.jpeg) | ||
5. **Reply Node** : In Beta mode. | ||
@@ -322,0 +272,0 @@ |
@@ -130,3 +130,3 @@ module.exports = function(RED) { | ||
printQRInTerminal: false, | ||
logger:pino({level: "fatal"}), | ||
logger:pino({level: "silent"}), | ||
auth : state, | ||
@@ -156,4 +156,6 @@ browser: ["Node-RED", "Chrome", "4.0.0"], | ||
socketClient.ev.on('creds.update', saveCreds) | ||
socketClient.ev.on('creds.update', saveCreds); | ||
console.log(socketClient) | ||
// socketClient.setMaxListeners(0); | ||
socketClient.ev.on('connection.update', (update) => { | ||
@@ -180,6 +182,6 @@ const { connection, lastDisconnect } = update | ||
) { | ||
FS.rmSync(whatsappLinkDirSocket, {recursive : true, force: true}) | ||
connectSocketClient() | ||
FS.rmSync(whatsappLinkDirSocket, {recursive : true, force: true}) | ||
} else { | ||
WAnode.log('Node Refressed') | ||
WAnode.error(lastDisconnect?.error) | ||
} | ||
@@ -204,3 +206,4 @@ } | ||
} else { | ||
WAnode.client.end() | ||
// WAnode.client.removeAllListeners(); | ||
WAnode.client.end(); | ||
} | ||
@@ -207,0 +210,0 @@ |
Sorry, the diff of this file is not supported yet
832
327285
4
298
+ Addedpino@latest
+ Addedabort-controller@3.0.0(transitive)
+ Addedbuffer@6.0.3(transitive)
+ Addedevent-target-shim@5.0.1(transitive)
+ Addedevents@3.3.0(transitive)
+ Addedon-exit-leak-free@2.1.2(transitive)
+ Addedpino@9.0.0(transitive)
+ Addedpino-abstract-transport@1.2.0(transitive)
+ Addedpino-std-serializers@6.2.2(transitive)
+ Addedprocess@0.11.10(transitive)
+ Addedprocess-warning@3.0.0(transitive)
+ Addedreadable-stream@4.5.2(transitive)
+ Addedreal-require@0.2.0(transitive)
+ Addedsonic-boom@3.8.1(transitive)
+ Addedsplit2@4.2.0(transitive)
+ Addedthread-stream@2.7.0(transitive)