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
|
||||
// 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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user