Skip to content

Commit ca426c1

Browse files
committed
added make-config script and fixed curl
1 parent 09767a6 commit ca426c1

File tree

3 files changed

+47
-9
lines changed

3 files changed

+47
-9
lines changed

.github/workflows/update.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ jobs:
2020
uses: actions/checkout@v2
2121
- name: Fetch data
2222
run: |-
23-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=localities" -o "raw-data/localities.csv"
24-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=layers" -o "raw-data/layers.csv"
25-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=sheets" -o "raw-data/sheets.csv"
26-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=authors" -o "raw-data/authors.csv"
27-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=sources" -o "raw-data/sources.csv"
28-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=statuses" -o "raw-data/statuses.csv"
29-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=groups" -o "raw-data/groups.csv"
30-
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=translations" -o "raw-data/translations.csv"
23+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=localities" -o "raw-data/localities.csv"
24+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=layers" -o "raw-data/layers.csv"
25+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=sheets" -o "raw-data/sheets.csv"
26+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=authors" -o "raw-data/authors.csv"
27+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=sources" -o "raw-data/sources.csv"
28+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=statuses" -o "raw-data/statuses.csv"
29+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=groups" -o "raw-data/groups.csv"
30+
curl "https://docs.google.com/spreadsheets/d/1e7A-maXjmzd0lRcpZpeqjOmfRTZUZMOaxSYQaz_sr8I/gviz/tq?tqx=out:csv&sheet=translations" -o "raw-data/translations.csv"
3131
- name: Process data
3232
run: |-
3333
git diff --quiet raw-data/ || deno run --allow-read --allow-write --unstable scripts/make-places.js

scripts/config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ export const locs_path = "raw-data/localities.csv";
22
export const places_path = "data/places.json";
33
export const redirect_path = "data/redirects.json";
44
export const layers_path = "data/layers.json";
5-
export const sheets_path = "data/sheets.json";
5+
export const sheets_path = "data/sheets.json";
6+
export const config_path = "data/config.json";

scripts/make-config.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { readTXT, writeJSON } from 'https://deno.land/x/flat@0.0.15/mod.ts';
2+
import { csvParse, autoType } from "https://unpkg.com/d3-dsv@3.0.1/src/index.js";
3+
import { config_path } from "./config.js";
4+
5+
const keys = ["authors", "groups", "layers", "sources", "statuses", "translations"];
6+
const parseForBoolean = (val) => val === "TRUE" ? true : val === "FALSE" ? false : val;
7+
8+
const config = {};
9+
10+
for (const key of keys) {
11+
const path = `raw-data/${key}.csv`;
12+
console.log(`Reading ${path}`);
13+
const data = csvParse(await readTXT(path), autoType);
14+
15+
config[key] = data.map(d => {
16+
const row = {};
17+
for (const col of data.columns) {
18+
const arr = col.match(/(?<=\[)\d*(?=\])/);
19+
if (Array.isArray(arr)) {
20+
const key = col.split("[")[0];
21+
if (arr[0] === "") row[key] = d[col].split(", ");
22+
else {
23+
if (!row[key]) row[key] = [];
24+
row[key][arr[0]] = parseForBoolean(d[col]);
25+
}
26+
} else row[col] = parseForBoolean(d[col]);
27+
}
28+
const newCols = Object.keys(row);
29+
for (const col of newCols) {
30+
if (Array.isArray(row[col]) && row[col].every(d => !d)) row[col] = null;
31+
}
32+
return row;
33+
});
34+
}
35+
36+
writeJSON(config_path, config);
37+
console.log(`Wrote ${config_path}`);

0 commit comments

Comments
 (0)