diff --git a/.github/workflows/deploy-functions.yml b/.github/workflows/deploy-functions.yml index 6ae0805..66a1cf9 100644 --- a/.github/workflows/deploy-functions.yml +++ b/.github/workflows/deploy-functions.yml @@ -58,7 +58,7 @@ jobs: cp -R integrations/scraping-cuenca-cantabrico deploy/integrations/scraping-cuenca-cantabrico cp -R integrations/scraping-cuenca-catalana deploy/integrations/scraping-cuenca-catalana cp -R integrations/scraping-cuenca-duero deploy/integrations/scraping-cuenca-duero - cp -R integrations/scraping-cuenca-guadalquivir deploy/integrations/scraping-cuenca-guadalquivir + cp -R integrations/scraping-cuenca-jucar deploy/integrations/scraping-cuenca-jucar # Strip devDependencies and rewrite workspace refs to file: paths @@ -82,7 +82,7 @@ jobs: 'scraping-cuenca-cantabrico': 'file:../../integrations/scraping-cuenca-cantabrico', 'scraping-cuenca-catalana': 'file:../../integrations/scraping-cuenca-catalana', 'scraping-cuenca-duero': 'file:../../integrations/scraping-cuenca-duero', - 'scraping-cuenca-guadalquivir': 'file:../../integrations/scraping-cuenca-guadalquivir', + 'scraping-cuenca-jucar': 'file:../../integrations/scraping-cuenca-jucar' }); @@ -111,11 +111,6 @@ jobs: 'db-model': 'file:../../packages/db-model' }); - // scraping-cuenca-guadalquivir: point db-model to file: path - patchPkg('deploy/integrations/scraping-cuenca-guadalquivir/package.json', { - 'db-model': 'file:../../packages/db-model' - }); - // scraping-cuenca-jucar: point db-model to file: path patchPkg('deploy/integrations/scraping-cuenca-jucar/package.json', { 'db-model': 'file:../../packages/db-model' diff --git a/functions/src/functions/scraping-functions.ts b/functions/src/functions/scraping-functions.ts index 75bd7bc..c216549 100644 --- a/functions/src/functions/scraping-functions.ts +++ b/functions/src/functions/scraping-functions.ts @@ -29,7 +29,8 @@ export async function scrapingsFunction( const responseCuencaDuero = await embalsesRepository.actualizarCuencaDuero(); - const responseCuencaGuadalquivir = await embalsesRepository.actualizarCuencaGuadalquivir(); + // TODO: Guadalquivir disabled — requires playwright (not available in Azure Functions) + // const responseCuencaGuadalquivir = await embalsesRepository.actualizarCuencaGuadalquivir(); const responseCuencaJucar = await embalsesRepository.actualizarCuencaJucar(); @@ -66,12 +67,12 @@ export async function scrapingsFunction( "No se han podido actualizar los embalses de la cuenca Duero") } - if (responseCuencaGuadalquivir) { - context.log(`Se han actualizado los embalses de la cuenca Guadalquivir`); - } else { - context.log( - "No se han podido actualizar los embalses de la cuenca Guadalquivir") - } + // if (responseCuencaGuadalquivir) { + // context.log(`Se han actualizado los embalses de la cuenca Guadalquivir`); + // } else { + // context.log( + // "No se han podido actualizar los embalses de la cuenca Guadalquivir") + // } if (responseCuencaJucar) { context.log(`Se han actualizado los embalses de la cuenca Jucar`); diff --git a/packages/db/package.json b/packages/db/package.json index 446dbfa..67b1e94 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -28,7 +28,7 @@ "scraping-cuenca-cantabrico": "*", "scraping-cuenca-catalana": "*", "scraping-cuenca-duero": "*", - "scraping-cuenca-guadalquivir": "*", + "scraping-cuenca-jucar": "*", "scraping-cuenca-mediterranea": "*" }, diff --git a/packages/db/src/dals/embalses/embalses.repository.ts b/packages/db/src/dals/embalses/embalses.repository.ts index af44fa2..9772a22 100644 --- a/packages/db/src/dals/embalses/embalses.repository.ts +++ b/packages/db/src/dals/embalses/embalses.repository.ts @@ -1,11 +1,13 @@ import { scrapeSeedEmbalses } from "arcgis"; import { getEmbalsesContext } from "./embalses.context.js"; -import { mapperFromCuencasMediterraneaToArcgis, mapperFromCuencasCantabricoToArcgis, mapperFromCuencasCatalanaToArcgis, mapperFromCuencasDueroToArcgis, mapperFromCuencasGuadalquivirToArcgis, mapperFromCuencasJucarToArcgis } from "./embalses.mappers.js"; +import { mapperFromCuencasMediterraneaToArcgis, mapperFromCuencasCantabricoToArcgis, mapperFromCuencasCatalanaToArcgis, mapperFromCuencasDueroToArcgis, mapperFromCuencasJucarToArcgis } from "./embalses.mappers.js"; import { scrapeCuencaMediterranea } from "scraping-cuenca-mediterranea"; import { scrapeCuencaCantabrica } from 'scraping-cuenca-cantabrico'; import { integracionCuencaCatalana } from 'scraping-cuenca-catalana'; import { getEstadoCuencaDuero } from 'scraping-cuenca-duero'; -import { scrapeCuencaGuadalquivir } from 'scraping-cuenca-guadalquivir'; +// TODO: scraping-cuenca-guadalquivir uses playwright (browser automation) which is not +// available in Azure Functions. Needs rewrite to use axios/cheerio or similar. +// import { scrapeCuencaGuadalquivir } from 'scraping-cuenca-guadalquivir'; import { scrapeCuencaJucar } from 'scraping-cuenca-jucar'; import { parseDate } from "./embalses.helpers.js"; @@ -235,60 +237,11 @@ export const embalsesRepository = { return actualizados > 0; }, + // TODO: Guadalquivir disabled — requires playwright (not available in Azure Functions) + // Needs rewrite to use axios/cheerio or similar. actualizarCuencaGuadalquivir: async (): Promise => { - const embalsesGuadalquivir = await scrapeCuencaGuadalquivir(); - - console.log( - `Se han scrapeado ${embalsesGuadalquivir.length} embalses de la Cuenca Mediterránea` - ); - - let actualizados = 0; - let noEncontrados = 0; - let sinMapper = 0; - - for (const embalseGuadalquivirPorZonas of embalsesGuadalquivir) { - for (const embalse of embalseGuadalquivirPorZonas.embalses) { - const infoDestino = mapperFromCuencasGuadalquivirToArcgis.get(embalse.id); - - if (!infoDestino) { - sinMapper++; - console.warn(`Sin mapper para ID ${embalse.id} - ${embalse.nombre}`); - continue; - } - - console.log( - `🔍 Mapeando: ID scraping ${embalse.id} -> _id BD ${infoDestino.idArcgis} (${infoDestino.nombre})` - ); - - const { matchedCount } = await getEmbalsesContext().updateOne( - { _id: infoDestino.idArcgis.toString() }, - { - $set: { - aguaActualSAIH: embalse.aguaActualSAIH, - fechaMedidaAguaActualSAIH: parseDate(embalse.fechaMedidaSAIH), - }, - } - ); - - if (matchedCount > 0) { - actualizados++; - console.log( - `Actualizado: ${infoDestino.nombre} (_id: ${infoDestino.idArcgis}) -> ${embalse.aguaActualSAIH} hm³` - ); - } else { - noEncontrados++; - console.warn( - `No encontrado en BD: _id ${infoDestino.idArcgis} - ${infoDestino.nombre}` - ); - } - } - } - - console.log( - `Resumen Cuenca Duero: ${actualizados} actualizados, ${noEncontrados} no encontrados, ${sinMapper} sin mapper` - ); - - return actualizados > 0; + console.log('actualizarCuencaGuadalquivir: SKIPPED — requires playwright (not available in Azure Functions)'); + return false; }, actualizarCuencaJucar: async (): Promise => { const embalsesJucar = await scrapeCuencaJucar();