From 3207c8429649666a0c8e02cea6234c04db798bed Mon Sep 17 00:00:00 2001 From: Daniel Gradman-Svendsen Date: Mon, 17 Nov 2025 09:58:53 +0100 Subject: [PATCH] Fix number format issues --- chats-out.js | 24 ++++++++++++++++++++++++ group-out.js | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/chats-out.js b/chats-out.js index e3a2a51..dab6779 100644 --- a/chats-out.js +++ b/chats-out.js @@ -22,6 +22,11 @@ module.exports = function(RED) { // Convert to string if number numb = typeof numb === 'number' ? numb.toString() : numb; + // Check if it's already a formatted ID (contains @) + if (numb.includes('@')) { + return 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, ''); @@ -31,6 +36,13 @@ module.exports = function(RED) { throw new Error('Invalid number format'); } + // Check if it looks like a group ID (contains hyphen) + if (numb.includes('-')) { + // It's a group ID, format it directly without validation + return `${numb}@g.us`; + } + + // It's a regular phone number, validate with getNumberId try { var numbID = await node.waClient.getNumberId(numb); if(numbID) { @@ -57,6 +69,11 @@ module.exports = function(RED) { // Convert to string if number numb = typeof numb === 'number' ? numb.toString() : numb; + // Check if it's already a formatted ID (contains @) + if (numb.includes('@')) { + return 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, ''); @@ -66,6 +83,13 @@ module.exports = function(RED) { throw new Error('Invalid number format'); } + // Check if it looks like a group ID (contains hyphen) + if (numb.includes('-')) { + // It's a group ID, format it directly + return `${numb}@g.us`; + } + + // It's a regular phone number, validate with onWhatsApp try { const [result] = await (await node.waClient).onWhatsApp(numb) if (result?.exists){ diff --git a/group-out.js b/group-out.js index e8ed60a..63116bb 100644 --- a/group-out.js +++ b/group-out.js @@ -23,6 +23,11 @@ module.exports = function(RED) { // Convert to string if number numb = typeof numb === 'number' ? numb.toString() : numb; + // Check if it's already a formatted ID (contains @) + if (numb.includes('@')) { + return 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, ''); @@ -32,6 +37,13 @@ module.exports = function(RED) { throw new Error('Invalid number format'); } + // Check if it looks like a group ID (contains hyphen) + if (numb.includes('-')) { + // It's a group ID, format it directly without validation + return `${numb}@g.us`; + } + + // It's a regular phone number, validate with getNumberId try { var numbID = await node.waClient.getNumberId(numb); if(numbID) { @@ -58,6 +70,11 @@ module.exports = function(RED) { // Convert to string if number numb = typeof numb === 'number' ? numb.toString() : numb; + // Check if it's already a formatted ID (contains @) + if (numb.includes('@')) { + return 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, ''); @@ -67,6 +84,13 @@ module.exports = function(RED) { throw new Error('Invalid number format'); } + // Check if it looks like a group ID (contains hyphen) + if (numb.includes('-')) { + // It's a group ID, format it directly + return `${numb}@g.us`; + } + + // It's a regular phone number, validate with onWhatsApp try { const [result] = await (await node.waClient).onWhatsApp(numb) if (result?.exists){