fix(messages): detect interactive messages inside viewOnceMessage

fix(messages): detect interactive messages inside viewOnceMessage
This commit is contained in:
Renato Alcara
2026-01-26 02:50:56 -03:00
committed by GitHub
+24
View File
@@ -612,6 +612,7 @@ export const makeMessagesSocket = (config: SocketConfig) => {
// ⚠️ EXPERIMENTAL: Functions to detect and handle interactive messages
// These features may not work and can cause account bans
const getButtonType = (message: proto.IMessage): string | undefined => {
// Check direct message types (legacy formats)
if (message.buttonsMessage) {
return 'buttons'
} else if (message.templateMessage) {
@@ -627,6 +628,29 @@ export const makeMessagesSocket = (config: SocketConfig) => {
} else if (message.interactiveMessage) {
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
}