From 7810b9ca88f951484c146b79f16eed290cfb4e85 Mon Sep 17 00:00:00 2001 From: tobinio Date: Wed, 19 Jun 2024 19:19:44 +0200 Subject: [PATCH] fix: incorrectly sum numbers for versions --- server/api/{update.dev.ts => update.ts} | 2 +- server/utils/statistics.ts | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) rename server/api/{update.dev.ts => update.ts} (80%) diff --git a/server/api/update.dev.ts b/server/api/update.ts similarity index 80% rename from server/api/update.dev.ts rename to server/api/update.ts index 1147650..3431596 100644 --- a/server/api/update.dev.ts +++ b/server/api/update.ts @@ -1,5 +1,5 @@ import {updateStatistics} from "~/server/utils/statistics"; export default defineEventHandler(async (event) => { - await updateStatistics() + await runTask("analyze") }) diff --git a/server/utils/statistics.ts b/server/utils/statistics.ts index f861711..6ea42a7 100644 --- a/server/utils/statistics.ts +++ b/server/utils/statistics.ts @@ -2,7 +2,6 @@ import {Stats} from "~/server/utils/types/stats"; import {GameVersion, Version} from "~/server/utils/fetchData"; type StatsData = Map> - type AllStats = { all: Stats, minor: Stats, major: Stats }; export async function updateStatistics() { @@ -90,14 +89,12 @@ function analyzeVersions(versions: Version[], data: StatsData) { let versionDownloads = version.downloads / (allowedLaunchers.length * version.game_versions.length) for (let loader of allowedLaunchers) { - let downloads = new Map(); - - if (data.has(loader)) { - downloads = data.get(loader)!; - } else { - data.set(loader, downloads) + if (!data.has(loader)) { + data.set(loader, new Map()) } + let downloads = data.get(loader)!; + for (let gameVersion of version.game_versions) { if (downloads.has(gameVersion)) { let data = downloads.get(gameVersion)!; @@ -138,8 +135,8 @@ function onlyMinorVersions(gameVersions: GameVersion[], all: Stats): { continue } - loader.values[index + 1].count += stats[0].count - loader.values[index + 1].downloads += stats[0].downloads + loader.values[index].count += stats[0].count + loader.values[index].downloads += stats[0].downloads } versions.splice(index, 1) @@ -176,8 +173,8 @@ function onlyMajorVersions(gameVersions: GameVersion[], all: Stats): Stats { for (let loader of downloads.data) { let stats = loader.values.splice(index, 1); - loader.values[index + 1].count += stats[0].count - loader.values[index + 1].downloads += stats[0].downloads + loader.values[index].count += stats[0].count + loader.values[index].downloads += stats[0].downloads } versions.splice(index, 1) -- 2.51.2