Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions .github/workflows/deploy-functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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'
});

Expand Down Expand Up @@ -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'
Expand Down
15 changes: 8 additions & 7 deletions functions/src/functions/scraping-functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down Expand Up @@ -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`);
Expand Down
2 changes: 1 addition & 1 deletion packages/db/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"scraping-cuenca-cantabrico": "*",
"scraping-cuenca-catalana": "*",
"scraping-cuenca-duero": "*",
"scraping-cuenca-guadalquivir": "*",

"scraping-cuenca-jucar": "*",
"scraping-cuenca-mediterranea": "*"
},
Expand Down
63 changes: 8 additions & 55 deletions packages/db/src/dals/embalses/embalses.repository.ts
Original file line number Diff line number Diff line change
@@ -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";

Expand Down Expand Up @@ -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<boolean> => {
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<boolean> => {
const embalsesJucar = await scrapeCuencaJucar();
Expand Down