userPFP/.github/scripts/convert/index.mjs

41 lines
No EOL
1,022 B
JavaScript

import { readFile, writeFile } from "fs/promises";
import { join } from "path";
import { format } from "prettier";
console.time("Done");
console.log("Reading avatarsdatabase.css...");
const avis = (await readFile(join("../../", "avatarsdatabase.css"), "utf8"))
.replace(/\r/g, "")
.split("\n");
const imageMatcher = /url\((?:'|")([^'"]+)(?:'|")\)/;
const avatarMatcher = /^\/\* Custom avatar for ([0-9]+) \*\/$/;
const badgeMatcher = /^\/\* Custom badge for (.*?) \*\/$/;
const avatars = {};
for (let i = 0; i < avis.length; i++) {
const l = avis[i];
const id = l.match(avatarMatcher)?.[1];
if (id) avatars[id] = avis[i + 2].match(imageMatcher)[1];
}
const badges = {};
for (let i = 0; i < avis.length; i++) {
const l = avis[i];
const bid = l.match(badgeMatcher)?.[1];
if (bid) badges[bid] = avis[i + 10].match(imageMatcher)[1];
}
await writeFile(
join("../../", "db", "datadesktop.json"),
format(
JSON.stringify({
avatars,
badges,
}),
{
parser: "json",
}
)
);