diff --git a/src/LEGACY_core/discord/resolvePlayerFromCommand.ts b/src/LEGACY_core/discord/resolvePlayerFromCommand.ts index f00cde535..b28d3cd8f 100644 --- a/src/LEGACY_core/discord/resolvePlayerFromCommand.ts +++ b/src/LEGACY_core/discord/resolvePlayerFromCommand.ts @@ -2,7 +2,7 @@ import { CacheType, ChatInputCommandInteraction } from 'discord.js'; import markdownEscape from 'markdown-escape'; import { Region } from '../../constants/regions'; import searchPlayersAcrossRegions from '../../core/blitz/searchPlayersAcrossRegions'; -import { getBlitzFromDiscord } from '../cockroackdb/discordBlitz'; +import { getBlitzFromDiscord } from '../../core/blitzkrieg/discordBlitz'; import throwError from '../node/throwError'; export const serverAndIdPattern = /(com|eu|asia)\/[0-9]+/; diff --git a/src/LEGACY_core/node/processes.ts b/src/LEGACY_core/node/processes.ts index f7fee3548..dcd851a55 100644 --- a/src/LEGACY_core/node/processes.ts +++ b/src/LEGACY_core/node/processes.ts @@ -1,4 +1,4 @@ -import { discordBlitzDB } from '../cockroackdb/discordBlitz'; +import { discordBlitzDB } from '../../core/blitzkrieg/discordBlitz'; import { client } from '../discord/client'; const EXIT_EVENTS = [ diff --git a/src/commands/link.tsx b/src/commands/link.tsx index bcf82df3a..dd99f34cc 100644 --- a/src/commands/link.tsx +++ b/src/commands/link.tsx @@ -6,7 +6,6 @@ import { } from 'discord.js'; import markdownEscape from 'markdown-escape'; import discord from '../../discord.json' assert { type: 'json' }; -import { linkBlitzAndDiscord } from '../LEGACY_core/cockroackdb/discordBlitz'; import addUsernameChoices from '../LEGACY_core/discord/addUsernameChoices'; import autocompleteUsername from '../LEGACY_core/discord/autocompleteUsername'; import embedNegative from '../LEGACY_core/discord/embedNegative'; @@ -15,6 +14,7 @@ import Wrapper from '../components/Wrapper'; import { REGION_NAMES_SHORT, Region } from '../constants/regions'; import { getAccountInfo } from '../core/blitz/getAccountInfo'; import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; +import { linkBlitzAndDiscord } from '../core/blitzkrieg/discordBlitz'; import { CommandRegistry } from '../events/interactionCreate'; import { theme } from '../stitches.config'; diff --git a/src/commands/ratings.tsx b/src/commands/ratings.tsx index 693105e45..3f8dbbc2c 100644 --- a/src/commands/ratings.tsx +++ b/src/commands/ratings.tsx @@ -5,9 +5,6 @@ import { SlashCommandSubcommandGroupBuilder, } from 'discord.js'; import { BlitzkriegRatingsLeaderboard } from '../../scripts/buildRatingsLeaderboard'; -import getMidnightLeaderboard, { - DATABASE_REPO, -} from '../LEGACY_core/database/getMidnightLeaderboard'; import addRegionChoices from '../LEGACY_core/discord/addRegionChoices'; import addUsernameChoices from '../LEGACY_core/discord/addUsernameChoices'; import autocompleteUsername from '../LEGACY_core/discord/autocompleteUsername'; @@ -24,6 +21,9 @@ import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; import getRatingsInfo from '../core/blitz/getRatingsInfo'; import regionToRegionSubdomain from '../core/blitz/regionToRegionSubdomain'; import getArchivedRatingsInfo from '../core/blitzkrieg/getArchivedRatingsInfo'; +import getMidnightLeaderboard, { + DATABASE_REPO, +} from '../core/blitzkrieg/getMidnightLeaderboard'; import { CommandRegistryRaw } from '../events/interactionCreate'; export interface RatingsPlayer { diff --git a/src/LEGACY_core/cockroackdb/discordBlitz.ts b/src/core/blitzkrieg/discordBlitz.ts similarity index 100% rename from src/LEGACY_core/cockroackdb/discordBlitz.ts rename to src/core/blitzkrieg/discordBlitz.ts diff --git a/src/core/blitzkrieg/getArchivedRatingsInfo.ts b/src/core/blitzkrieg/getArchivedRatingsInfo.ts index 7141cb93d..49533e048 100644 --- a/src/core/blitzkrieg/getArchivedRatingsInfo.ts +++ b/src/core/blitzkrieg/getArchivedRatingsInfo.ts @@ -1,8 +1,8 @@ -import { RatingsInfo } from '../../commands/ratings'; -import { Region } from '../../constants/regions'; -import { DATABASE_REPO } from '../../LEGACY_core/database/getMidnightLeaderboard'; import { octokit } from '../../LEGACY_core/github/octokit'; import throwError from '../../LEGACY_core/node/throwError'; +import { RatingsInfo } from '../../commands/ratings'; +import { Region } from '../../constants/regions'; +import { DATABASE_REPO } from './getMidnightLeaderboard'; const ARCHIVED_RATINGS_CACHE: Record< Region, diff --git a/src/LEGACY_core/database/getMidnightLeaderboard.ts b/src/core/blitzkrieg/getMidnightLeaderboard.ts similarity index 60% rename from src/LEGACY_core/database/getMidnightLeaderboard.ts rename to src/core/blitzkrieg/getMidnightLeaderboard.ts index b318299e2..257033227 100644 --- a/src/LEGACY_core/database/getMidnightLeaderboard.ts +++ b/src/core/blitzkrieg/getMidnightLeaderboard.ts @@ -1,13 +1,26 @@ import { BlitzkriegRatingsLeaderboard } from '../../../scripts/buildRatingsLeaderboard'; import { Region } from '../../constants/regions'; -import { octokit } from '../github/octokit'; +import { octokit } from '../../LEGACY_core/github/octokit'; export const DATABASE_REPO = { owner: 'tresabhi', repo: 'blitzkrieg-db' }; +const MIDNIGHT_LEADERBOARD_CACHE: Record< + Region, + Record +> = { + com: {}, + eu: {}, + asia: {}, +}; + export default async function getMidnightLeaderboard( region: Region, season: number, ) { + if (MIDNIGHT_LEADERBOARD_CACHE[region][season]) { + return MIDNIGHT_LEADERBOARD_CACHE[region][season]; + } + try { const { data } = await octokit.repos.getContent({ ...DATABASE_REPO, @@ -16,8 +29,11 @@ export default async function getMidnightLeaderboard( if (!Array.isArray(data) && data.type === 'file') { const response = await fetch(data.download_url!); + const json = (await response.json()) as BlitzkriegRatingsLeaderboard; - return (await response.json()) as BlitzkriegRatingsLeaderboard; + MIDNIGHT_LEADERBOARD_CACHE[region][season] = json; + + return json; } } catch (error) { console.warn(