Actualizar robot.js

This commit is contained in:
2026-02-13 23:24:59 +00:00
parent 41e4032883
commit 3f40f88f33

View File

@@ -158,24 +158,50 @@ async function runHomeserve(ownerId, user, pass) {
const link = await page.getByText(ref).first();
if (await link.isVisible()) {
await link.click(); await page.waitForTimeout(1500);
const fullData = await page.evaluate(() => {
const d = {};
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().replace(':', '');
const v = cells[1].innerText.trim();
if(k.length > 1 && v.length > 0) d[k] = v;
}
if(cells.length >= 4) {
const k2 = cells[2].innerText.toUpperCase().trim().replace(':', '');
const v2 = cells[3].innerText.trim();
if(k2.length > 1 && v2.length > 0) d[k2] = v2;
}
});
return d;
// ... dentro de la función runHomeserve, en el evaluate del detalle:
const fullData = await page.evaluate(() => {
const d = {};
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 v = cells[1].innerText.trim();
// Si es la celda de COMENTARIOS (donde está el textarea)
if (k.includes("COMENTARIOS")) {
const textarea = cells[1].querySelector('textarea');
if (textarea) {
const rawText = textarea.value;
const lines = rawText.split('\n');
// FILTRO QUIRÚRGICO DE LÍNEAS
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
return true;
});
// Nos quedamos con las 3 primeras líneas útiles (que suelen ser la 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;
}
}
});
return d;
});
if (fullData) await saveServiceToDB(ownerId, 'homeserve', ref, fullData);
}
} catch (errRef) { console.error(`⚠️ Error ref ${ref}`); }