Add matches without details script

This commit is contained in:
Kalle 2022-03-16 20:16:22 +02:00
parent 43d0e8fb78
commit a70be20a56
2 changed files with 52 additions and 1 deletions

View File

@ -25,7 +25,8 @@
"cy:open": "npx cypress open",
"cy:run": "npx cypress run",
"test:unit": "uvu -r tsm -r tsconfig-paths/register -i cypress",
"tests": "npm run lint:styles && npm run lint:ts && npm run prettier:check && npm run typecheck"
"tests": "npm run lint:styles && npm run lint:ts && npm run prettier:check && npm run typecheck",
"matches": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/matchesWithoutDetails.ts"
},
"dependencies": {
"@dnd-kit/core": "^5.0.2",

View File

@ -0,0 +1,50 @@
import { PrismaClient } from "@prisma/client";
import { playersWithResults } from "~/core/play/playerInfos/playerInfos.server";
import fs from "fs";
const prisma = new PrismaClient();
async function main() {
const matches = await prisma.lfgGroupMatch.findMany({
include: {
stages: { include: { stage: true } },
groups: { include: { members: { include: { user: true } } } },
},
});
const result: {
id: string;
mapList: { mode: string; map: string }[];
start_time: string;
end_time: string;
players: string[];
}[] = [];
for (const match of matches) {
const players = playersWithResults(
match.groups.flatMap((g) => g.members).flatMap((m) => m.user.discordId)
);
const mapList = match.stages
.sort((a, b) => a.order - b.order)
.filter((stage) => stage.winnerGroupId)
.map((stage) => ({ map: stage.stage.name, mode: stage.stage.mode }));
if (!players.length) continue;
if (!mapList.length) continue;
result.push({
id: match.id,
mapList,
start_time: match.createdAt.toISOString(),
end_time: new Date(match.createdAt.getTime() + 60 * 60000).toISOString(),
players,
});
}
fs.writeFileSync("for_lean.json", JSON.stringify(result, null, 2));
}
main()
// eslint-disable-next-line no-console
.then(() => console.log("done"))
.catch((e) => console.error(e));