2021-02-06 22:36:34 +01:00
|
|
|
const glob = require("fast-glob");
|
|
|
|
const fs = require("fs");
|
|
|
|
|
|
|
|
(function createGlobalDataFile() {
|
|
|
|
const files = glob.sync([
|
|
|
|
"_data/{comunidades,provincias}/*.json",
|
|
|
|
"_data/general.json",
|
|
|
|
]);
|
|
|
|
let all = files
|
|
|
|
.map((f) => ({
|
|
|
|
file: JSON.parse(fs.readFileSync(f, "utf8")),
|
|
|
|
territorio_id: /^_data.*\/(.*)\.json$/.exec(f)[1],
|
|
|
|
}))
|
|
|
|
.map(({ file, territorio_id }) => ({
|
|
|
|
territorio_id,
|
|
|
|
territorio: file.name,
|
|
|
|
webs: file.webs,
|
|
|
|
}))
|
|
|
|
.map(({ territorio_id, territorio, webs }) =>
|
|
|
|
webs.map((w) => ({
|
|
|
|
territorio_id,
|
|
|
|
territorio,
|
|
|
|
url: w.url,
|
|
|
|
name: w.name,
|
|
|
|
twitter: w.twitter,
|
|
|
|
results: JSON.parse(
|
|
|
|
fs.readFileSync(
|
2021-02-06 22:49:22 +01:00
|
|
|
`_data/results/${w.url.replace(new RegExp("\\.", "g"), "!")}.json`,
|
2021-02-06 22:36:34 +01:00
|
|
|
"utf8"
|
|
|
|
)
|
|
|
|
),
|
|
|
|
}))
|
|
|
|
)
|
|
|
|
.flat()
|
|
|
|
.map((obj) => ({
|
|
|
|
...obj,
|
|
|
|
grade: obj.results.grade,
|
|
|
|
score: obj.results.score,
|
|
|
|
tests_passed: obj.results.tests_passed,
|
2021-02-06 23:09:38 +01:00
|
|
|
state: obj.results.state,
|
2021-02-06 22:36:34 +01:00
|
|
|
}));
|
|
|
|
|
|
|
|
fs.writeFileSync("_data/all.json", JSON.stringify(all));
|
|
|
|
})();
|
|
|
|
|
2021-01-13 22:31:38 +01:00
|
|
|
module.exports = function (eleventyConfig) {
|
2021-01-14 20:04:41 +01:00
|
|
|
eleventyConfig.addPassthroughCopy("assets");
|
|
|
|
eleventyConfig.addPassthroughCopy("images");
|
2021-01-16 18:03:36 +01:00
|
|
|
|
2021-01-18 17:21:18 +01:00
|
|
|
eleventyConfig.addFilter("color", (security) => {
|
2021-01-28 19:37:25 +01:00
|
|
|
if (security.tests_passed < 5) {
|
|
|
|
return "danger";
|
|
|
|
}
|
|
|
|
|
2021-01-25 13:39:16 +01:00
|
|
|
switch (security && security.grade && security.grade[0]) {
|
2021-02-06 22:36:34 +01:00
|
|
|
case "A":
|
|
|
|
case "B":
|
2021-01-20 19:07:52 +01:00
|
|
|
return "safe";
|
2021-02-06 22:36:34 +01:00
|
|
|
case "C":
|
|
|
|
case "D":
|
|
|
|
return "moderate";
|
|
|
|
case "E":
|
|
|
|
case "F":
|
|
|
|
return "severe";
|
2021-01-18 17:21:18 +01:00
|
|
|
default:
|
2021-01-20 19:08:52 +01:00
|
|
|
return "unknown";
|
2021-01-18 17:21:18 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
eleventyConfig.addFilter("abbr", (security) => {
|
|
|
|
let abbr = "";
|
2021-01-25 13:39:16 +01:00
|
|
|
switch (security && security.grade && security.grade[0]) {
|
2021-02-06 22:36:34 +01:00
|
|
|
case "A":
|
2021-01-18 17:21:18 +01:00
|
|
|
abbr = "El sitio es muy seguro.";
|
|
|
|
break;
|
2021-02-06 22:36:34 +01:00
|
|
|
case "B":
|
2021-01-18 17:21:18 +01:00
|
|
|
abbr = "El sitio es seguro.";
|
|
|
|
break;
|
2021-02-06 22:36:34 +01:00
|
|
|
case "C":
|
|
|
|
abbr = "El sitio podría mejorar su seguridad.";
|
2021-01-18 17:21:18 +01:00
|
|
|
break;
|
2021-02-06 22:36:34 +01:00
|
|
|
case "D":
|
|
|
|
abbr = "El sitio debería mejorar su seguridad.";
|
2021-01-18 17:21:18 +01:00
|
|
|
break;
|
2021-02-06 22:36:34 +01:00
|
|
|
case "E":
|
|
|
|
abbr = "El sitio es inseguro.";
|
2021-01-18 17:21:18 +01:00
|
|
|
break;
|
2021-02-06 22:36:34 +01:00
|
|
|
case "F":
|
|
|
|
abbr = "El sitio es muy inseguro.";
|
2021-01-18 17:21:18 +01:00
|
|
|
break;
|
|
|
|
default:
|
2021-01-18 17:43:58 +01:00
|
|
|
return "Desconocido.";
|
2021-01-16 18:03:36 +01:00
|
|
|
}
|
2021-01-18 17:21:18 +01:00
|
|
|
|
2021-02-01 23:05:25 +01:00
|
|
|
abbr += ` Pasó ${security.tests_passed} de las ${security.tests_quantity} comprobaciones realizadas`;
|
2021-01-18 17:21:18 +01:00
|
|
|
return abbr;
|
2021-01-16 18:03:36 +01:00
|
|
|
});
|
2021-01-16 20:17:40 +01:00
|
|
|
|
2021-02-06 23:09:38 +01:00
|
|
|
eleventyConfig.addFilter("urlEncode", (value) => encodeURIComponent(value));
|
2021-02-06 22:36:34 +01:00
|
|
|
|
2021-02-06 23:09:38 +01:00
|
|
|
eleventyConfig.addFilter("testsPassedLt", (value, testsPassed) =>
|
|
|
|
value.filter((v) => v.tests_passed < testsPassed)
|
|
|
|
);
|
2021-02-06 22:36:34 +01:00
|
|
|
|
2021-02-06 23:09:38 +01:00
|
|
|
eleventyConfig.addFilter("scoreGt", (value, score) =>
|
|
|
|
value.filter((v) => v.score > score)
|
|
|
|
);
|
|
|
|
|
|
|
|
eleventyConfig.addFilter("filterByTerritorioId", (value, territorio_id) =>
|
|
|
|
value.filter((v) => v.territorio_id === territorio_id)
|
|
|
|
);
|
2021-01-13 22:31:38 +01:00
|
|
|
};
|