diff --git a/robot.js b/robot.js index 5e8cf0b..38a79a3 100644 --- a/robot.js +++ b/robot.js @@ -106,28 +106,27 @@ async function runMultiasistencia(ownerId, user, pass) { data.phone_fixed = (bodyText.match(/[6789]\d{8}/) || [])[0] || ""; data.description_fixed = findNeighbor(['DESCRIPCIÓN', 'DAÑOS', 'AVERÍA']); - // --- 2. ASPIRADORA INTELIGENTE (Tablas) --- - const rows = document.querySelectorAll('tr'); - rows.forEach(row => { - const cells = Array.from(row.querySelectorAll('td')); - for (let i = 0; i < cells.length - 1; i++) { - let key = cells[i].innerText.trim().replace(':', ''); - let val = cells[i+1]?.innerText.trim(); + // ... dentro del evaluate de Multiasistencia ... +const rows = document.querySelectorAll('tr'); +rows.forEach(row => { + const cells = Array.from(row.querySelectorAll('td')); + for (let i = 0; i < cells.length - 1; i++) { + let key = cells[i].innerText.trim().replace(':', ''); + let val = cells[i+1]?.innerText.trim(); - // FILTRO DE SEGURIDAD PARA ETIQUETAS - // 1. La clave no puede ser larguísima (eso es una descripción o dirección) - if (key.length > 35) continue; - // 2. La clave no puede contener dígitos (ej: "28001" no es una clave) - if (/\d/.test(key) && key.length > 10) continue; - // 3. La clave no debe empezar por tipo de vía - if (/^(CL|AV|PZ|UR|CJ)\s/.test(key.toUpperCase())) continue; - - if (key.length > 2 && val && val.length > 0) { - // Guardamos normalizando la clave - data[key] = val; - } - } - }); + // ❌ FILTRO ANTIBASURA: + // Si la "clave" es muy larga (más de 30 caracteres), + // probablemente es una dirección o un nombre, NO una etiqueta. + if (key.length > 30 || key.length < 2) continue; + + // Si la clave contiene números y espacios, probablemente es una dirección + if (/\d/.test(key) && key.includes(' ')) continue; + + if (val && val.length > 0) { + data[key] = val; + } + } +}); return data; });