some more recording

This commit is contained in:
tresabhi committed 2026-08-11 20:29:50 -05:00
1 parent 8dc9a6b46d
commit 877ba9408d
3 files changed
+66 -11

No files matched your search

+22 -10
View File
@@ -6,23 +6,35 @@ interface EnvironmentConfig {
aliases: Record<string, string>;
}
export const environments = import.meta.glob(
"../../../../environments/*.json",
{
let hasReadEnvironments = false;
const environments: Record<string, EnvironmentConfig> = {};
/**
* This is set up this way to avoid errors in runtimes where
* `import.meta.glob` does not exist.
*/
function readEnvironments() {
if (hasReadEnvironments) return;
hasReadEnvironments = true;
const glob = import.meta.glob("../../../../environments/*.json", {
eager: true,
import: "default",
},
) as Record<string, EnvironmentConfig>;
const root = "../../../../environments";
}) as Record<string, EnvironmentConfig>;
const root = "../../../../environments";
for (const key in environments) {
const trimmed = key.slice(root.length + 1, -5);
for (const key in glob) {
const trimmed = key.slice(root.length + 1, -5);
environments[trimmed] = environments[key];
delete environments[key];
environments[trimmed] = glob[key];
delete environments[key];
}
}
export function environmentConfig() {
readEnvironments();
const environment = assertSecret(import.meta.env.PUBLIC_ENVIRONMENT);
if (!(environment in environments)) {
@@ -1,10 +1,13 @@
import { idToRegion } from "@blitzkit/core";
import { GitObjectStorage } from "../core/blitzkit/gitObjectStorage";
import { IdArray } from "../core/blitzkit/idArray";
import { API_RATE } from "../discoverIds/constants";
import { sleep, withinTimeLimit } from "../discoverIds/time";
import { IdsManifest } from "../discoverIds/types";
import { IDS_API_BASE } from "./constants";
import { PerformanceManifest } from "./types";
import { PerformanceManifest, QuickStatistics } from "./types";
const applicationId = import.meta.env.PUBLIC_WARGAMING_APPLICATION_ID;
const storage = await new GitObjectStorage(
"blitzkit/data-performance",
@@ -35,6 +38,26 @@ while (withinTimeLimit()) {
for (let i = 0; i < size; i++) {
await sleep();
const id = ids.get(i);
const domain = idToRegion(id);
const url = `https://api.wotblitz.${
domain
}/wotb/tanks/stats/?application_id=${applicationId}&account_id=${id}`;
const response = await fetch(url);
const json = (await response.json()) as QuickStatistics;
const data = json.data[id];
if (json.status !== "ok" || data === null) {
console.log(`Failed player ${id}; skipping...`);
continue;
}
for (const tank of data) {
console.log(new Date(tank.battle_life_time * 1000));
}
}
}
@@ -4,3 +4,23 @@ interface PerformanceManifestV1 {
version: 1;
last_updated: number;
}
export interface QuickStatistics {
status: string;
data: Record<string, QuickStatisticsTank[] | null>;
}
interface QuickStatisticsTank {
last_battle_time: number;
battle_life_time: number;
tank_id: number;
all: Record<string, number>;
}
interface Observations {
count: number;
observations: Record<number, Observation>;
}
interface Observation {}