mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
refactor: chats.set event
This commit is contained in:
@@ -178,8 +178,12 @@ export type BaileysEventMap = {
|
||||
'connection.update': Partial<ConnectionState>
|
||||
/** auth credentials updated -- some pre key state, device ID etc. */
|
||||
'creds.update': Partial<AuthenticationCreds>
|
||||
/** set chats (history sync), messages are reverse chronologically sorted */
|
||||
'chats.set': { chats: Chat[], messages: WAMessage[], contacts: Contact[] }
|
||||
/** set chats (history sync), chats are reverse chronologically sorted */
|
||||
'chats.set': { chats: Chat[], isLatest: boolean }
|
||||
/** set messages (history sync), messages are reverse chronologically sorted */
|
||||
'messages.set': { messages: WAMessage[], isLatest: boolean }
|
||||
/** set contacts (history sync) */
|
||||
'contacts.set': { contacts: Contact[] }
|
||||
/** upsert chats */
|
||||
'chats.upsert': Chat[]
|
||||
/** update the given chats */
|
||||
|
||||
@@ -192,7 +192,7 @@ const makeChatsSocket = (config: LegacySocketConfig) => {
|
||||
})
|
||||
|
||||
logger.info(`got ${chats.length} chats, extracted ${contacts.length} contacts with name`)
|
||||
ev.emit('chats.set', { chats, messages: [], contacts })
|
||||
ev.emit('chats.set', { chats, isLatest: true })
|
||||
}
|
||||
})
|
||||
// got all contacts from phone
|
||||
@@ -208,7 +208,7 @@ const makeChatsSocket = (config: LegacySocketConfig) => {
|
||||
})
|
||||
|
||||
logger.info(`got ${contacts.length} contacts`)
|
||||
ev.emit('chats.set', { chats: [], messages: [], contacts })
|
||||
ev.emit('contacts.set', { contacts })
|
||||
}
|
||||
})
|
||||
// status updates
|
||||
|
||||
@@ -287,15 +287,15 @@ const makeMessagesSocket = (config: LegacySocketConfig) => {
|
||||
}
|
||||
|
||||
// messages received
|
||||
const messagesUpdate = (node: BinaryNode, type: 'prepend' | 'last') => {
|
||||
const messagesUpdate = (node: BinaryNode, isLatest: boolean) => {
|
||||
const messages = getBinaryNodeMessages(node)
|
||||
messages.reverse()
|
||||
ev.emit('messages.upsert', { messages, type })
|
||||
ev.emit('messages.set', { messages, isLatest })
|
||||
}
|
||||
|
||||
socketEvents.on('CB:action,add:last', json => messagesUpdate(json, 'last'))
|
||||
socketEvents.on('CB:action,add:unread', json => messagesUpdate(json, 'prepend'))
|
||||
socketEvents.on('CB:action,add:before', json => messagesUpdate(json, 'prepend'))
|
||||
socketEvents.on('CB:action,add:last', json => messagesUpdate(json, true))
|
||||
socketEvents.on('CB:action,add:unread', json => messagesUpdate(json, false))
|
||||
socketEvents.on('CB:action,add:before', json => messagesUpdate(json, false))
|
||||
|
||||
// new messages
|
||||
socketEvents.on('CB:action,add:relay,message', (node: BinaryNode) => {
|
||||
|
||||
@@ -133,7 +133,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
|
||||
const histNotification = protocolMsg!.historySyncNotification
|
||||
|
||||
logger.info({ histNotification, id: message.key.id }, 'got history notification')
|
||||
const info = await downloadAndProcessHistorySyncNotification(histNotification, historyCache)
|
||||
const { chats, contacts, messages, isLatest } = await downloadAndProcessHistorySyncNotification(histNotification, historyCache)
|
||||
|
||||
const meJid = authState.creds.me!.id
|
||||
await sendNode({
|
||||
@@ -145,7 +145,10 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
|
||||
}
|
||||
})
|
||||
|
||||
info && ev.emit('chats.set', info)
|
||||
if(chats.length) ev.emit('chats.set', { chats, isLatest })
|
||||
if(messages.length) ev.emit('messages.set', { messages, isLatest })
|
||||
if(contacts.length) ev.emit('contacts.set', { contacts })
|
||||
|
||||
break
|
||||
case proto.ProtocolMessage.ProtocolMessageType.APP_STATE_SYNC_KEY_SHARE:
|
||||
const keys = protocolMsg.appStateSyncKeyShare!.keys
|
||||
|
||||
@@ -13,8 +13,12 @@ export type BaileysEventMap<T> = {
|
||||
'connection.update': Partial<ConnectionState>
|
||||
/** credentials updated -- some metadata, keys or something */
|
||||
'creds.update': Partial<T>
|
||||
/** set chats (history sync), messages are reverse chronologically sorted */
|
||||
'chats.set': { chats: Chat[], messages: WAMessage[], contacts: Contact[], isLatest: boolean }
|
||||
/** set chats (history sync), chats are reverse chronologically sorted */
|
||||
'chats.set': { chats: Chat[], isLatest: boolean }
|
||||
/** set messages (history sync), messages are reverse chronologically sorted */
|
||||
'messages.set': { messages: WAMessage[], isLatest: boolean }
|
||||
/** set contacts (history sync) */
|
||||
'contacts.set': { contacts: Contact[] }
|
||||
/** upsert chats */
|
||||
'chats.upsert': Chat[]
|
||||
/** update the given chats */
|
||||
|
||||
@@ -165,7 +165,7 @@ export type MessageContentGenerationOptions = MediaGenerationOptions & {
|
||||
}
|
||||
export type MessageGenerationOptions = MessageContentGenerationOptions & MessageGenerationOptionsFromContent
|
||||
|
||||
export type MessageUpdateType = 'append' | 'notify' | 'prepend' | 'last' | 'replace'
|
||||
export type MessageUpdateType = 'append' | 'notify' | 'replace'
|
||||
|
||||
export type MessageInfoEventMap = { [jid: string]: Date }
|
||||
export interface MessageInfo {
|
||||
|
||||
@@ -66,13 +66,11 @@ export const processHistoryMessage = (item: proto.IHistorySync, historyCache: Se
|
||||
break
|
||||
}
|
||||
|
||||
if(chats.length || contacts.length || messages.length) {
|
||||
return {
|
||||
chats,
|
||||
contacts,
|
||||
messages,
|
||||
isLatest,
|
||||
}
|
||||
return {
|
||||
chats,
|
||||
contacts,
|
||||
messages,
|
||||
isLatest,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user