Created script to capture a map for each council
This commit is contained in:
52
map-generator/capture-all-maps.js
Normal file
52
map-generator/capture-all-maps.js
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const { exec } = require('child_process');
|
||||||
|
|
||||||
|
var widthArgument = process.argv.at(2);
|
||||||
|
if (!widthArgument) {
|
||||||
|
console.log("Defaulting to width of 1080")
|
||||||
|
width = 1080;
|
||||||
|
} else {
|
||||||
|
width = parseInt(widthArgument);
|
||||||
|
if (isNaN(width)) {
|
||||||
|
console.log("Invalid width provided");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var heightArgument = process.argv.at(3);
|
||||||
|
if (!heightArgument) {
|
||||||
|
console.log("Defaulting to height of 720")
|
||||||
|
height = 720;
|
||||||
|
} else {
|
||||||
|
height = parseInt(heightArgument);
|
||||||
|
if (isNaN(height)) {
|
||||||
|
console.log("Invalid height provided");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var dataPathArgument = process.argv.at(4);
|
||||||
|
if (!dataPathArgument) {
|
||||||
|
console.log("Invalid data path provided");
|
||||||
|
exit(1);
|
||||||
|
} else {
|
||||||
|
dataPath = dataPathArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sleep(ms) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
setTimeout(resolve, ms);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
var councils = JSON.parse(fs.readFileSync('../council_names.json', 'utf8'));
|
||||||
|
|
||||||
|
for (const council of councils) {
|
||||||
|
console.log("Generating map for " + council.slug + "...");
|
||||||
|
exec("node ./capture-map.js " + council.slug + " " + width + " " + height + " " + dataPath + "/" + council.slug + "/map.jpg");
|
||||||
|
|
||||||
|
// Need to slow down requests to avoid overloading the system...
|
||||||
|
await sleep(1000);
|
||||||
|
}
|
||||||
|
})();
|
||||||
12
map-generator/package-lock.json
generated
12
map-generator/package-lock.json
generated
@@ -5,6 +5,8 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"child_process": "^1.0.2",
|
||||||
|
"fs": "^0.0.1-security",
|
||||||
"polylabel": "^2.0.1",
|
"polylabel": "^2.0.1",
|
||||||
"puppeteer-core": "^23.1.0"
|
"puppeteer-core": "^23.1.0"
|
||||||
}
|
}
|
||||||
@@ -201,6 +203,11 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/child_process": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g=="
|
||||||
|
},
|
||||||
"node_modules/chromium-bidi": {
|
"node_modules/chromium-bidi": {
|
||||||
"version": "0.6.4",
|
"version": "0.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.4.tgz",
|
||||||
@@ -386,6 +393,11 @@
|
|||||||
"pend": "~1.2.0"
|
"pend": "~1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/fs": {
|
||||||
|
"version": "0.0.1-security",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||||
|
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||||
|
},
|
||||||
"node_modules/fs-extra": {
|
"node_modules/fs-extra": {
|
||||||
"version": "11.2.0",
|
"version": "11.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"child_process": "^1.0.2",
|
||||||
|
"fs": "^0.0.1-security",
|
||||||
"polylabel": "^2.0.1",
|
"polylabel": "^2.0.1",
|
||||||
"puppeteer-core": "^23.1.0"
|
"puppeteer-core": "^23.1.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,3 +13,5 @@ To automatically compile the `src.js` file after every edit, run `webpack-cli --
|
|||||||
Changes to `dist/main.js` should be committed so that other users don't need to install node.
|
Changes to `dist/main.js` should be committed so that other users don't need to install node.
|
||||||
|
|
||||||
The `capture-map.js` script can be used to capture an image of the map. It accepts 4 arguments, the council name, width, height, and output path. For example `node .\capture-map.js brimbank 900 500 ../../spl-data/brimbank/map.jpg` would capture a map of Brimbank City Council and place a file named `map.jpg` in the `../../spl-data/brimbank/` folder.
|
The `capture-map.js` script can be used to capture an image of the map. It accepts 4 arguments, the council name, width, height, and output path. For example `node .\capture-map.js brimbank 900 500 ../../spl-data/brimbank/map.jpg` would capture a map of Brimbank City Council and place a file named `map.jpg` in the `../../spl-data/brimbank/` folder.
|
||||||
|
|
||||||
|
The `capture-all-maps.js` script can be used to capture an image for each council. It accepts 3 arguments, width, height, and the path to the `spl-data` repo. For example `node .\capture-all-maps.js 900 500 ../../spl-data` would capture a map of each council and put it in the spl-data repo in the appropriate folder.
|
||||||
Reference in New Issue
Block a user