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

View File

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

View File

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

View File

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