From 59ef1c72e45a61635d157852cf64ac23e97307b4 Mon Sep 17 00:00:00 2001 From: marsalva Date: Thu, 20 Aug 2026 16:24:11 +0000 Subject: [PATCH] REVERT: restaura robot.js al estado anterior a los cambios de hoy --- robot.js | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/robot.js b/robot.js index 207550f..7efadf1 100644 --- a/robot.js +++ b/robot.js @@ -119,14 +119,9 @@ async function runMultiasistencia(ownerId, user, pass) { if(desc) return desc; // Intento 2: Buscar en el cuerpo general si falla la tabla - // 馃┕ FIX: antes se cortaba en el PRIMER salto de l铆nea que hubiera despu茅s - // de "Descripci贸n" ([^\n]+), as铆 que muchas veces el texto quedaba a medias. - // Ahora cogemos todo el texto hasta la siguiente etiqueta de campo conocida - // (o una l铆nea en blanco), con un l铆mite de seguridad por si no encuentra ninguna. const body = document.body.innerText; - const match = body.match(/Descripci贸n\s*[:\-]?\s*([\s\S]*?)(?:\n\s*\n|Observaciones|Direcci贸n|Domicilio|Poblaci贸n|Localidad|Tel[e茅]fono[s]?|Fecha|Reparador|Gremio|C\.?P\.?\b|$)/i); - if (!match) return ""; - return match[1].replace(/[ \t]+/g, ' ').trim().substring(0, 3000); + const match = body.match(/Descripci贸n\s*[:\-]?\s*([^\n]+)/i); + return match ? match[1].trim() : ""; } // Extracci贸n m谩s precisa @@ -236,30 +231,15 @@ async function saveServiceToDB(ownerId, provider, ref, data) { const exists = await pool.query("SELECT id FROM services WHERE company_ref = $1 AND owner_id = $2", [ref, ownerId]); if (exists.rowCount > 0) return; - // 馃┕ FIX: el panel web lee los campos en espa帽ol (Nombre Cliente, Tel茅fono, - // Direcci贸n, Descripci贸n). Los extractores de arriba devuelven claves en - // ingl茅s (clientName, phone, address, description), as铆 que sin este mapeo - // el expediente se guardaba bien en la base de datos pero aparec铆a vac铆o - // ("Asegurado Sin Nombre") en el panel hasta que alguien lo abr铆a y lo - // guardaba a mano. Mantenemos tambi茅n las claves originales por si algo - // m谩s las usa. - const normalizedData = { - ...data, - "Nombre Cliente": data.clientName || data["Nombre Cliente"] || "", - "Tel茅fono": data.phone || data["Tel茅fono"] || "", - "Direcci贸n": data.address || data["Direcci贸n"] || "", - "Descripci贸n": data.description || data["Descripci贸n"] || "" - }; - // Verificar si ya existe en buz贸n, si existe ACTUALIZAMOS los datos (por si hemos mejorado el scraping) - console.log(`馃捑 Guardando/Actualizando: ${ref} (${normalizedData["Direcci贸n"]})`); - + console.log(`馃捑 Guardando/Actualizando: ${ref} (${data.address})`); + await pool.query(` INSERT INTO scraped_services (owner_id, provider, service_ref, raw_data, status) VALUES ($1, $2, $3, $4, 'pending') - ON CONFLICT (owner_id, provider, service_ref) + ON CONFLICT (owner_id, provider, service_ref) DO UPDATE SET raw_data = EXCLUDED.raw_data, created_at = NOW() - `, [ownerId, provider, ref, JSON.stringify(normalizedData)]); + `, [ownerId, provider, ref, JSON.stringify(data)]); } main(); \ No newline at end of file