fix: archived season number

This commit is contained in:
TrèsAbhi committed 2024-01-01 14:19:13 -06:00
1 parent 3f264d6a49
commit 90ee71c9ca
1 file changed
+24 -11
@@ -1,17 +1,28 @@
import getRatingsInfo from '../blitz/getRatingsInfo'; import getRatingsInfo from '../blitz/getRatingsInfo';
interface GitHubTrees {
tree: { path: string; url: string }[];
}
let cachedLatestArchivedSeasonNumber: number | null = null; let cachedLatestArchivedSeasonNumber: number | null = null;
export async function getArchivedLatestSeasonNumber() { export async function getArchivedLatestSeasonNumber() {
if (cachedLatestArchivedSeasonNumber !== null) {
return cachedLatestArchivedSeasonNumber;
}
const ratingsInfo = await getRatingsInfo('com'); const ratingsInfo = await getRatingsInfo('com');
if (ratingsInfo.detail) { if (ratingsInfo.detail) {
const comURL = ( const regionsURL = (
(await fetch( (await fetch(
'https://api.github.com/repos/tresabhi/blitzkrieg-assets/git/trees/main/regions', 'https://api.github.com/repos/tresabhi/blitzkrieg-assets/git/trees/main',
).then((response) => response.json())) as { ).then((response) => response.json())) as GitHubTrees
tree: { path: string; url: string }[]; ).tree.find(({ path }) => path === 'regions')!.url;
} const comURL = (
(await fetch(regionsURL).then((response) =>
response.json(),
)) as GitHubTrees
).tree.find(({ path }) => path === 'com')!.url; ).tree.find(({ path }) => path === 'com')!.url;
const ratingsURL = ( const ratingsURL = (
(await fetch(comURL).then((response) => response.json())) as { (await fetch(comURL).then((response) => response.json())) as {
@@ -20,14 +31,16 @@ export async function getArchivedLatestSeasonNumber() {
).tree[0].url; ).tree[0].url;
const latestSeason = Math.max( const latestSeason = Math.max(
...( ...(
(await fetch(ratingsURL).then((response) => { (await fetch(ratingsURL).then((response) => response.json())) as {
response.json(); tree: { path: string }[];
})) as { tree: { path: string }[] } }
).tree.map(({ path }) => parseInt(path)), ).tree.map(({ path }) => Number(path)),
); );
return latestSeason; cachedLatestArchivedSeasonNumber = latestSeason;
} else { } else {
return ratingsInfo.current_season - 1; cachedLatestArchivedSeasonNumber = ratingsInfo.current_season - 1;
} }
return cachedLatestArchivedSeasonNumber;
} }