feat: session tracker list

This commit is contained in:
TrèsAbhi committed 2023-09-24 15:58:42 -05:00
1 parent 6ff2a23ff7
commit 8c041d4eef
6 files changed
+145 -29

No files matched your search

+5 -2
View File
@@ -1,5 +1,6 @@
import { deburr } from 'lodash';
import { WARGAMING_APPLICATION_ID } from '../../constants/wargamingApplicationID';
import { context } from '../blitzkrieg/context';
import getWargamingResponse from './getWargamingResponse';
export type TankType = 'AT-SPG' | 'lightTank' | 'mediumTank' | 'heavyTank';
@@ -23,14 +24,16 @@ export interface Tankopedia {
console.log('Caching tankopedia...');
export const tankopedia = fetch(
typeof window === 'undefined'
context === 'bot'
? 'https://www.blitzstars.com/bs-tankopedia.json'
: '/api/tankopedia',
)
.then(async (response) => response.json())
.then((wrapperTankopedia) => {
console.log('Tankopedia cached');
return (wrapperTankopedia as { data: Tankopedia }).data;
return context === 'bot'
? (wrapperTankopedia as { data: Tankopedia }).data
: (wrapperTankopedia as Tankopedia);
});
const entries = new Promise<TankopediaEntry[]>(async (resolve) => {
resolve(Object.entries(await tankopedia).map(([, entry]) => entry));
+4
View File
@@ -0,0 +1,4 @@
type Context = 'website' | 'bot';
export const context: Context =
typeof window === 'undefined' ? 'bot' : 'website';
+14 -9
View File
@@ -1,4 +1,5 @@
import { AllStats } from '../../types/accountInfo';
import { context } from '../blitzkrieg/context';
export interface SpecialStats {
winrate: number;
@@ -82,20 +83,24 @@ export type TankAverages = Record<number, IndividualTankAverage>;
console.log('Caching tank averages...');
export const tankAverages = fetch(
'https://www.blitzstars.com/api/tankaverages.json',
context === 'bot'
? 'https://www.blitzstars.com/api/tankaverages.json'
: '/api/tank-averages',
)
.then((response) => response.json())
.then((individualTankAverages) => {
const partialTankAverages: TankAverages = {};
.then((json) => {
if (context === 'bot') {
const partialTankAverages: TankAverages = {};
(individualTankAverages as IndividualTankAverage[]).forEach(
(individualTankAverage) => {
(json as IndividualTankAverage[]).forEach((individualTankAverage) => {
partialTankAverages[individualTankAverage.tank_id] =
individualTankAverage;
},
);
});
console.log('Tank averages cached');
console.log('Tank averages cached');
return partialTankAverages;
return partialTankAverages;
} else {
return json as TankAverages;
}
});