diff --git a/src/Connection/groups.ts b/src/Connection/groups.ts index 44ba2e9..ca98665 100644 --- a/src/Connection/groups.ts +++ b/src/Connection/groups.ts @@ -199,7 +199,6 @@ const makeGroupsSocket = (config: SocketConfig) => { ev.emit('group-participants.update', { jid, participants: jids, action }) return jids }, - /** Query broadcast list info */ getBroadcastListInfo: async(jid: string) => { interface WABroadcastListInfo { diff --git a/src/Connection/messages.ts b/src/Connection/messages.ts index 82fcbfa..db75d02 100644 --- a/src/Connection/messages.ts +++ b/src/Connection/messages.ts @@ -1,7 +1,7 @@ import BinaryNode from "../BinaryNode"; import { Boom } from '@hapi/boom' import { EventEmitter } from 'events' -import { Chat, Presence, WAMessageCursor, SocketConfig, WAMessage, WAMessageKey, ParticipantAction, WAMessageProto, WAMessageStatus, WAMessageStubType, GroupMetadata, AnyMessageContent, MiscMessageGenerationOptions, WAFlag, WAMetric, WAUrlInfo, MediaConnInfo, MessageUpdateType, MessageInfo, MessageInfoUpdate, WAMediaUploadFunction, MediaType } from "../Types"; +import { Chat, Presence, WAMessageCursor, SocketConfig, WAMessage, WAMessageKey, ParticipantAction, WAMessageProto, WAMessageStatus, WAMessageStubType, GroupMetadata, AnyMessageContent, MiscMessageGenerationOptions, WAFlag, WAMetric, WAUrlInfo, MediaConnInfo, MessageUpdateType, MessageInfo, MessageInfoUpdate, WAMediaUploadFunction, MediaType, WAMessageUpdate } from "../Types"; import { isGroupID, toNumber, whatsappID, generateWAMessage, decryptMediaMessageBuffer } from "../Utils"; import makeChatsSocket from "./chats"; import { DEFAULT_ORIGIN, MEDIA_PATH_MAP, WA_DEFAULT_EPHEMERAL } from "../Defaults"; @@ -345,6 +345,7 @@ const makeMessagesSocket = (config: SocketConfig) => { // message status updates const onMessageStatusUpdate = ({ data }: BinaryNode) => { if(Array.isArray(data)) { + const updates: WAMessageUpdate[] = [] for(const { attributes: json } of data) { const key: WAMessageKey = { remoteJid: whatsappID(json.jid), @@ -354,11 +355,12 @@ const makeMessagesSocket = (config: SocketConfig) => { const status = STATUS_MAP[json.type] if(status) { - ev.emit('messages.update', [ { key, update: { status } } ]) + updates.push({ key, update: { status } }) } else { logger.warn({ data }, 'got unknown status update for message') } } + ev.emit('messages.update', updates) } } const onMessageInfoUpdate = ([,attributes]: [string,{[_: string]: any}]) => { diff --git a/src/Store/in-memory-store.ts b/src/Store/in-memory-store.ts index 9aea81e..564ad8e 100644 --- a/src/Store/in-memory-store.ts +++ b/src/Store/in-memory-store.ts @@ -143,7 +143,6 @@ export default( logger.debug({ update }, `got update for non-existent message`) } } - }) ev.on('messages.delete', item => { const list = assertMessageList(item.jid) diff --git a/src/Utils/messages-media.ts b/src/Utils/messages-media.ts index c8f3208..e8716c7 100644 --- a/src/Utils/messages-media.ts +++ b/src/Utils/messages-media.ts @@ -18,6 +18,8 @@ import { MediaType } from '../Types' import { DEFAULT_ORIGIN } from '../Defaults' export const hkdfInfoKey = (type: MediaType) => { + if(type === 'sticker') type = 'image' + let hkdfInfo = type[0].toUpperCase() + type.slice(1) return `WhatsApp ${hkdfInfo} Keys` }