mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-08-28 22:25:51 -05:00
Add matches without details script
This commit is contained in:
50
scripts/matchesWithoutDetails.ts
Normal file
50
scripts/matchesWithoutDetails.ts
Normal 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));
|
||||
Reference in New Issue
Block a user