From 063803ae1bd131d0f85029092c8f971428d51661 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Tue, 5 Oct 2021 15:51:14 +0530 Subject: [PATCH] delete message fix --- src/Socket/messages-recv.ts | 1 + src/Socket/messages-send.ts | 15 +++++++++++---- src/Types/Message.ts | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 7ee5f8e..dadeda0 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -222,6 +222,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { } ) ev.emit('chats.set', { chats, messages }) + ev.emit('connection.update', { receivedPendingNotifications: true }) break case proto.HistorySync.HistorySyncHistorySyncType.PUSH_NAME: const contacts = item.pushnames.map( diff --git a/src/Socket/messages-send.ts b/src/Socket/messages-send.ts index 1ce0cc5..f3c072e 100644 --- a/src/Socket/messages-send.ts +++ b/src/Socket/messages-send.ts @@ -1,7 +1,7 @@ import { SocketConfig, MediaConnInfo, AnyMessageContent, MiscMessageGenerationOptions, WAMediaUploadFunction, MessageRelayOptions } from "../Types" import { encodeWAMessage, generateMessageID, generateWAMessage } from "../Utils" -import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, isJidGroup, jidDecode, jidEncode, jidNormalizedUser, S_WHATSAPP_NET } from '../WABinary' +import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, isJidGroup, jidDecode, jidEncode, jidNormalizedUser, S_WHATSAPP_NET, BinaryNodeAttributes } from '../WABinary' import { proto } from "../../WAProto" import { encryptSenderKeyMsgSignalProto, encryptSignalProto, extractDeviceJids, jidToSignalProtocolAddress, parseAndInjectE2ESession } from "../Utils/signal" import { WA_DEFAULT_EPHEMERAL, DEFAULT_ORIGIN, MEDIA_PATH_MAP } from "../Defaults" @@ -180,7 +180,7 @@ export const makeMessagesSocket = (config: SocketConfig) => { const relayMessage = async( jid: string, message: proto.IMessage, - { messageId: msgId, cachedGroupMetadata }: MessageRelayOptions + { messageId: msgId, additionalAttributes, cachedGroupMetadata }: MessageRelayOptions ) => { const { user, server } = jidDecode(jid) const isGroup = server === 'g.us' @@ -281,7 +281,8 @@ export const makeMessagesSocket = (config: SocketConfig) => { attrs: { id: msgId, type: 'text', - to: destinationJid + to: destinationJid, + ...(additionalAttributes || {}) }, content: [ { @@ -393,7 +394,13 @@ export const makeMessagesSocket = (config: SocketConfig) => { upload: waUploadToServer } ) - await relayMessage(jid, fullMsg.message, { messageId: fullMsg.key.id! }) + const additionalAttributes: BinaryNodeAttributes = { } + // required for delete + if('delete' in content) { + additionalAttributes.edit = '7' + } + + await relayMessage(jid, fullMsg.message, { messageId: fullMsg.key.id!, additionalAttributes }) if(config.emitOwnEvents) { process.nextTick(() => { ev.emit('messages.upsert', { messages: [fullMsg], type: 'append' }) diff --git a/src/Types/Message.ts b/src/Types/Message.ts index 2346d91..120c895 100644 --- a/src/Types/Message.ts +++ b/src/Types/Message.ts @@ -107,6 +107,7 @@ export type AnyMessageContent = AnyRegularMessageContent | { export type MessageRelayOptions = { messageId?: string + additionalAttributes?: { [_: string]: string } cachedGroupMetadata?: (jid: string) => Promise //cachedDevices?: (jid: string) => Promise }