Compare commits
7 Commits
642c2b5841
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b04edfd913 | |||
| 6daa3aa443 | |||
| a7542f9272 | |||
| a8b9330e06 | |||
| b1db84a674 | |||
| e5238598c0 | |||
| f8f2fce606 |
27
chats-out.js
27
chats-out.js
@@ -20,13 +20,30 @@ module.exports = function(RED) {
|
|||||||
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
|
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
|
||||||
async function whatsappMessage(numb , inputMessage){
|
async function whatsappMessage(numb , inputMessage){
|
||||||
|
// Validate message
|
||||||
|
if (!inputMessage) {
|
||||||
|
node.error('Error Sending Msg: Message payload is empty or undefined');
|
||||||
|
SetStatus("Message empty", "red");
|
||||||
|
setTimeout(() => SetStatus('Connected','green'), 3000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (node.waClient.clientType === "waWebClient"){
|
if (node.waClient.clientType === "waWebClient"){
|
||||||
try {
|
try {
|
||||||
numb = await formatChatNumber(numb, node.waClient, node);
|
numb = await formatChatNumber(numb, node.waClient, node);
|
||||||
if(typeof inputMessage === "object"){
|
|
||||||
|
// Ensure message is a string for simple messages
|
||||||
|
if(typeof inputMessage === "object" && inputMessage.buttons){
|
||||||
inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer);
|
inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer);
|
||||||
}
|
|
||||||
await node.waClient.sendMessage(numb, inputMessage);
|
await node.waClient.sendMessage(numb, inputMessage);
|
||||||
|
} else if (typeof inputMessage === "object") {
|
||||||
|
// If it's an object without buttons, convert to string or handle appropriately
|
||||||
|
const messageText = inputMessage.text || JSON.stringify(inputMessage);
|
||||||
|
await node.waClient.sendMessage(numb, messageText);
|
||||||
|
} else {
|
||||||
|
// Convert to string to ensure valid message
|
||||||
|
await node.waClient.sendMessage(numb, String(inputMessage));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch(e){
|
catch(e){
|
||||||
node.error(`Error Sending Msg: ${e}`);
|
node.error(`Error Sending Msg: ${e}`);
|
||||||
@@ -36,9 +53,15 @@ module.exports = function(RED) {
|
|||||||
try {
|
try {
|
||||||
let client = await node.waClient;
|
let client = await node.waClient;
|
||||||
numb = await formatChatNumberSocket(numb, node.waClient, node);
|
numb = await formatChatNumberSocket(numb, node.waClient, node);
|
||||||
|
|
||||||
|
// Format message for socket client
|
||||||
if (typeof inputMessage === "string"){
|
if (typeof inputMessage === "string"){
|
||||||
inputMessage = {text : inputMessage};
|
inputMessage = {text : inputMessage};
|
||||||
|
} else if (typeof inputMessage === "object" && !inputMessage.text) {
|
||||||
|
// If object doesn't have text property, convert to string
|
||||||
|
inputMessage = {text : JSON.stringify(inputMessage)};
|
||||||
}
|
}
|
||||||
|
|
||||||
await client.sendMessage(numb, inputMessage);
|
await client.sendMessage(numb, inputMessage);
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
|
|||||||
25
group-out.js
25
group-out.js
@@ -20,14 +20,29 @@ module.exports = function(RED) {
|
|||||||
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
|
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
|
||||||
async function whatsappMessage(gID , inputMessage){
|
async function whatsappMessage(gID , inputMessage){
|
||||||
|
// Validate message
|
||||||
|
if (!inputMessage) {
|
||||||
|
node.error('Error Sending Msg: Message payload is empty or undefined');
|
||||||
|
SetStatus("Message empty", "red");
|
||||||
|
setTimeout(() => SetStatus('Connected','green'), 3000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (node.waClient.clientType === "waWebClient"){
|
if (node.waClient.clientType === "waWebClient"){
|
||||||
try {
|
try {
|
||||||
gID = await formatGroupId(gID, node.waClient, node);
|
gID = await formatGroupId(gID, node.waClient, node);
|
||||||
if(typeof inputMessage === "object"){
|
|
||||||
|
// Ensure message is a string for simple messages
|
||||||
|
if(typeof inputMessage === "object" && inputMessage.buttons){
|
||||||
inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer);
|
inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer);
|
||||||
await node.waClient.sendMessage(gID, inputMessage);
|
await node.waClient.sendMessage(gID, inputMessage);
|
||||||
|
} else if (typeof inputMessage === "object") {
|
||||||
|
// If it's an object without buttons, convert to string or handle appropriately
|
||||||
|
const messageText = inputMessage.text || JSON.stringify(inputMessage);
|
||||||
|
await node.waClient.sendMessage(gID, messageText);
|
||||||
} else {
|
} else {
|
||||||
await node.waClient.sendMessage(gID, inputMessage);
|
// Convert to string to ensure valid message
|
||||||
|
await node.waClient.sendMessage(gID, String(inputMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(e){
|
catch(e){
|
||||||
@@ -38,9 +53,15 @@ module.exports = function(RED) {
|
|||||||
try {
|
try {
|
||||||
let client = await node.waClient;
|
let client = await node.waClient;
|
||||||
gID = await formatGroupIdSocket(gID, node.waClient, node);
|
gID = await formatGroupIdSocket(gID, node.waClient, node);
|
||||||
|
|
||||||
|
// Format message for socket client
|
||||||
if (typeof inputMessage === "string"){
|
if (typeof inputMessage === "string"){
|
||||||
inputMessage = {text : inputMessage};
|
inputMessage = {text : inputMessage};
|
||||||
|
} else if (typeof inputMessage === "object" && !inputMessage.text) {
|
||||||
|
// If object doesn't have text property, convert to string
|
||||||
|
inputMessage = {text : JSON.stringify(inputMessage)};
|
||||||
}
|
}
|
||||||
|
|
||||||
await client.sendMessage(gID, inputMessage);
|
await client.sendMessage(gID, inputMessage);
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
|
|||||||
21
package.json
21
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "node-red-contrib-whatsapp-link",
|
"name": "node-red-contrib-whatsapp-link",
|
||||||
"version": "1.0.40-local.1",
|
"version": "1.0.41",
|
||||||
"description": "Node to send and receive whatsapp messages in groups and chats. | No third party APIs",
|
"description": "Node to send and receive whatsapp messages in groups and chats. | No third party APIs",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -27,17 +27,22 @@
|
|||||||
"whatsapp group-out": "group-out.js",
|
"whatsapp group-out": "group-out.js",
|
||||||
"whatsapp reply": "whatsappReply.js",
|
"whatsapp reply": "whatsappReply.js",
|
||||||
"whatsapp Link": "whatsappLink.js",
|
"whatsapp Link": "whatsappLink.js",
|
||||||
"number-recipient": "numberRecipient.js",
|
"whatsapp numberRecipient": "numberRecipient.js",
|
||||||
"group-recipient": "groupRecipient.js"
|
"whatsapp groupRecipient": "groupRecipient.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@whiskeysockets/baileys": "latest",
|
"@whiskeysockets/baileys": "^6.7.9",
|
||||||
"pino": "latest",
|
"pino": "^9.5.0",
|
||||||
"qrcode": "^1.5.1",
|
"qrcode": "^1.5.4",
|
||||||
"whatsapp-web.js": "^1.22.2-alpha.1"
|
"whatsapp-web.js": "^1.26.0"
|
||||||
|
},
|
||||||
|
"overrides": {
|
||||||
|
"inflight": "npm:@aashutoshrathi/inflight@^1.0.2",
|
||||||
|
"glob": "^10.3.10",
|
||||||
|
"rimraf": "^5.0.5"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.0.0"
|
"node": ">=18.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user