Compare commits

..

No commits in common. "deedec12833bb98f5286f91211eed90271a4ca08" and "c8f6454512e2cab5bfaa98889eb3f3c2662abb02" have entirely different histories.

4 changed files with 35 additions and 119 deletions

6
.gitignore vendored
View File

@ -1,6 +1,2 @@
node_modules node_modules
removed.rm removed.rm
fromwindows.json
fromandroid.json
fromnodered.json

View File

@ -14,68 +14,27 @@ module.exports = function(RED) {
const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
async function webNubmerSeteing(numb){ async function webNubmerSeteing(numb){
// Validate and clean the number numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, '');
if (!numb) { // numb = `${numb}@c.us`;
throw new Error('Number is required'); var numbID = await node.waClient.getNumberId(numb);
} if(numbID) {
return `${numbID.user}@${numbID.server}`;
// Convert to string if number } else {
numb = typeof numb === 'number' ? numb.toString() : numb; return `${numb}@g.us`
// For group IDs, preserve the hyphen (format: NUMBER-TIMESTAMP@g.us)
// Only strip non-digits and non-hyphens for cleaning
numb = numb.replace(/[^\d-]/g, '');
// Check if number is valid after cleaning
if (!numb || numb.length === 0) {
throw new Error('Invalid number format');
}
try {
var numbID = await node.waClient.getNumberId(numb);
if(numbID) {
return `${numbID.user}@${numbID.server}`;
} else {
return `${numb}@g.us`
}
} catch (e) {
node.error(`Error getting number ID for ${numb}: ${e.message}`);
throw e;
} }
// return numb
} }
async function socNubmerSeteing(numb){ async function socNubmerSeteing(numb){
if (numb && numb.remoteJid){ if (numb.remoteJid){
return numb.remoteJid; return numb.remoteJid;
} }
numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, '');
// Validate and clean the number const [result] = await (await node.waClient).onWhatsApp(numb)
if (!numb) { if (result?.exists){
throw new Error('Number is required'); return result.jid
}
// Convert to string if number
numb = typeof numb === 'number' ? numb.toString() : numb;
// For group IDs, preserve the hyphen (format: NUMBER-TIMESTAMP@g.us)
// Only strip non-digits and non-hyphens for cleaning
numb = numb.replace(/[^\d-]/g, '');
// Check if number is valid after cleaning
if (!numb || numb.length === 0) {
throw new Error('Invalid number format');
}
try {
const [result] = await (await node.waClient).onWhatsApp(numb)
if (result?.exists){
return result.jid
}
return numb = `${numb}@g.us`;
} catch (e) {
node.error(`Error checking WhatsApp for ${numb}: ${e.message}`);
throw e;
} }
return numb = `${numb}@g.us`;
} }
async function whatsappMessage(numb , inputMessage){ async function whatsappMessage(numb , inputMessage){
@ -84,6 +43,7 @@ module.exports = function(RED) {
numb = await webNubmerSeteing(numb); numb = await webNubmerSeteing(numb);
if(typeof inputMessage === "object"){ if(typeof inputMessage === "object"){
inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer); inputMessage = new Buttons(inputMessage.text, inputMessage.buttons, "text" ,inputMessage.footer);
node.waClient.sendMessage(numb, inputMessage);
} }
node.waClient.sendMessage(numb, inputMessage); node.waClient.sendMessage(numb, inputMessage);
} }

View File

@ -15,68 +15,28 @@ module.exports = function(RED) {
async function webNubmerSeteing(numb){ async function webNubmerSeteing(numb){
// Validate and clean the number numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, '');
if (!numb) { // numb = `${numb}@c.us`;
throw new Error('Number is required'); var numbID = await node.waClient.getNumberId(numb);
} if(numbID) {
return `${numbID.user}@${numbID.server}`;
// Convert to string if number } else {
numb = typeof numb === 'number' ? numb.toString() : numb; return `${numb}@g.us`
// For group IDs, preserve the hyphen (format: NUMBER-TIMESTAMP@g.us)
// Only strip non-digits and non-hyphens for cleaning
numb = numb.replace(/[^\d-]/g, '');
// Check if number is valid after cleaning
if (!numb || numb.length === 0) {
throw new Error('Invalid number format');
}
try {
var numbID = await node.waClient.getNumberId(numb);
if(numbID) {
return `${numbID.user}@${numbID.server}`;
} else {
return `${numb}@g.us`
}
} catch (e) {
node.error(`Error getting number ID for ${numb}: ${e.message}`);
throw e;
} }
// return numb
} }
async function socNubmerSeteing(numb){ async function socNubmerSeteing(numb){
if (numb && numb.remoteJid){ if (numb.remoteJid){
return numb.remoteJid; return numb.remoteJid;
} }
numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, '');
// Validate and clean the number const [result] = await (await node.waClient).onWhatsApp(numb)
if (!numb) { if (result?.exists){
throw new Error('Number is required'); console.log(result.exists)
} return result.jid
// Convert to string if number
numb = typeof numb === 'number' ? numb.toString() : numb;
// For group IDs, preserve the hyphen (format: NUMBER-TIMESTAMP@g.us)
// Only strip non-digits and non-hyphens for cleaning
numb = numb.replace(/[^\d-]/g, '');
// Check if number is valid after cleaning
if (!numb || numb.length === 0) {
throw new Error('Invalid number format');
}
try {
const [result] = await (await node.waClient).onWhatsApp(numb)
if (result?.exists){
return result.jid
}
return numb = `${numb}@g.us`;
} catch (e) {
node.error(`Error checking WhatsApp for ${numb}: ${e.message}`);
throw e;
} }
return numb = `${numb}@g.us`;
} }
async function whatsappMessage(numb , inputMessage){ async function whatsappMessage(numb , inputMessage){

View File

@ -1,13 +1,13 @@
{ {
"name": "node-red-contrib-whatsapp-link", "name": "node-red-contrib-whatsapp-link",
"version": "1.0.40-local.1", "version": "0.1.39C",
"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",
"url": "git+https://gitea.delphas.dk/daniels/node-red-contrib-whatsapp-link.git" "url": "git+https://github.com/raweee/node-red-contrib-whatsapp-link.git"
}, },
"bugs": { "bugs": {
"url": "git+https://gitea.delphas.dk/daniels/node-red-contrib-whatsapp-link/issues" "url": "https://github.com/raweee/node-red-contrib-whatsapp-link/issues"
}, },
"keywords": [ "keywords": [
"node-red", "node-red",
@ -16,7 +16,7 @@
"whatsapp Group", "whatsapp Group",
"whatsapp Chat" "whatsapp Chat"
], ],
"author": "Daniel Gradman-Svendsen", "author": "Ravi Mishra",
"license": "ISC", "license": "ISC",
"node-red": { "node-red": {
"version": ">=2.0", "version": ">=2.0",