mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
feat: add notification node type picture
This commit is contained in:
@@ -194,7 +194,8 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
|
|||||||
const [child] = getAllBinaryNodeChildren(node)
|
const [child] = getAllBinaryNodeChildren(node)
|
||||||
const nodeType = node.attrs.type
|
const nodeType = node.attrs.type
|
||||||
|
|
||||||
if(nodeType === 'w:gp2') {
|
switch (nodeType) {
|
||||||
|
case 'w:gp2':
|
||||||
switch (child?.tag) {
|
switch (child?.tag) {
|
||||||
case 'create':
|
case 'create':
|
||||||
const metadata = extractGroupMetadata(child)
|
const metadata = extractGroupMetadata(child)
|
||||||
@@ -256,23 +257,40 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
|
|||||||
break
|
break
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if(nodeType === 'mediaretry') {
|
|
||||||
|
break
|
||||||
|
case 'mediaretry':
|
||||||
const event = decodeMediaRetryNode(node)
|
const event = decodeMediaRetryNode(node)
|
||||||
ev.emit('messages.media-update', [event])
|
ev.emit('messages.media-update', [event])
|
||||||
} else if(nodeType === 'encrypt') {
|
break
|
||||||
|
case 'encrypt':
|
||||||
await handleEncryptNotification(node)
|
await handleEncryptNotification(node)
|
||||||
} else if(nodeType === 'devices') {
|
break
|
||||||
|
case 'devices':
|
||||||
const devices = getBinaryNodeChildren(child, 'device')
|
const devices = getBinaryNodeChildren(child, 'device')
|
||||||
if(areJidsSameUser(child.attrs.jid, authState.creds!.me!.id)) {
|
if(areJidsSameUser(child.attrs.jid, authState.creds!.me!.id)) {
|
||||||
const deviceJids = devices.map(d => d.attrs.jid)
|
const deviceJids = devices.map(d => d.attrs.jid)
|
||||||
logger.info({ deviceJids }, 'got my own devices')
|
logger.info({ deviceJids }, 'got my own devices')
|
||||||
}
|
}
|
||||||
} else if(nodeType === 'server_sync') {
|
|
||||||
|
break
|
||||||
|
case 'server_sync':
|
||||||
const update = getBinaryNodeChild(node, 'collection')
|
const update = getBinaryNodeChild(node, 'collection')
|
||||||
if(update) {
|
if(update) {
|
||||||
const name = update.attrs.name as WAPatchName
|
const name = update.attrs.name as WAPatchName
|
||||||
await resyncAppState([name], undefined)
|
await resyncAppState([name], undefined)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
case 'picture':
|
||||||
|
const setPicture = getBinaryNodeChild(node, 'set')
|
||||||
|
if(setPicture) {
|
||||||
|
result.messageStubType = WAMessageStubType.GROUP_CHANGE_ICON
|
||||||
|
result.messageStubParameters = [ setPicture.attrs.id ]
|
||||||
|
result.participant = setPicture.attrs.author
|
||||||
|
}
|
||||||
|
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Object.keys(result).length) {
|
if(Object.keys(result).length) {
|
||||||
@@ -430,7 +448,7 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
|
|||||||
id: node.attrs.id,
|
id: node.attrs.id,
|
||||||
...(msg.key || {})
|
...(msg.key || {})
|
||||||
}
|
}
|
||||||
msg.participant = node.attrs.participant
|
msg.participant ??= node.attrs.participant
|
||||||
msg.messageTimestamp = +node.attrs.t
|
msg.messageTimestamp = +node.attrs.t
|
||||||
|
|
||||||
const fullMsg = proto.WebMessageInfo.fromObject(msg)
|
const fullMsg = proto.WebMessageInfo.fromObject(msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user