import { Command } from "commander";
import { UpdateTable } from "./table-sync";
import { BMS_TABLES } from "lib/constants/bms-tables";
const program = new Command();
program.option("-t, --table
");
program.option("-a, --all");
program.parse(process.argv);
const options = program.opts();
// I have no confidence in half of these links surviving.
// Eventually, some of these are going to disappear, and we'll have to find
// something else. probably.
const registered: any = {
insane: ["http://www.ribbit.xyz/bms/tables/insane_body.json", BMS_TABLES.insane],
normal: ["http://www.ribbit.xyz/bms/tables/normal_body.json", BMS_TABLES.normal],
stella: ["https://stellabms.xyz/st/score.json", BMS_TABLES.stella],
satellite: ["https://stellabms.xyz/sl/score.json", BMS_TABLES.satellite],
dpSatellite: ["https://stellabms.xyz/dp/score.json", BMS_TABLES.satellite],
insane2: ["http://rattoto10.jounin.jp/js/insane_data.json", BMS_TABLES.insane2],
normal2: ["http://rattoto10.jounin.jp/js/score.json", BMS_TABLES.normal2],
overjoy: ["http://lr2.sakura.ne.jp/data/score.json", BMS_TABLES.overjoy],
dpInsane: ["http://dpbmsdelta.web.fc2.com/table/data/insane_data.json", BMS_TABLES.dpInsane],
dpNormal: ["http://dpbmsdelta.web.fc2.com/table/data/dpdelta_data.json", BMS_TABLES.dpNormal],
};
(async () => {
if (options.all) {
for (const table of Object.values(registered)) {
// eslint-disable-next-line no-await-in-loop
await UpdateTable((table as any)[1], (table as any)[0]);
}
process.exit(0);
} else {
const tables = Object.keys(registered);
if (!tables.includes(options.table)) {
throw new Error(
`Invalid table ${options.table} - expected any of ${tables.join(", ")}.`
);
}
await UpdateTable(registered[options.table][1], registered[options.table][0]);
process.exit(0);
}
})();