// handlers.js import fs from 'fs/promises'; import { log } from './logger.js'; // Ya no se necesitan: sendText, fetchChatMessages, setTypingStatus, askGemini aquí import { processMessage } from './utils/processMessage.js'; import { saveMedia } from './utils/saveMedia.js'; import { respuestaNormal } from './respuesta/respuestaNormal.js'; // <- NUEVA IMPORTACIÓN /* carpeta raíz donde saveMedia deja todo */ const MEDIA_DIR = '/media'; await fs.mkdir(MEDIA_DIR, { recursive: true }); // La función cleanForGemini se movió a respuestaNormal.js export async function processIncoming(raw) { // Guarda media si no es un mensaje de texto plano if (raw.type !== 'chat') { try { // Nota: saveMedia podría necesitar acceso a MEDIA_DIR si no está codificado internamente await saveMedia(raw /*, MEDIA_DIR */); // Podrías necesitar pasar MEDIA_DIR si saveMedia lo requiere } catch (error) { log('error', 'Error guardando media:', error); } } const msg = processMessage(raw); const text = msg.text || ''; /* ----- comando @nucleo ----- */ if (/^@nucleo(\s|$)/i.test(text)) { // Llama a la función importada await respuestaNormal(msg); // <- LLAMADA A LA FUNCIÓN EXTERNA } else { // Lógica para otros mensajes (si aplica) // log('debug', 'Mensaje recibido no es comando @nucleo:', text); } }