Untitled
unknown
javascript
2 years ago
1.9 kB
4
Indexable
const start = Date.now(); const fs = require("fs"); const fileContents = fs.readFileSync("cui.txt", "utf8"); const lines = fileContents.split("\n"); const nCUI = lines.length; function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); } async function fetchData() { let output = {}; for (let i = 0; i < nCUI; i++) { if (!output[lines[i]]) { output[lines[i]] = {}; } for (let j = 0; j < 5; j++) { console.log( `DONE: (${i}/${nCUI})\nCURRENT CUI: ${lines[i]}\nPROGRESS: (${ j + 1 }/5)\nELAPSED: ${(Date.now() - start) / 1000}s` ); const year = 2017 + j; const url = 'probably dont wanna show this' try { const data = await fetch(url).then((response) => response.json()); if (!output[lines[i]][year]) { output[lines[i]][year] = []; } output[lines[i]][year].push(data); } catch (error) { console.error("ERROR: " + error + "CONTINUING"); } sleep(1000) } } const reformattedData = reformatData(output); fs.writeFileSync("output.json", JSON.stringify(reformattedData, null, 2), { flag: "w", }); } function reformatData(data) { const reformattedData = {}; Object.keys(data).forEach((key) => { reformattedData[key] = {}; Object.keys(data[key]).forEach((year) => { reformattedData[key][year] = data[key][year].map((item) => { const indicators = {}; item.i.forEach((indicator) => { indicators[indicator.val_den_indicator] = indicator.val_indicator; }); const { i, ...rest } = item; return { ...rest, ...indicators, }; }); }); }); return reformattedData; } fetchData();
Editor is loading...