random bun scripts that dont fit anywhere else
1import { TBAApi } from "./tba";
2
3const client = new TBAApi({ apiKey: process.env.TBA_READ_KEY || "" });
4
5/*
6 * interativity
7 */
8
9const event = process.argv[2]
10 ? process.argv[2]
11 : prompt("Enter event code (2025ohmv): ") || "2025ohmv";
12
13let year = new Date().getFullYear();
14
15if (!event) {
16 console.log("Please specify an event to get teams from");
17 process.exit(1);
18}
19
20console.log(`checking event: ${event}`);
21
22client.getEvent(event).then((data) => {
23 console.log("---");
24 console.log(`Found event: ${data.name} (${data.key})`);
25 console.log(`Location: ${data.city}, ${data.state_prov}, ${data.country}`);
26 console.log(`Dates: ${data.start_date} to ${data.end_date}`);
27 console.log("---");
28
29 year = data.year;
30
31 const confirmed = prompt("Is this the correct event? (Y/n): ") || "y";
32 if (confirmed?.toLowerCase() !== "y") {
33 console.log("Aborting...");
34 process.exit(1);
35 }
36});
37
38console.log("Fetching teams...");
39
40client.getTeamsAtEvent(event).then(async (teams) => {
41 console.log("---");
42 console.log(`Found ${teams.length} teams at event ${event}`);
43 console.log("---");
44
45 console.log("Teams attending:");
46 for (const team of teams) {
47 console.log(` - Team ${team.team_number} (${team.nickname})`);
48 }
49 console.log("---");
50
51 const eventTeams = new Map();
52
53 for (const team of teams) {
54 const events = await client.getTeamEvents(team.key, year);
55 for (const event of events) {
56 const key = `${event.name} (${event.key})`;
57 if (!eventTeams.has(key)) {
58 eventTeams.set(key, []);
59 }
60 eventTeams.get(key).push(team.team_number);
61 }
62 }
63
64 console.log(
65 `All events these teams are attending (${eventTeams.size} events):`,
66 );
67 for (const [eventName, teamNumbers] of eventTeams) {
68 console.log(
69 ` - ${eventName}: ${
70 teamNumbers.length > 3
71 ? `${teamNumbers.slice(0, 3).join(", ")} and ${teamNumbers.length - 3} others`
72 : teamNumbers.join(", ")
73 }`,
74 );
75 }
76 console.log("---");
77});