From e6153a1e0f6015635c22092f5e793bafe8504d83 Mon Sep 17 00:00:00 2001 From: "brobert (aider)" Date: Sun, 23 Mar 2025 23:30:29 +0100 Subject: [PATCH] feat: update mention handling to use proper phone number format --- src/bot/commands/task.ts | 2 +- src/bot/utils/messaging.ts | 9 ++++----- src/services/notificationService.ts | 2 +- src/utils/communityUtils.ts | 4 +++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/bot/commands/task.ts b/src/bot/commands/task.ts index 65dff65..7b5c898 100644 --- a/src/bot/commands/task.ts +++ b/src/bot/commands/task.ts @@ -82,7 +82,7 @@ export function handleTaskCommand(body: string, sender: string, groupId: string, sendMessage(sender, message); // Also notify assignee if different from creator if (assignedUser && assignedUser !== `@${sender.split('@')[0]}`) { - sendMessage(assignedUser, `📝 Se te ha asignado una nueva tarea:\n${message}`); + sendMessage(assignedUser, `📝 Se te ha asignado una nueva tarea:\n${message}`, [assignedUser.split('@')[0]]); } } catch (error) { console.error('Error creating task:', error); diff --git a/src/bot/utils/messaging.ts b/src/bot/utils/messaging.ts index d3c48ed..5064095 100644 --- a/src/bot/utils/messaging.ts +++ b/src/bot/utils/messaging.ts @@ -21,11 +21,10 @@ export async function sendMessage(phone: string, message: string, mentions: stri // Add mentions if provided if (mentions.length > 0) { - payload.contextInfo = { - mentionedJid: mentions, - participant: mentions[0], // The user being mentioned - quotedMessage: { - conversation: message + payload.options = { + mentions: { + everyOne: false, + mentioned: mentions.map(phone => phone.split('@')[0]) // Strip @s.whatsapp.net } }; } diff --git a/src/services/notificationService.ts b/src/services/notificationService.ts index aca537d..98fbf7c 100644 --- a/src/services/notificationService.ts +++ b/src/services/notificationService.ts @@ -21,7 +21,7 @@ export function notifyTaskCreation(task: Task) { const assigneeMessage = `📝 ${creatorMention} te ha asignado una nueva tarea:\n` + `ID: ${task.id}\nDescripción: ${task.description}` + (task.dueDate ? `\nFecha límite: ${task.dueDate}` : ''); - sendMessage(task.assignedTo, assigneeMessage, [task.assignedTo]); + sendMessage(task.assignedTo, assigneeMessage, [task.assignedTo.split('@')[0]]); } } diff --git a/src/utils/communityUtils.ts b/src/utils/communityUtils.ts index 4ddd263..8ecdb32 100644 --- a/src/utils/communityUtils.ts +++ b/src/utils/communityUtils.ts @@ -25,7 +25,9 @@ export async function isUserInCommunity(userJid: string, groupJids: Set) // Check if user is in this group's participants const participants = response.data?.participants || []; - if (participants.includes(userJid)) { + // Check both JID and phone number formats + const userPhone = userJid.split('@')[0]; + if (participants.includes(userJid) || participants.some(p => p.startsWith(userPhone))) { return true; } }