fix(messages): detect interactive messages inside viewOnceMessage
fix(messages): detect interactive messages inside viewOnceMessage
This commit is contained in:
@@ -612,6 +612,7 @@ export const makeMessagesSocket = (config: SocketConfig) => {
|
|||||||
// ⚠️ EXPERIMENTAL: Functions to detect and handle interactive messages
|
// ⚠️ EXPERIMENTAL: Functions to detect and handle interactive messages
|
||||||
// These features may not work and can cause account bans
|
// These features may not work and can cause account bans
|
||||||
const getButtonType = (message: proto.IMessage): string | undefined => {
|
const getButtonType = (message: proto.IMessage): string | undefined => {
|
||||||
|
// Check direct message types (legacy formats)
|
||||||
if (message.buttonsMessage) {
|
if (message.buttonsMessage) {
|
||||||
return 'buttons'
|
return 'buttons'
|
||||||
} else if (message.templateMessage) {
|
} else if (message.templateMessage) {
|
||||||
@@ -627,6 +628,29 @@ export const makeMessagesSocket = (config: SocketConfig) => {
|
|||||||
} else if (message.interactiveMessage) {
|
} else if (message.interactiveMessage) {
|
||||||
return 'interactive'
|
return 'interactive'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check inside viewOnceMessage wrapper (modern nativeFlowMessage format)
|
||||||
|
// This is the recommended format for interactive messages
|
||||||
|
// Check all 7 types for consistency with direct message detection
|
||||||
|
const innerMessage = message.viewOnceMessage?.message
|
||||||
|
if (innerMessage) {
|
||||||
|
if (innerMessage.buttonsMessage) {
|
||||||
|
return 'buttons'
|
||||||
|
} else if (innerMessage.templateMessage) {
|
||||||
|
return 'template'
|
||||||
|
} else if (innerMessage.listMessage) {
|
||||||
|
return 'list'
|
||||||
|
} else if (innerMessage.buttonsResponseMessage) {
|
||||||
|
return 'buttons_response'
|
||||||
|
} else if (innerMessage.listResponseMessage) {
|
||||||
|
return 'list_response'
|
||||||
|
} else if (innerMessage.templateButtonReplyMessage) {
|
||||||
|
return 'template_reply'
|
||||||
|
} else if (innerMessage.interactiveMessage) {
|
||||||
|
return 'interactive'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user