From 9fee7faaf6d04c2d4a2396abfa16bf100d3fceac Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Wed, 23 Mar 2022 00:40:46 +0530 Subject: [PATCH] feat: add message events for reactions --- src/LegacySocket/messages.ts | 16 +++++++++++++++- src/Socket/messages-recv.ts | 10 ++++++++++ src/Types/Events.ts | 2 ++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/LegacySocket/messages.ts b/src/LegacySocket/messages.ts index 4051e74..119412b 100644 --- a/src/LegacySocket/messages.ts +++ b/src/LegacySocket/messages.ts @@ -143,7 +143,21 @@ const makeMessagesSocket = (config: LegacySocketConfig) => { } } - const protocolMessage = normalizeMessageContent(message.message)?.protocolMessage + const normalizedContent = normalizeMessageContent(message.message) + const protocolMessage = normalizedContent?.protocolMessage + + if(normalizedContent.reactionMessage) { + const reaction: proto.IReaction = { + ...normalizedContent.reactionMessage, + key: message.key, + } + const operation = normalizedContent.reactionMessage?.text ? 'add' : 'remove' + ev.emit( + 'messages.reaction', + { reaction, key: normalizedContent.reactionMessage!.key!, operation } + ) + } + // if it's a message to delete another message if(protocolMessage) { switch (protocolMessage.type) { diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 6c7ca7d..056a2a4 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -203,6 +203,16 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { chatUpdate.ephemeralExpiration = protocolMsg.ephemeralExpiration || null break } + } else if(content.reactionMessage) { + const reaction: proto.IReaction = { + ...content.reactionMessage, + key: message.key, + } + const operation = content.reactionMessage?.text ? 'add' : 'remove' + ev.emit( + 'messages.reaction', + { reaction, key: content.reactionMessage!.key!, operation } + ) } else if(message.messageStubType) { const meJid = authState.creds.me!.id const jid = message.key!.remoteJid! diff --git a/src/Types/Events.ts b/src/Types/Events.ts index 26b0ecc..f1c07e1 100644 --- a/src/Types/Events.ts +++ b/src/Types/Events.ts @@ -1,4 +1,5 @@ import type EventEmitter from 'events' +import { proto } from '../../WAProto' import { AuthenticationCreds } from './Auth' import { Chat, PresenceData } from './Chat' import { Contact } from './Contact' @@ -36,6 +37,7 @@ export type BaileysEventMap = { * the update will have type: "notify" * */ 'messages.upsert': { messages: WAMessage[], type: MessageUpdateType } + 'messages.reaction': { key: WAMessageKey, reaction: proto.IReaction, operation: 'add' | 'remove' } 'message-receipt.update': MessageUserReceiptUpdate[]