mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
group disappearing messages fix + state maintain
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 & {
|
||||||
|
|||||||
@@ -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: {
|
||||||
|
|||||||
Reference in New Issue
Block a user