diff --git a/data/wiki-game-cache.yaml b/data/wiki-game-cache.yaml index 0b717108..322e5bad 100644 --- a/data/wiki-game-cache.yaml +++ b/data/wiki-game-cache.yaml @@ -31243,6 +31243,8 @@ Command & Conquer (2013): 'Command & Conquer 3: Tiberium Wars': pageId: 484 steam: 24790 + steamSide: + - 24810 templates: - >- {{Game data/config|Windows|{{p|appdata}}\{{LocalizedPath|Command & Conquer 3 Tiberium diff --git a/src/wiki.ts b/src/wiki.ts index 1b344beb..d1d4ad7b 100644 --- a/src/wiki.ts +++ b/src/wiki.ts @@ -37,8 +37,9 @@ export type WikiGameCache = { renamedFrom?: Array, templates?: Array, steam?: number, + steamSide?: Array, gog?: number - + gogSide?: Array, }; }; @@ -601,10 +602,37 @@ export async function getGame(pageTitle: string, cache: WikiGameCache, client: W if (!isNaN(steamId) && steamId > 0) { cache[pageTitle].steam = steamId; } + + cache[pageTitle].steamSide = []; + const steamSides = template.parameters["steam appid side"] as string | undefined; + if (steamSides !== undefined) { + for (const side of steamSides.split(",").map(Number)) { + if (!isNaN(side) && side > 0) { + cache[pageTitle].steamSide.push(side); + } + } + } + if (cache[pageTitle].steamSide.length === 0) { + delete cache[pageTitle].steamSide; + } + const gogId = Number(template.parameters["gogcom id"]); if (!isNaN(gogId) && gogId > 0) { cache[pageTitle].gog = gogId } + + cache[pageTitle].gogSide = []; + const gogSides = template.parameters["gogcom id side"] as string | undefined; + if (gogSides !== undefined) { + for (const side of gogSides.split(",").map(Number)) { + if (!isNaN(side) && side > 0) { + cache[pageTitle].gogSide.push(side); + } + } + } + if (cache[pageTitle].gogSide.length === 0) { + delete cache[pageTitle].gogSide; + } } else if (templateName === "game data/saves" || templateName === "game data/config") { const reparsed = parseWiki(template.toString()); if (reparsed[0].positionalParameters[1]?.length > 0 ?? false) {