group disappearing messages fix + state maintain

This commit is contained in:
Adhiraj Singh
2021-08-04 17:19:28 +05:30
parent b5ee036ae9
commit 39a6d804e1
4 changed files with 15 additions and 6 deletions

View File

@@ -103,6 +103,10 @@ const makeMessagesSocket = (config: SocketConfig) => {
jid, jid,
t: +toNumber(message.messageTimestamp) t: +toNumber(message.messageTimestamp)
} }
const emitGroupUpdate = (update: Partial<GroupMetadata>) => {
ev.emit('groups.update', [ { id: jid, ...update } ])
}
// add to count if the message isn't from me & there exists a message // add to count if the message isn't from me & there exists a message
if(!message.key.fromMe && message.message) { if(!message.key.fromMe && message.message) {
chatUpdate.count = 1 chatUpdate.count = 1
@@ -121,6 +125,10 @@ const makeMessagesSocket = (config: SocketConfig) => {
) { ) {
chatUpdate.eph_setting_ts = message.messageTimestamp.toString() chatUpdate.eph_setting_ts = message.messageTimestamp.toString()
chatUpdate.ephemeral = ephemeralProtocolMsg.ephemeralExpiration.toString() chatUpdate.ephemeral = ephemeralProtocolMsg.ephemeralExpiration.toString()
if(isGroupID(jid)) {
emitGroupUpdate({ ephemeralDuration: ephemeralProtocolMsg.ephemeralExpiration || null })
}
} }
const protocolMessage = message.message?.protocolMessage const protocolMessage = message.message?.protocolMessage
// if it's a message to delete another message // if it's a message to delete another message
@@ -150,14 +158,14 @@ const makeMessagesSocket = (config: SocketConfig) => {
const emitParticipantsUpdate = (action: ParticipantAction) => ( const emitParticipantsUpdate = (action: ParticipantAction) => (
ev.emit('group-participants.update', { jid, participants, action }) ev.emit('group-participants.update', { jid, participants, action })
) )
const emitGroupUpdate = (update: Partial<GroupMetadata>) => {
ev.emit('groups.update', [ { id: jid, ...update } ])
}
switch (message.messageStubType) { switch (message.messageStubType) {
case WAMessageStubType.CHANGE_EPHEMERAL_SETTING: case WAMessageStubType.CHANGE_EPHEMERAL_SETTING:
chatUpdate.eph_setting_ts = message.messageTimestamp.toString() chatUpdate.eph_setting_ts = message.messageTimestamp.toString()
chatUpdate.ephemeral = message.messageStubParameters[0] chatUpdate.ephemeral = message.messageStubParameters[0]
if(isGroupID(jid)) {
emitGroupUpdate({ ephemeralDuration: +message.messageStubParameters[0] || null })
}
break break
case WAMessageStubType.GROUP_PARTICIPANT_LEAVE: case WAMessageStubType.GROUP_PARTICIPANT_LEAVE:
case WAMessageStubType.GROUP_PARTICIPANT_REMOVE: case WAMessageStubType.GROUP_PARTICIPANT_REMOVE:

View File

@@ -18,6 +18,7 @@ export interface GroupMetadata {
announce?: 'true' | 'false' announce?: 'true' | 'false'
// Baileys modified array // Baileys modified array
participants: GroupParticipant[] participants: GroupParticipant[]
ephemeralDuration?: number
} }

View File

@@ -111,7 +111,7 @@ export type MiscMessageGenerationOptions = {
/** disappearing messages settings */ /** disappearing messages settings */
ephemeralOptions?: { ephemeralOptions?: {
expiration: number | string expiration: number | string
eph_setting_ts: number | string eph_setting_ts?: number | string
} }
} }
export type MessageGenerationOptionsFromContent = MiscMessageGenerationOptions & { export type MessageGenerationOptionsFromContent = MiscMessageGenerationOptions & {

View File

@@ -312,7 +312,7 @@ export const generateWAMessageFromContent = (
message[key].contextInfo = { message[key].contextInfo = {
...(message[key].contextInfo || {}), ...(message[key].contextInfo || {}),
expiration: options.ephemeralOptions.expiration || WA_DEFAULT_EPHEMERAL, expiration: options.ephemeralOptions.expiration || WA_DEFAULT_EPHEMERAL,
ephemeralSettingTimestamp: options.ephemeralOptions.eph_setting_ts.toString() ephemeralSettingTimestamp: options.ephemeralOptions.eph_setting_ts?.toString()
} }
message = { message = {
ephemeralMessage: { ephemeralMessage: {