mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-03-09 15:40:26 +00:00
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import path from "node:path";
|
|
import fs from "node:fs";
|
|
|
|
import { getSteamGameClientIcon, logger } from "@main/services";
|
|
import { chunk } from "lodash-es";
|
|
import { seedsPath } from "@main/constants";
|
|
|
|
import type { SteamGame } from "@types";
|
|
|
|
const steamGamesPath = path.join(seedsPath, "steam-games.json");
|
|
|
|
const steamGames = JSON.parse(
|
|
fs.readFileSync(steamGamesPath, "utf-8")
|
|
) as SteamGame[];
|
|
|
|
const chunks = chunk(steamGames, 1500);
|
|
|
|
for (const chunk of chunks) {
|
|
await Promise.all(
|
|
chunk.map(async (steamGame) => {
|
|
if (steamGame.clientIcon) return;
|
|
|
|
const index = steamGames.findIndex((game) => game.id === steamGame.id);
|
|
|
|
try {
|
|
const clientIcon = await getSteamGameClientIcon(String(steamGame.id));
|
|
|
|
steamGames[index].clientIcon = clientIcon;
|
|
|
|
logger.log("info", `Set ${steamGame.name} client icon`);
|
|
} catch (err) {
|
|
steamGames[index].clientIcon = null;
|
|
logger.log("info", `Could not set icon for ${steamGame.name}`);
|
|
}
|
|
})
|
|
);
|
|
|
|
fs.writeFileSync(steamGamesPath, JSON.stringify(steamGames));
|
|
logger.log("info", "Updated steam games");
|
|
}
|