最終更新 2 weeks ago

gistfile1.txt Raw
1 async update({ weekKey }: { weekKey?: string } = {}): Promise<void> {
2 const client = DiscordClient.get();
3 const channelId = Config.get({ section: "channels", key: "leaderboard" });
4 if (!channelId) { log.warn("leaderboard channel not configured"); return; }
5
6 const week = weekKey ? WRank.weekFromKey(weekKey) : WRank.currentWeek();
7
8 if (!week) { log.warn(`Week ${weekKey} not found`); return; }
9
10 const rows = [
11 ...buildEntries(Nation.Capella, week),
12 ...buildEntries(Nation.Procyon, week),
13 ];
14 const embed = LeaderboardUI.buildEmbed(week, rows);
15
16 await PersistentMessage.post({
17 store: "leaderboard",
18 key: week.weekKey,
19 channelId,
20 embeds: [embed],
21 client,
22 });
23
24 log.info(`Leaderboard updated for ${week.weekKey}`);
25 },