Actualizar robot.js

This commit is contained in:
2026-03-22 13:45:30 +00:00
parent 05bf3e6426
commit 8797f0e63d

View File

@@ -31,6 +31,19 @@ function arreglarNombre(nombreRaw) {
return nombreLimpio; return nombreLimpio;
} }
// 🛡️ DESCODIFICADOR UNIVERSAL PARA HOMESERVE (Arregla los +, Ó, Ñ, etc.)
function arreglarCodificacion(texto) {
if (!texto) return "";
let limpio = texto.replace(/\+/g, ' '); // Primero cambiamos los + por espacios
try {
// Truco clásico de Javascript para transformar ISO a UTF-8
limpio = decodeURIComponent(escape(limpio));
} catch(e) {
// Si no se puede, lo dejamos con los espacios arreglados
}
return limpio.trim();
}
// NUEVO: La función ahora lee las keywords directamente del JSON de la base de datos // NUEVO: La función ahora lee las keywords directamente del JSON de la base de datos
function clasificarGremio(descripcion, gremiosActivosDB) { function clasificarGremio(descripcion, gremiosActivosDB) {
if (!descripcion || gremiosActivosDB.length === 0) return null; if (!descripcion || gremiosActivosDB.length === 0) return null;
@@ -356,7 +369,8 @@ async function runHomeserve(ownerId, user, pass, gremiosDB) {
// Quitamos los filtros destructivos que borraban el "Cambio de estado" // Quitamos los filtros destructivos que borraban el "Cambio de estado"
return !["ESTADO ASIGNADO", "SMS NO ENVIADO", "CONTACTO CON PROF", "0000"].some(b => l.includes(b)); return !["ESTADO ASIGNADO", "SMS NO ENVIADO", "CONTACTO CON PROF", "0000"].some(b => l.includes(b));
}).join('\n').trim(); }).join('\n').trim();
d['Descripción'] = cleanDesc; // Aplicamos el descodificador a la avería
d['Descripción'] = cleanDesc; // Se limpiará luego abajo
} else if (k.length > 1 && v.length > 0 && !k.includes("MENU")) { } else if (k.length > 1 && v.length > 0 && !k.includes("MENU")) {
d[k] = v; d[k] = v;
} }
@@ -378,7 +392,13 @@ async function runHomeserve(ownerId, user, pass, gremiosDB) {
}); });
if (scrapData && scrapData['Nombre Cliente']) { if (scrapData && scrapData['Nombre Cliente']) {
// 🪄 Arreglamos el nombre ANTES de guardarlo (Solo en HomeServe) // 🪄 Arreglamos la codificación alienígena de HomeServe EN TODOS LOS CAMPOS IMPORTANTES
scrapData['Nombre Cliente'] = arreglarCodificacion(scrapData['Nombre Cliente']);
scrapData['Dirección'] = arreglarCodificacion(scrapData['Dirección']);
scrapData['Población'] = arreglarCodificacion(scrapData['Población']);
scrapData['Descripción'] = arreglarCodificacion(scrapData['Descripción']);
// 🪄 Arreglamos el formato de "Apellidos, Nombre" (Solo en HomeServe)
scrapData['Nombre Cliente'] = arreglarNombre(scrapData['Nombre Cliente']); scrapData['Nombre Cliente'] = arreglarNombre(scrapData['Nombre Cliente']);
// 🛑 NUEVO: Le inyectamos los iconos que cazamos antes en la lista // 🛑 NUEVO: Le inyectamos los iconos que cazamos antes en la lista