Fix: Agregar soporte para recepción de Polls y Events
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- manager.ts: Detectar pollCreationMessage y eventMessage en getMessageType - manager.ts: Extraer y guardar datos de poll/event como JSON en content - index.get.ts: Parsear poll/event desde raw_message y content - index.get.ts: Incluir poll y event en respuesta de la API
This commit is contained in:
@@ -639,15 +639,47 @@ class BaileysManager extends EventEmitter {
|
||||
}
|
||||
|
||||
// Get message content
|
||||
const content = msg.message?.conversation ||
|
||||
msg.message?.extendedTextMessage?.text ||
|
||||
msg.message?.imageMessage?.caption ||
|
||||
msg.message?.videoMessage?.caption ||
|
||||
msg.message?.documentMessage?.caption ||
|
||||
''
|
||||
|
||||
const messageType = this.getMessageType(msg.message)
|
||||
|
||||
// Extract content based on message type
|
||||
let content = ''
|
||||
if (messageType === 'poll') {
|
||||
// For polls, store the poll data as JSON
|
||||
const pollMsg = msg.message?.pollCreationMessage || msg.message?.pollCreationMessageV3
|
||||
if (pollMsg) {
|
||||
content = JSON.stringify({
|
||||
name: pollMsg.name,
|
||||
options: pollMsg.options?.map((o: any) => o.optionName) || [],
|
||||
selectableCount: pollMsg.selectableOptionsCount || 1
|
||||
})
|
||||
}
|
||||
} else if (messageType === 'event') {
|
||||
// For events, store the event data as JSON
|
||||
const eventMsg = msg.message?.eventMessage
|
||||
if (eventMsg) {
|
||||
content = JSON.stringify({
|
||||
name: eventMsg.name,
|
||||
startDate: eventMsg.startTime ? new Date(eventMsg.startTime * 1000).toISOString() : null,
|
||||
endDate: eventMsg.endTime ? new Date(eventMsg.endTime * 1000).toISOString() : null,
|
||||
description: eventMsg.description,
|
||||
location: eventMsg.location ? {
|
||||
name: eventMsg.location.name,
|
||||
address: eventMsg.location.address,
|
||||
latitude: eventMsg.location.degreesLatitude,
|
||||
longitude: eventMsg.location.degreesLongitude
|
||||
} : null
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// Default content extraction
|
||||
content = msg.message?.conversation ||
|
||||
msg.message?.extendedTextMessage?.text ||
|
||||
msg.message?.imageMessage?.caption ||
|
||||
msg.message?.videoMessage?.caption ||
|
||||
msg.message?.documentMessage?.caption ||
|
||||
''
|
||||
}
|
||||
|
||||
// Skip unknown message types with no content (likely internal messages)
|
||||
if (messageType === 'unknown' && !content) {
|
||||
console.log(`[BaileysManager] Skipping unknown message type with no content`)
|
||||
@@ -709,8 +741,10 @@ class BaileysManager extends EventEmitter {
|
||||
if (message.audioMessage) return 'audio'
|
||||
if (message.documentMessage) return 'document'
|
||||
if (message.stickerMessage) return 'sticker'
|
||||
if (message.contactMessage) return 'contact'
|
||||
if (message.contactMessage || message.contactsArrayMessage) return 'contact'
|
||||
if (message.locationMessage) return 'location'
|
||||
if (message.pollCreationMessage || message.pollCreationMessageV3) return 'poll'
|
||||
if (message.eventMessage) return 'event'
|
||||
return 'unknown'
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user