diff --git a/src/Utils/process-message.ts b/src/Utils/process-message.ts index 7c698c9..b210665 100644 --- a/src/Utils/process-message.ts +++ b/src/Utils/process-message.ts @@ -14,13 +14,17 @@ type ProcessMessageContext = { options: AxiosRequestConfig } -const MSG_MISSED_CALL_TYPES = new Set([ +const REAL_MSG_STUB_TYPES = new Set([ WAMessageStubType.CALL_MISSED_GROUP_VIDEO, WAMessageStubType.CALL_MISSED_GROUP_VOICE, WAMessageStubType.CALL_MISSED_VIDEO, WAMessageStubType.CALL_MISSED_VOICE ]) +const REAL_MSG_REQ_ME_STUB_TYPES = new Set([ + WAMessageStubType.GROUP_PARTICIPANT_ADD +]) + /** Cleans a received message to further processing */ export const cleanMessage = (message: proto.IWebMessageInfo, meId: string) => { // ensure remoteJid and participant doesn't have device or agent in it @@ -48,11 +52,15 @@ export const cleanMessage = (message: proto.IWebMessageInfo, meId: string) => { } } -export const isRealMessage = (message: proto.IWebMessageInfo) => { +export const isRealMessage = (message: proto.IWebMessageInfo, meId: string) => { const normalizedContent = normalizeMessageContent(message.message) return ( !!normalizedContent - || MSG_MISSED_CALL_TYPES.has(message.messageStubType!) + || REAL_MSG_STUB_TYPES.has(message.messageStubType!) + || ( + REAL_MSG_REQ_ME_STUB_TYPES.has(message.messageStubType!) + && message.messageStubParameters?.some(p => areJidsSameUser(meId, p)) + ) ) && !normalizedContent?.protocolMessage && !normalizedContent?.reactionMessage @@ -77,7 +85,7 @@ const processMessage = async( const { accountSettings } = creds const chat: Partial = { id: jidNormalizedUser(message.key.remoteJid!) } - const isRealMsg = isRealMessage(message) + const isRealMsg = isRealMessage(message, meId) if(isRealMsg) { chat.conversationTimestamp = toNumber(message.messageTimestamp)