diff --git a/robot.js b/robot.js index 3a941e6..5efc28e 100644 --- a/robot.js +++ b/robot.js @@ -160,43 +160,42 @@ async function runHomeserve(ownerId, user, pass) { await link.click(); await page.waitForTimeout(1500); // ... dentro de la función runHomeserve, en el evaluate del detalle: +// ... dentro de la función runHomeserve ... + const fullData = await page.evaluate(() => { const d = {}; - const rows = Array.from(document.querySelectorAll('tr')); + const clean = (t) => t ? t.replace(/\s+/g, ' ').trim() : ""; + // 1. EXTRAER CAMPOS NORMALES (CLIENTE, DOMICILIO, ETC.) + const rows = Array.from(document.querySelectorAll('tr')); rows.forEach(r => { const cells = r.querySelectorAll('td'); if (cells.length >= 2) { - const k = cells[0].innerText.toUpperCase().trim(); + const k = cells[0].innerText.toUpperCase().trim().replace(':', ''); const v = cells[1].innerText.trim(); - // Si es la celda de COMENTARIOS (donde está el textarea) + // 2. CAPTURA ESPECIAL DEL CUADRO DE COMENTARIOS (LA DESCRIPCIÓN) if (k.includes("COMENTARIOS")) { const textarea = cells[1].querySelector('textarea'); if (textarea) { - const rawText = textarea.value; - const lines = rawText.split('\n'); + const lines = textarea.value.split('\n'); - // FILTRO QUIRÚRGICO DE LÍNEAS + // Filtro inteligente para quitar basura de sistema const cleanLines = lines.filter(line => { const l = line.toUpperCase(); - // Descartamos basura del sistema if (l.includes("CAMBIO DE ESTADO")) return false; if (l.includes("ESTADO ASIGNADO")) return false; if (l.includes("SMS NO ENVIADO")) return false; if (l.includes("CONTACTO CON PROF")) return false; - if (l.includes("CITA CONFIRMADA")) return false; - if (l.includes("0000")) return false; // Líneas vacías de sistema + if (l.includes("0000")) return false; return true; }); - // Nos quedamos con las 3 primeras líneas útiles (que suelen ser la descripción) + // Guardamos las primeras líneas útiles como "Descripción" d['Descripción'] = cleanLines.slice(0, 3).join('\n').trim(); } - } else { - // Captura normal de otros campos (CLIENTE, DOMICILIO, etc.) - const cleanKey = k.replace(':', ''); - if (cleanKey.length > 1) d[cleanKey] = v; + } else if (k.length > 1 && v.length > 0 && !k.includes("MENU")) { + d[k] = v; } } });