feat: renamed /ratings to /ratings-leaderboard

This commit is contained in:
TrèsAbhi committed 2024-03-20 17:33:21 -05:00
1 parent 91d48eeadd
commit f7c6a065c1
35 files changed
+646 -680

No files matched your search

@@ -1,26 +1,26 @@
import { RatingsInfo } from '../../commands/ratings';
import { RatingInfo } from '../../commands/ratingLeaderboard';
import { Region } from '../../constants/regions';
import { context } from '../blitzkrieg/context';
import { patientFetch } from '../blitzkrieg/patientFetch';
import regionToRegionSubdomain from './regionToRegionSubdomain';
const ratingsInfoCache: Partial<Record<Region, RatingsInfo>> = {};
const cache: Partial<Record<Region, RatingInfo>> = {};
export default async function getRatingsInfo(region: Region) {
if (ratingsInfoCache[region]) return ratingsInfoCache[region]!;
export default async function getRatingInfo(region: Region) {
if (cache[region]) return cache[region]!;
const response = await patientFetch(
context === 'website'
? `/api/${region}/ratings/current/info`
? `/api/${region}/rating/current/info`
: `https://${regionToRegionSubdomain(
region,
)}.wotblitz.com/en/api/rating-leaderboards/season/`,
undefined,
{ cache: 'no-store' },
);
const data = (await response.json()) as RatingsInfo;
const data = (await response.json()) as RatingInfo;
ratingsInfoCache[region] = data;
cache[region] = data;
return data;
}
@@ -1,10 +1,10 @@
import { LeagueTop, RatingsPlayer } from '../../commands/ratings';
import { LeagueTop, RatingPlayer } from '../../commands/ratingLeaderboard';
import { Region } from '../../constants/regions';
import { context } from '../blitzkrieg/context';
import { patientFetch } from '../blitzkrieg/patientFetch';
import regionToRegionSubdomain from './regionToRegionSubdomain';
export async function getRatingsLeague(
export async function getRatingLeague(
region: Region,
league: number,
usePatientFetcher = false,
@@ -15,7 +15,7 @@ export async function getRatingsLeague(
: fetch(url, { cache: 'no-store' });
const response = await fetcher(
context === 'website'
? `/api/${region}/ratings/current/league/${league}`
? `/api/${region}/rating/current/league/${league}`
: `https://${regionToRegionSubdomain(
region,
)}.wotblitz.com/en/api/rating-leaderboards/league/${league}/top/`,
@@ -23,6 +23,6 @@ export async function getRatingsLeague(
const json = await response.json();
return context === 'website'
? (json as RatingsPlayer[])
? (json as RatingPlayer[])
: (json as LeagueTop).result;
}
@@ -1,10 +1,10 @@
import { RatingsNeighbors } from '../../commands/ratings';
import { RatingNeighbors } from '../../commands/ratingLeaderboard';
import { Region } from '../../constants/regions';
import { patientFetch } from '../blitzkrieg/patientFetch';
import { withCORSProxy } from '../blitzkrieg/withCORSProxy';
import regionToRegionSubdomain from './regionToRegionSubdomain';
export async function getRatingsNeighbors(
export async function getRatingNeighbors(
region: Region,
id: number,
count: number,
@@ -21,7 +21,7 @@ export async function getRatingsNeighbors(
)}.wotblitz.com/en/api/rating-leaderboards/user/${id}/?neighbors=${count}`,
),
);
const json = (await response.json()) as RatingsNeighbors;
const json = (await response.json()) as RatingNeighbors;
return json;
}
+6
View File
@@ -0,0 +1,6 @@
import getRatingInfo from './getRatingInfo';
export async function isOnGoingRatingSeason() {
const ratingInfo = await getRatingInfo('com');
return ratingInfo.detail === undefined;
}
-6
View File
@@ -1,6 +0,0 @@
import getRatingsInfo from './getRatingsInfo';
export async function isOnGoingRatingsSeason() {
const ratingsInfo = await getRatingsInfo('com');
return ratingsInfo.detail === undefined;
}
@@ -2,7 +2,7 @@ import { Region } from '../../constants/regions';
import { context } from '../blitzkrieg/context';
import regionToRegionSubdomain from './regionToRegionSubdomain';
type CurrentRatingsPlayerSearch = Record<
type CurrentRatingPlayerSearch = Record<
number,
{
spa_id: number;
@@ -24,20 +24,17 @@ type CurrentRatingsPlayerSearch = Record<
)
>;
export async function searchCurrentRatingsPlayers(
region: Region,
name: string,
) {
export async function searchCurrentRatingPlayers(region: Region, name: string) {
const encodedSearch = encodeURIComponent(name);
const response = await fetch(
context === 'website'
? `/api/${region}/ratings/current/search/${encodedSearch}`
? `/api/${region}/rating/current/search/${encodedSearch}`
: `https://${regionToRegionSubdomain(
region,
)}.wotblitz.com/en/api/rating-leaderboards/search/?prefix=${encodedSearch}`,
{ cache: 'no-store' },
);
const accountList = (await response.json()) as CurrentRatingsPlayerSearch;
const accountList = (await response.json()) as CurrentRatingPlayerSearch;
return accountList;
}
@@ -1,4 +1,4 @@
import getRatingsInfo from '../blitz/getRatingsInfo';
import getRatingInfo from '../blitz/getRatingInfo';
interface GitHubTrees {
tree: { path: string; url: string }[];
@@ -11,9 +11,9 @@ export async function getArchivedLatestSeasonNumber() {
return cachedLatestArchivedSeasonNumber;
}
const ratingsInfo = await getRatingsInfo('com');
const ratingInfo = await getRatingInfo('com');
if (ratingsInfo.detail) {
if (ratingInfo.detail) {
const regionsURL = (
(await fetch(
'https://api.github.com/repos/tresabhi/blitzkrieg-assets/git/trees/main',
@@ -24,14 +24,14 @@ export async function getArchivedLatestSeasonNumber() {
response.json(),
)) as GitHubTrees
).tree.find(({ path }) => path === 'com')!.url;
const ratingsURL = (
const ratingURL = (
(await fetch(comURL).then((response) => response.json())) as {
tree: [{ url: string }];
}
).tree[0].url;
const latestSeason = Math.max(
...(
(await fetch(ratingsURL).then((response) => response.json())) as {
(await fetch(ratingURL).then((response) => response.json())) as {
tree: { path: string }[];
}
).tree.map(({ path }) => Number(path)),
@@ -39,7 +39,7 @@ export async function getArchivedLatestSeasonNumber() {
cachedLatestArchivedSeasonNumber = latestSeason;
} else {
cachedLatestArchivedSeasonNumber = ratingsInfo.current_season - 1;
cachedLatestArchivedSeasonNumber = ratingInfo.current_season - 1;
}
return cachedLatestArchivedSeasonNumber;
@@ -1,4 +1,4 @@
import { RatingsInfo } from '../../commands/ratings';
import { RatingInfo } from '../../commands/ratingLeaderboard';
import { Region } from '../../constants/regions';
import { asset } from './asset';
import { superDecompress } from './superDecompress';
@@ -7,7 +7,7 @@ const cache: Record<
Region,
Record<
number,
RatingsInfo & {
RatingInfo & {
detail: undefined;
}
>
@@ -17,17 +17,17 @@ const cache: Record<
asia: {},
};
export default async function getArchivedRatingsInfo(
export default async function getArchivedRatingInfo(
region: Region,
season: number,
) {
if (!cache[region][season]) {
const info = await fetch(
asset(`regions/${region}/ratings/${season}/info.cdon.lz4`),
asset(`regions/${region}/rating/${season}/info.cdon.lz4`),
)
.then((response) => response.arrayBuffer())
.then((buffer) =>
superDecompress<RatingsInfo & { detail: undefined }>(
superDecompress<RatingInfo & { detail: undefined }>(
new Uint8Array(buffer),
),
);
@@ -8,13 +8,13 @@ const cache: Record<Region, Record<number, BkrlDiscriminatedEntries>> = {
com: {},
};
export async function getArchivedRatingsLeaderboard(
export async function getArchivedRatingLeaderboard(
region: Region,
season: number,
) {
if (!cache[region][season]) {
const info = await fetch(
asset(`regions/${region}/ratings/${season}/latest.bkrl`),
asset(`regions/${region}/rating/${season}/latest.bkrl`),
)
.then((response) => response.arrayBuffer())
.then((buffer) => new BkrlReadStream(buffer).bkrl());
@@ -8,13 +8,13 @@ const cache: Record<Region, Record<number, BkrlDiscriminatedEntries | null>> = {
asia: {},
};
export default async function getArchivedRatingsMidnightLeaderboard(
export default async function getArchivedRatingMidnightLeaderboard(
region: Region,
season: number,
) {
if (!cache[region][season]) {
const info = await fetch(
asset(`regions/${region}/ratings/${season}/midnight.bkrl`),
asset(`regions/${region}/rating/${season}/midnight.bkrl`),
)
.then((response) =>
response.status === 404 ? null : response.arrayBuffer(),
@@ -69,7 +69,7 @@ export default async function getStatsInPeriod(
return get(latest.all) - get(previous.all);
}
// check if there was a change in battles as games in ratings do update last_battle_time
// check if there was a change in battles as games in rating do update last_battle_time
if (d((a) => a.battles) > 0) {
diff[tankId] = {
battles: d((a) => a.battles),