feat: added mightnight leaderboard cache

This commit is contained in:
TrèsAbhi committed 2023-10-14 11:28:41 -05:00
1 parent ed8bab7df8
commit 4f3e868367
7 files changed
+27 -11

No files matched your search

@@ -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]+/;
+1 -1
View File
@@ -1,4 +1,4 @@
import { discordBlitzDB } from '../cockroackdb/discordBlitz';
import { discordBlitzDB } from '../../core/blitzkrieg/discordBlitz';
import { client } from '../discord/client';
const EXIT_EVENTS = [
+1 -1
View File
@@ -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';
+3 -3
View File
@@ -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 {
@@ -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,
@@ -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<number, BlitzkriegRatingsLeaderboard>
> = {
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(