diff options
Diffstat (limited to 'helper.js')
-rw-r--r-- | helper.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/helper.js b/helper.js new file mode 100644 index 0000000..0e1df41 --- /dev/null +++ b/helper.js @@ -0,0 +1,31 @@ +require("dotenv").config(); +const db = require("./db"); +const fs = require("fs").promises; + +async function main() { + let studs = await fs.readFile(__dirname + "/studs.csv", "utf8"); + const users = await db.query("SELECT id, username, name, surname FROM users"); + for (const user of users) { + studs = studs.replaceAll(`;${user.username};`, `;${user.id};`); + studs = studs.replaceAll(`${user.username};`, `${user.name} ${user.surname};`); + } + await fs.writeFile(__dirname + "/studsfix.csv", studs, "utf8"); + const json = await ssvToObj(studs); + await fs.writeFile(__dirname + "/progs.json", JSON.stringify(json), "utf8"); + console.log("Finished!"); +} + +async function ssvToObj(ssv) { + const obj = {}; + const lines = ssv.split("\n").slice(1, -1); + for (const line of lines) { + const [t, u, c] = line.split(";"); + if (obj.hasOwnProperty(u)) obj[u].push(`${c} - ${t}`); + else obj[u] = [`${c} - ${t}`]; + } + return obj; +} + +main() + .then(() => process.exit()) + .catch(console.error); |