apps/migration/src/collect-users.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import type { GuildMemberResponse } from "@purrkit/types";
import fs from "node:fs";
import { db, tickets } from "./old-db";
const users = await db
.select({
subjectId: tickets.authorId,
closerId: tickets.closedBy,
})
.from(tickets)
.execute(); // { subjectId, closerId }[]
const activeUserIds = new Set<string>();
for (const row of users) {
if (row.subjectId) activeUserIds.add(row.subjectId);
if (row.closerId) activeUserIds.add(row.closerId);
}
const membersArray = JSON.parse(
fs.readFileSync("members/members.json", "utf-8"),
) as GuildMemberResponse[];
const allMembersLookup = new Map<string, GuildMemberResponse>(
membersArray.map((member) => [member.user.id, member]),
);
const membersMap: Record<string, GuildMemberResponse> = {};
const missingUserIds: string[] = [];
for (const id of activeUserIds) {
const member = allMembersLookup.get(id);
if (member) {
membersMap[id] = member;
} else {
missingUserIds.push(id);
}
}
|