diff --git a/src/core/blitz/getArchivedRatingsInfo.ts b/src/_core/blitzkrieg/getArchivedRatingsInfo.ts similarity index 54% rename from src/core/blitz/getArchivedRatingsInfo.ts rename to src/_core/blitzkrieg/getArchivedRatingsInfo.ts index c22e29653..42a47b489 100644 --- a/src/core/blitz/getArchivedRatingsInfo.ts +++ b/src/_core/blitzkrieg/getArchivedRatingsInfo.ts @@ -1,13 +1,31 @@ import { RatingsInfo } from '../../commands/ratings'; import { Region } from '../../constants/regions'; -import { DATABASE_REPO } from '../database/getMidnightLeaderboard'; -import { octokit } from '../github/octokit'; -import throwError from '../node/throwError'; +import { DATABASE_REPO } from '../../core/database/getMidnightLeaderboard'; +import { octokit } from '../../core/github/octokit'; +import throwError from '../../core/node/throwError'; + +const ARCHIVED_RATINGS_CACHE: Record< + Region, + Record< + number, + RatingsInfo & { + detail: undefined; + } + > +> = { + com: {}, + eu: {}, + asia: {}, +}; export default async function getArchivedRatingsInfo( season: number, region: Region, ) { + if (ARCHIVED_RATINGS_CACHE[region][season]) { + return ARCHIVED_RATINGS_CACHE[region][season]; + } + const { data } = await octokit.repos.getContent({ ...DATABASE_REPO, path: `${region}/ratings/${season}/info.json`, @@ -21,5 +39,7 @@ export default async function getArchivedRatingsInfo( detail: undefined; }; + ARCHIVED_RATINGS_CACHE[region][season] = jsonContent; + return jsonContent; } diff --git a/src/commands/ratings.tsx b/src/commands/ratings.tsx index 02e97fe4c..4a909b35b 100644 --- a/src/commands/ratings.tsx +++ b/src/commands/ratings.tsx @@ -7,11 +7,11 @@ import { import { BlitzkriegRatingsLeaderboard } from '../../scripts/buildRatingsLeaderboard'; import { getAccountInfo } from '../_core/blitz/getAccountInfo'; import { getClanAccountInfo } from '../_core/blitz/getClanAccountInfo'; +import getArchivedRatingsInfo from '../_core/blitzkrieg/getArchivedRatingsInfo'; import * as Leaderboard from '../components/Leaderboard'; import TitleBar from '../components/TitleBar'; import Wrapper from '../components/Wrapper'; import { REGION_NAMES_SHORT, Region } from '../constants/regions'; -import getArchivedRatingsInfo from '../core/blitz/getArchivedRatingsInfo'; import getRatingsInfo from '../core/blitz/getRatingsInfo'; import regionToRegionSubdomain from '../core/blitz/regionToRegionSubdomain'; import getMidnightLeaderboard, {