From f69eb125f66fd02fdf309dd5b4f83ee6365b34b8 Mon Sep 17 00:00:00 2001 From: Nulo Date: Thu, 30 Jan 2025 20:43:39 -0300 Subject: [PATCH] use socks proxy instead --- .github/workflows/sepa-precios-archiver.yml | 2 +- sepa/archiver.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sepa-precios-archiver.yml b/.github/workflows/sepa-precios-archiver.yml index ac65a47..1b2c1fa 100644 --- a/.github/workflows/sepa-precios-archiver.yml +++ b/.github/workflows/sepa-precios-archiver.yml @@ -27,7 +27,7 @@ jobs: B2_BUCKET_NAME: ${{ secrets.B2_BUCKET_NAME }} B2_BUCKET_KEY_ID: ${{ secrets.B2_BUCKET_KEY_ID }} B2_BUCKET_KEY: ${{ secrets.B2_BUCKET_KEY }} - DATOS_PRODUCCION_GOB_AR: https://proxy-datos-produccion-gob-ar.nulo.in + PROXY_URI: ${{ secrets.PROXY_URI }} run: | cd sepa bun install --frozen-lockfile diff --git a/sepa/archiver.ts b/sepa/archiver.ts index fce9fec..a267384 100644 --- a/sepa/archiver.ts +++ b/sepa/archiver.ts @@ -25,6 +25,8 @@ const B2_BUCKET_KEY = checkEnvVariable("B2_BUCKET_KEY"); const DATOS_PRODUCCION_GOB_AR = process.env.DATOS_PRODUCCION_GOB_AR || "https://datos.produccion.gob.ar"; +const PROXY_URI = process.env.PROXY_URI; +const CURL_PROXY_ARG = PROXY_URI ? `-x${PROXY_URI}` : ""; const processUrl = (url: string) => url.replace(/^https:\/\/datos\.produccion\.gob\.ar/, DATOS_PRODUCCION_GOB_AR); @@ -42,7 +44,7 @@ async function getRawDatasetInfo(attempts = 0) { const url = processUrl( "https://datos.produccion.gob.ar/api/3/action/package_show?id=sepa-precios" ); - return await $`curl -L ${url}`.json(); + return await $`curl ${CURL_PROXY_ARG} -L ${url}`.json(); } catch (error) { if (attempts >= 4) { console.error( @@ -146,7 +148,7 @@ for (const resource of datasetInfo.result.resources) { try { const zip = join(dir, "zip"); const url = processUrl(resource.url); - await $`curl --retry 8 --retry-delay 5 --retry-all-errors -L -o ${zip} ${url}`; + await $`curl ${CURL_PROXY_ARG} --retry 8 --retry-delay 5 --retry-all-errors -L -o ${zip} ${url}`; await $`unzip ${zip} -d ${dir}`; await rm(zip); @@ -174,7 +176,7 @@ for (const resource of datasetInfo.result.resources) { const fileName = `${resource.id}-${basename(resource.url)}`; if (await checkFileExistsInB2(fileName)) continue; console.log(`⬇️ Downloading and reuploading ${resource.url}`); - const response = await $`curl -L ${resource.url}`.blob(); + const response = await $`curl ${CURL_PROXY_ARG} -L ${resource.url}`.blob(); await uploadToB2Bucket(fileName, response); }