mirror of
https://github.com/catdevnull/transicion-desordenada-diablo
synced 2024-11-15 02:21:39 +00:00
patchear www.ign.gob.ar
This commit is contained in:
parent
3327fb53c7
commit
3dd7366c88
1 changed files with 14 additions and 6 deletions
|
@ -7,8 +7,6 @@ import { pipeline } from "node:stream/promises";
|
||||||
// FYI: al menos los siguientes dominios no tienen la cadena completa de certificados en HTTPS. tenemos que usar un hack (node_extra_ca_certs_mozilla_bundle) para conectarnos a estos sitios. (se puede ver con ssllabs.com) ojalá lxs administradorxs de estos servidores lo arreglen.
|
// FYI: al menos los siguientes dominios no tienen la cadena completa de certificados en HTTPS. tenemos que usar un hack (node_extra_ca_certs_mozilla_bundle) para conectarnos a estos sitios. (se puede ver con ssllabs.com) ojalá lxs administradorxs de estos servidores lo arreglen.
|
||||||
// www.enargas.gov.ar, transparencia.enargas.gov.ar, www.energia.gob.ar, www.economia.gob.ar, datos.yvera.gob.ar
|
// www.enargas.gov.ar, transparencia.enargas.gov.ar, www.energia.gob.ar, www.economia.gob.ar, datos.yvera.gob.ar
|
||||||
|
|
||||||
// TODO: revisar por qué falla http://www.ign.gob.ar/descargas/geodatos/CSV/ign_municipio.csv
|
|
||||||
|
|
||||||
setGlobalDispatcher(
|
setGlobalDispatcher(
|
||||||
new Agent({
|
new Agent({
|
||||||
pipelining: 0,
|
pipelining: 0,
|
||||||
|
@ -45,7 +43,7 @@ const jobs = parsed.dataset.flatMap((dataset) =>
|
||||||
dataset.distribution.map((dist) => ({
|
dataset.distribution.map((dist) => ({
|
||||||
dataset,
|
dataset,
|
||||||
dist,
|
dist,
|
||||||
url: new URL(dist.downloadURL),
|
url: patchUrl(new URL(dist.downloadURL)),
|
||||||
}))
|
}))
|
||||||
);
|
);
|
||||||
const totalJobs = jobs.length;
|
const totalJobs = jobs.length;
|
||||||
|
@ -133,9 +131,7 @@ async function downloadDistWithRetries(job, tries = 0) {
|
||||||
/**
|
/**
|
||||||
* @argument {DownloadJob} job
|
* @argument {DownloadJob} job
|
||||||
*/
|
*/
|
||||||
async function downloadDist({ dist, dataset }) {
|
async function downloadDist({ dist, dataset, url }) {
|
||||||
const url = new URL(dist.downloadURL);
|
|
||||||
|
|
||||||
// sharepoint no le gusta compartir a bots lol
|
// sharepoint no le gusta compartir a bots lol
|
||||||
const spoofUserAgent = url.host.endsWith("sharepoint.com");
|
const spoofUserAgent = url.host.endsWith("sharepoint.com");
|
||||||
|
|
||||||
|
@ -223,3 +219,15 @@ function encodeError(error) {
|
||||||
return { kind: "generic_error", error: error.code || error.message };
|
return { kind: "generic_error", error: error.code || error.message };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* parchea URLs que se rompen solas
|
||||||
|
* @param {URL} url
|
||||||
|
*/
|
||||||
|
function patchUrl(url) {
|
||||||
|
if (url.host === "www.ign.gob.ar") {
|
||||||
|
// por defecto, 'http://www.ign.gob.ar' redirige a 'https://ign.gob.ar' pero su certificado solo aplica para '*.ign.gob.ar'. se sirve todo el contenido correctamente en 'https://www.ign.gob.ar', así que vamos para ahí.
|
||||||
|
url.protocol = "https:";
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue