Actualizar robot.js
This commit is contained in:
27
robot.js
27
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;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user