From 9d189021c96e058527fc80ff135174aa92b072e3 Mon Sep 17 00:00:00 2001 From: mtkennerly Date: Thu, 16 Jul 2020 00:02:24 -0400 Subject: [PATCH] Improve template handling and import some data with fixed BR tags --- CONTRIBUTING.md | 2 +- data/manifest.yaml | 413 ++++++++++++++++++++++++++++++++----- data/missing.md | 9 +- data/steam-game-cache.yaml | 2 + data/wiki-game-cache.yaml | 209 ++++++++++--------- src/bin.ts | 20 +- src/manifest.ts | 4 +- src/wiki.ts | 62 +++--- 8 files changed, 537 insertions(+), 184 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c30c7190..ae20dca2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,7 +28,7 @@ There are some lower-level commands for finer control or full imports: * Games that had an unusable path: `npm run manifest -- --unsupportedPath` * Games with paths that are too broad and are tagged as such in the wiki cache: `npm run manifest -- --tooBroad` * Games with paths that are too broad and aren't already tagged as such in the wiki cache: `npm run manifest -- --tooBroadUntagged` - * A specific game: `npm run manifest -- --game "Name of Game"` + * A specific game: `npm run manifest -- "Game 1" "Game 2"` ## API etiquette When running or modifying the importer script, please be mindful not to diff --git a/data/manifest.yaml b/data/manifest.yaml index b6aa3b31..75dca24c 100644 --- a/data/manifest.yaml +++ b/data/manifest.yaml @@ -10051,7 +10051,7 @@ An Octonaut Odyssey: id: 676070 An Untitled Story: registry: - "
\nHKEY_CURRENT_USER/Software/Game Maker/695487": + HKEY_CURRENT_USER/Software/Game Maker/695487: tags: - save Ana The Game: @@ -11245,6 +11245,11 @@ Anno 1404: id: 33210 'Anno 1404: History Edition': files: + /Documents/Anno1404 Venice/Savegames: + tags: + - save + when: + - os: windows /Ubisoft/Anno1404/Config: tags: - config @@ -21746,6 +21751,11 @@ Battlemage VR: id: 768470 Battlepaths: files: + /keymapping.cfg: + tags: + - config + when: + - os: windows /SavedGames/Battlepaths: tags: - save @@ -24554,6 +24564,11 @@ BioShock 2: - config when: - os: windows + 'MP: /Bioshock2Steam/.profile': + tags: + - save + when: + - os: windows 'SP: /Bioshock2/SaveGames': tags: - save @@ -37793,32 +37808,32 @@ Celeste: files: /Saves: tags: - - config + - save when: - os: windows /Saves/settings.celeste: tags: - - save + - config when: - os: windows /Library/Application Support/Celeste/Saves: tags: - - config + - save when: - os: mac /Library/Application Support/Celeste/Saves/settings.celeste: tags: - - save + - config when: - os: mac /Celeste/Saves: tags: - - config + - save when: - os: linux /Celeste/Saves/settings.celeste: tags: - - save + - config when: - os: linux installDir: @@ -38302,11 +38317,6 @@ Change: Change: {} steam: id: 765640 -'Change : A Little Story': - installDir: - Change A Little Story: {} - steam: - id: 979790 Change Ranger: steam: id: 1216350 @@ -38315,6 +38325,11 @@ Change Ranger: CHANGE A Homeless Survival Experience: {} steam: id: 926140 +'Change: A Little Story': + installDir: + Change A Little Story: {} + steam: + id: 979790 Changed: files: '/Save{{code|X}}.rvdata': @@ -38906,11 +38921,12 @@ Cherry Tree High Girls' Fight: id: 459540 Cherry Tree High I! My! Girls!: files: - '[[Glossary:Game_data#Steam|]]/steamapps/common/Cherry Tree High I My Girls/Save1.rxdata': + /steamapps/common/Cherry Tree High I My Girls/Save1.rxdata: tags: - save when: - os: windows + store: steam installDir: Cherry Tree High I My Girls: {} steam: @@ -43231,7 +43247,7 @@ Coin Commander: id: 1214530 Coin Crypt: files: - '/Coin/config': + /Coin/config: tags: - config when: @@ -44859,6 +44875,16 @@ Company of Heroes: - config when: - store: steam + /My Games/Company of Heroes Relaunch/*.lua: + tags: + - config + when: + - store: steam + /My Games/Company of Heroes Relaunch/*.txt: + tags: + - config + when: + - store: steam /My Games/Company of Heroes Relaunch/Savegames: tags: - save @@ -44869,6 +44895,16 @@ Company of Heroes: - config when: - os: windows + /My Games/Company of Heroes/*.lua: + tags: + - config + when: + - os: windows + /My Games/Company of Heroes/*.txt: + tags: + - config + when: + - os: windows /My Games/Company of Heroes/Savegames: tags: - save @@ -49140,6 +49176,11 @@ Crowntakers: - save when: - os: windows + /AppData/LocalLow/Bulwark Studios/Crowntakers: + tags: + - config + when: + - os: windows installDir: Crowntakers: {} registry: @@ -53467,6 +53508,11 @@ Dark Sector: - config when: - os: windows + /Aspyr/Dark Sector/settings: + tags: + - config + when: + - os: windows /Dark Sector: tags: - save @@ -56789,6 +56835,11 @@ Death Stair: id: 444880 Death Stranding: files: + /settings.cfg: + tags: + - config + when: + - os: windows /KojimaProductions/DeathStranding: tags: - save @@ -56920,6 +56971,17 @@ Death by Game Show: steam: id: 409730 Death end re;Quest: + files: + /resource/bin/Application.ini: + tags: + - config + when: + - os: windows + /resource/bin/SYSTEMSAVE: + tags: + - save + when: + - os: windows installDir: Death end reQuest: {} steam: @@ -59692,6 +59754,7 @@ Desperados III: files: /Desperados III: tags: + - config - save when: - os: windows @@ -60875,7 +60938,12 @@ Diablo: - config Diablo II: files: - "/Save
\nAs of v1.14 patch: C:/Users/(user name)/Saved Games/Diablo II": + /Save: + tags: + - save + when: + - os: windows + /Saved Games/Diablo II: tags: - save when: @@ -62659,16 +62727,21 @@ Distant Space 2: id: 335830 'Distant Worlds: Universe': files: + /Startup.ini: + tags: + - config + when: + - os: windows + /Documents/My Games/Distant Worlds Universe: + tags: + - config + when: + - os: windows /Documents/My Games/Distant Worlds Universe/SavedGames: tags: - save when: - os: windows - /Documents/My Games/Distant Worlds Universe
/Startup.ini: - tags: - - config - when: - - os: windows installDir: Distant Worlds Universe: {} steam: @@ -64257,6 +64330,10 @@ Doodle God: - store: steam installDir: Doodle God: {} + registry: + HKEY_CURRENT_USER/SOFTWARE/JoyBits/dg: + tags: + - config steam: id: 348360 Doodle God Blitz: @@ -66837,6 +66914,11 @@ Dreamcage Escape: id: 556890 Dreamfall Chapters: files: + /.config/RedThreadGames/DreamfallChapters: + tags: + - save + when: + - os: mac /.config/unity3d/Red Thread Games/Dreamfall Chapters: tags: - config @@ -69939,24 +70021,24 @@ Dynasty Feud: id: 493180 'Dynasty Warriors 4: Hyper': files: - '/KOEI/{{LocalizedPath|Dynasty Warriors 4 Hyper}}': + /KOEI/Dynasty Warriors 4 Hyper: tags: - config when: - os: windows - '/KOEI/{{LocalizedPath|Dynasty Warriors 4 Hyper}}/Savedata': + /KOEI/Dynasty Warriors 4 Hyper/Savedata: tags: - save when: - os: windows Dynasty Warriors 5 Special: files: - '/KOEI/{{LocalizedPath|Dynasty Warriors 5 Special}}': + /KOEI/Dynasty Warriors 5 Special: tags: - config when: - os: windows - '/KOEI/{{LocalizedPath|Dynasty Warriors 5 Special}}/Savedata': + /KOEI/Dynasty Warriors 5 Special/Savedata: tags: - save when: @@ -80944,6 +81026,11 @@ Far Cry 3: - config when: - os: windows + /My Games/Far Cry 3/InputUserActionMap.xml: + tags: + - config + when: + - os: windows installDir: Far Cry 3: {} steam: @@ -99162,6 +99249,22 @@ Gunball: Gunball: {} steam: id: 632240 +Gunbird: + files: + /gunbird/savedata.bin: + tags: + - save + when: + - os: windows + /gunbird/setting.bin: + tags: + - config + when: + - os: windows + installDir: + GUNBIRD: {} + steam: + id: 1261970 Guncraft: files: /GunCraft: @@ -107768,12 +107871,33 @@ Holy Knight Luviria: steam: id: 1156730 Holy Potatoes! A Spy Story?!: + files: + /Library/Application Support/Daedalic Entertainment GmbH/HPSPY/Saves: + tags: + - save + when: + - os: mac installDir: Holy Potatoes! A Spy Story!: {} steam: id: 830590 Holy Potatoes! A Weapon Shop?!: files: + /Documents/SavedGames/WS_*.txt: + tags: + - save + when: + - os: mac + /Library/Application Support/unity.DaylightStudios.HPAWS: + tags: + - config + when: + - os: mac + /SavedGames/WS_*.txt: + tags: + - save + when: + - os: windows /SavedGames/uploadData: tags: - save @@ -120248,6 +120372,12 @@ Karma. Incarnation 1: steam: id: 317940 Karmasutra: + files: + /.renpy/Karmasutra-##########: + tags: + - save + when: + - os: linux installDir: Karmasutra: {} steam: @@ -121989,7 +122119,7 @@ King's Quest (2015): when: - os: dos - os: windows - 'For the AGI version the game auto detects video and audio at each startup
For the SCI version: /RESOURCE.CFG': + /RESOURCE.CFG: tags: - config when: @@ -128593,6 +128723,11 @@ Life Is Strange: id: 319630 Life Is Strange 2: files: + /Library/Application Support/Feral Interactive/Life is Strange 2/SaveData: + tags: + - save + when: + - os: mac /Dontnod//LIS2/Saved/Config/WindowsNoEditor: tags: - config @@ -129334,6 +129469,11 @@ Limberjack: id: 500660 Limbo: files: + /save_game/savegame.txt: + tags: + - save + when: + - os: windows /settings.txt: tags: - config @@ -137007,6 +137147,12 @@ Mark After Dark: id: 713980 Mark of the Ninja: files: + /users: + tags: + - config + - save + when: + - os: windows /.klei/ninja/users: tags: - config @@ -142028,15 +142174,21 @@ Mighty Gunvolt: id: 394600 Mighty Gunvolt Burst: files: - /exe/GameData*.bin
/exe/SystemData.bin: + /exe/GameData*.bin: tags: - save when: - os: windows + /exe/SystemData.bin: + tags: + - config + - save + when: + - os: windows installDir: Mighty Gunvolt Burst: {} registry: - HKEY_CURRENT_USER/Software/Inti/MGVB
/exe/SystemData.bin: + HKEY_CURRENT_USER/Software/Inti/MGVB: tags: - config steam: @@ -145931,7 +146083,7 @@ Morph Pong: id: 983320 MorphX: files: - /data/config.cfg
/My Games/The Swarm/user_config.cfg: + /data/config.cfg: tags: - save when: @@ -145941,6 +146093,11 @@ MorphX: - save when: - os: windows + /My Games/The Swarm/user_config.cfg: + tags: + - save + when: + - os: windows Morphblade: installDir: Morphblade: {} @@ -159473,8 +159630,14 @@ Operation Warcade VR: steam: id: 1095480 Operator: + files: + /AppData/LocalLow/Greenfly Studios/Operator: + tags: + - config + when: + - os: windows registry: - '{{Path|userprofile}}/AppData/LocalLow/Greenfly Studios/Operator
HKEY_CURRENT_USER/SOFTWARE/Greenfly Studios/Operator': + HKEY_CURRENT_USER/SOFTWARE/Greenfly Studios/Operator: tags: - config Operator Overload: @@ -182972,12 +183135,22 @@ Retro/Grade: id: 222660 RetroArch: files: - /retroarch.cfg
/retroarch-core-options.cfg: + /retroarch-core-options.cfg: tags: - config when: - os: windows - /saves/
/states: + /retroarch.cfg: + tags: + - config + when: + - os: windows + /saves: + tags: + - save + when: + - os: windows + /states: tags: - save when: @@ -183595,6 +183768,9 @@ Rez Infinite: Rez Infinite: {} steam: id: 636450 +Rez Plz: + steam: + id: 911680 'Rezist: Tower Defense': installDir: Rezist Tower Defense: {} @@ -184255,12 +184431,18 @@ RimWorld: - save when: - os: linux - /AppData/LocalLow/Ludeon Studios/RimWorld/
/AppData/LocalLow/Ludeon Studios/RimWorld by Ludeon Studios/Config: + /AppData/LocalLow/Ludeon Studios/RimWorld: + tags: + - config + - save + when: + - os: windows + /AppData/LocalLow/Ludeon Studios/RimWorld by Ludeon Studios/Config: tags: - config when: - os: windows - /AppData/LocalLow/Ludeon Studios/RimWorld/
/AppData/LocalLow/Ludeon Studios/RimWorld by Ludeon Studios/Saves: + /AppData/LocalLow/Ludeon Studios/RimWorld by Ludeon Studios/Saves: tags: - save when: @@ -185344,16 +185526,21 @@ Road Rage Royale: id: 884610 Road Redemption: files: + /.config/unity3d/DarkSeas/Road Redemption - Early Access: + tags: + - config + when: + - os: linux + /Documents/Road Redemption: + tags: + - config + when: + - os: linux /Documents/Road Redemption/Saves: tags: - save when: - os: linux - /Documents/Road Redemption
~/.config/unity3d/DarkSeas/Road Redemption - Early Access: - tags: - - config - when: - - os: linux /documents/roadredemption: tags: - config @@ -190880,12 +191067,22 @@ Sakura Sakura: id: 658140 Sakura Santa: files: - "/game/saves/*.save
\n/RenPy/Sakura Santa-1446717813/*.save": + /game/saves/*.save: tags: - save when: - os: windows - "/game/saves/persistent
\n/RenPy/Sakura Santa-1446717813/persistent": + /game/saves/persistent: + tags: + - config + when: + - os: windows + /RenPy/Sakura Santa-1446717813/*.save: + tags: + - save + when: + - os: windows + /RenPy/Sakura Santa-1446717813/persistent: tags: - config when: @@ -192315,6 +192512,11 @@ Scania Truck Driving Simulator: - save when: - os: windows + /SCANIA Truck Driving Simulator/profile//config.cfg: + tags: + - config + when: + - os: windows installDir: Scania Truck Driving Simulator: {} steam: @@ -203868,6 +204070,37 @@ Someone Cloned The President: steam: id: 1136820 Something Ate My Alien: + files: + '%USERPROFILE%/Documents/My Games/Something Ate My Alien/GameData': + tags: + - save + when: + - os: windows + '%USERPROFILE%/Documents/My Games/Something Ate My Alien/GameSaves': + tags: + - save + when: + - os: windows + /.local/share/Something-Ate-My-Alien/GameData: + tags: + - save + when: + - os: linux + /.local/share/Something-Ate-My-Alien/GameSaves: + tags: + - save + when: + - os: linux + /Library/Application Support/Something-Ate-My-Alien/GameData: + tags: + - save + when: + - os: mac + /Library/Application Support/Something-Ate-My-Alien/GameSaves: + tags: + - save + when: + - os: mac installDir: Something Ate My Alien: {} steam: @@ -210467,6 +210700,11 @@ Star Wars Galaxies: - save when: - os: windows + /Game/player.nf1: + tags: + - config + when: + - os: windows /Game/player.nfx: tags: - config @@ -210474,6 +210712,10 @@ Star Wars Galaxies: - os: windows installDir: STAR WARS - Galactic Battlegrounds Saga: {} + registry: + 'HKEY_CURRENT_USER/Software/LucasArts Entertainment Company LLC/Star Wars Galactic Battlegrounds: Clone Campaigns/1.0': + tags: + - config steam: id: 356500 'Star Wars: Imperial Assault - Legends of the Alliance': @@ -215082,10 +215324,15 @@ Stupid Raft Battle Simulator: - save when: - os: windows + /AppData/LocalLow/Cultic Games/STYGIAN/Settings.dat: + tags: + - config + when: + - os: windows installDir: Stygian Reign of the Old Ones: {} registry: - /AppData/LocalLow/Cultic Games/STYGIAN/Settings.dat
HKEY_CURRENT_USER/Software/Cultic Games/STYGIAN: + HKEY_CURRENT_USER/Software/Cultic Games/STYGIAN: tags: - config steam: @@ -219847,12 +220094,17 @@ Sword of the Slayer: id: 1152050 Sword of the Stars: files: + /Profiles: + tags: + - config + when: + - os: windows /SavedGames: tags: - save when: - os: windows -
/Profiles: + '{{P|undefined}}game': tags: - config when: @@ -220437,7 +220689,7 @@ System Goose Overload: id: 672000 System Shock: files: - /CYB.CFG
Some data is stored within the save files.: + /CYB.CFG: tags: - config when: @@ -227780,17 +228032,22 @@ The Curse of Issyos: - os: windows The Curse of Monkey Island: files: + /Saves: + tags: + - save + when: + - store: gog + /Saves/monkey3.c*: + tags: + - save + when: + - os: windows /Saves/monkey3.c01: tags: - config when: - os: windows - '/Saves/monkey3.c{{code|*}}': - tags: - - save - when: - - os: windows - '/Saves
/Saves/monkey3.s{{code|*}}': + /Saves/monkey3.s*: tags: - save when: @@ -234745,7 +235002,7 @@ The Outer Worlds: - save when: - os: windows - "/Saved Games/The Outer Worlds Windows 10//
\n/Packages/PrivateDivision.TheOuterWorldsWindows10_hv3d7yfbgr2rp/SystemAppData/wgs/": + /Saved Games/The Outer Worlds Windows 10/: tags: - save when: @@ -234762,6 +235019,12 @@ The Outer Worlds: when: - os: windows store: microsoft + /Packages/PrivateDivision.TheOuterWorldsWindows10_hv3d7yfbgr2rp/SystemAppData/wgs/: + tags: + - save + when: + - os: windows + store: microsoft steam: id: 578650 'The Outlaw, The Drunk, & The Whore': @@ -238777,6 +239040,11 @@ The Walking Dead Onslaught: - save when: - os: windows + /Telltale Games/The Walking Dead A New Frontier: + tags: + - save + when: + - os: windows installDir: The Walking Dead - A New Frontier (Season 3): {} steam: @@ -243531,11 +243799,26 @@ Tom Clancy's Splinter Cell: id: 33229 'Tom Clancy''s Splinter Cell: Double Agent': files: + /SCDA-Offline/System/SplinterCell4.ini: + tags: + - config + when: + - os: windows + /SCDA-Online/System/Default.ini: + tags: + - config + when: + - os: windows /Application Data/Ubisoft/SplinterCell4/: tags: - save when: - os: windows + /Application Data/Ubisoft/SplinterCell4/save/Offline/: + tags: + - save + when: + - os: windows installDir: Splinter Cell - Double Agent: {} steam: @@ -244747,7 +245030,12 @@ Total Tank Simulator: id: 364360 'Total War: Warhammer II': files: - /The Creative Assembly/Warhammer2/save_games/
/The Creative Assembly/Warhammer2/save_games_multiplayer: + /The Creative Assembly/Warhammer2/save_games: + tags: + - save + when: + - os: windows + /The Creative Assembly/Warhammer2/save_games_multiplayer: tags: - save when: @@ -254686,6 +254974,10 @@ Vampire of the Sands: - os: windows installDir: Vampire The Masquerade - Bloodlines: {} + registry: + HKEY_CURRENT_USER/Software/Troika/Vampire: + tags: + - config steam: id: 2600 'Vampire: The Masquerade - Bloodlines 2': @@ -257612,6 +257904,11 @@ Volvo - The Game: - save when: - os: windows + /SimBin/Volvo - The Game/UserData/ControlSet: + tags: + - config + when: + - os: windows Volvox: installDir: Volvox: {} @@ -264257,12 +264554,22 @@ Without Within 2: id: 398980 Without Within 3: files: - "/game/saves/*.save
\n/RenPy/wowi3-1409958485/*.save": + /game/saves/*.save: tags: - save when: - os: windows - "/game/saves/persistent
\n/RenPy/wowi3-1409958485/persistent": + /game/saves/persistent: + tags: + - config + when: + - os: windows + /RenPy/wowi3-1409958485/*.save: + tags: + - save + when: + - os: windows + /RenPy/wowi3-1409958485/persistent: tags: - config when: diff --git a/data/missing.md b/data/missing.md index ce2fd160..6ce6f6f6 100644 --- a/data/missing.md +++ b/data/missing.md @@ -5340,9 +5340,9 @@ * [Championship Manager: Season 99/00](https://www.pcgamingwiki.com/wiki/?curid=154738) * [Championship Surfer](https://www.pcgamingwiki.com/wiki/?curid=75742) * [Change](https://www.pcgamingwiki.com/wiki/?curid=78364) -* [Change : A Little Story](https://www.pcgamingwiki.com/wiki/?curid=124249) * [Change Ranger](https://www.pcgamingwiki.com/wiki/?curid=156523) * [Change: A Homeless Survival Experience](https://www.pcgamingwiki.com/wiki/?curid=112288) +* [Change: A Little Story](https://www.pcgamingwiki.com/wiki/?curid=124249) * [Changeling](https://www.pcgamingwiki.com/wiki/?curid=125980) * [Changeover: Decisions](https://www.pcgamingwiki.com/wiki/?curid=92291) * [Changes](https://www.pcgamingwiki.com/wiki/?curid=138662) @@ -7729,7 +7729,6 @@ * [Death Collector](https://www.pcgamingwiki.com/wiki/?curid=123419) * [Death Crown](https://www.pcgamingwiki.com/wiki/?curid=89704) * [Death Dojo](https://www.pcgamingwiki.com/wiki/?curid=53041) -* [Death end re;Quest](https://www.pcgamingwiki.com/wiki/?curid=130527) * [Death Field: The Battle Royale of Disaster](https://www.pcgamingwiki.com/wiki/?curid=91880) * [Death from Unknown: Survival](https://www.pcgamingwiki.com/wiki/?curid=90324) * [Death Fungeon](https://www.pcgamingwiki.com/wiki/?curid=103979) @@ -14424,7 +14423,6 @@ * [Holy Avenger](https://www.pcgamingwiki.com/wiki/?curid=54503) * [HOLY COW! Milking Simulator](https://www.pcgamingwiki.com/wiki/?curid=137003) * [Holy Knight Luviria](https://www.pcgamingwiki.com/wiki/?curid=150560) -* [Holy Potatoes! A Spy Story?!](https://www.pcgamingwiki.com/wiki/?curid=92349) * [Holy Potatoes! What the Hell?!](https://www.pcgamingwiki.com/wiki/?curid=69038) * [Holy Road](https://www.pcgamingwiki.com/wiki/?curid=128539) * [Holy Sheet](https://www.pcgamingwiki.com/wiki/?curid=121249) @@ -16201,7 +16199,6 @@ * [Karma Miwa](https://www.pcgamingwiki.com/wiki/?curid=35978) * [Karma. Incarnation 1](https://www.pcgamingwiki.com/wiki/?curid=39538) * [Karmaflow: The Rock Opera Videogame - Act I & Act II](https://www.pcgamingwiki.com/wiki/?curid=47994) -* [Karmasutra](https://www.pcgamingwiki.com/wiki/?curid=66277) * [KARMORA](https://www.pcgamingwiki.com/wiki/?curid=157096) * [Karnage Chronicles](https://www.pcgamingwiki.com/wiki/?curid=60313) * [Karos](https://www.pcgamingwiki.com/wiki/?curid=49059) @@ -20734,6 +20731,7 @@ * [NITE Team 4](https://www.pcgamingwiki.com/wiki/?curid=55616) * [NitorInc.: Touhou Microgames!](https://www.pcgamingwiki.com/wiki/?curid=79446) * [Nitro Family](https://www.pcgamingwiki.com/wiki/?curid=161714) +* [Nitro Stunt Racing](https://www.pcgamingwiki.com/wiki/?curid=161868) * [Nitroneers](https://www.pcgamingwiki.com/wiki/?curid=142127) * [NitroRage](https://www.pcgamingwiki.com/wiki/?curid=64329) * [No Body Home](https://www.pcgamingwiki.com/wiki/?curid=122784) @@ -24605,6 +24603,7 @@ * [Rexodus: A VR Story Experience](https://www.pcgamingwiki.com/wiki/?curid=42635) * [ReYal](https://www.pcgamingwiki.com/wiki/?curid=136694) * [Reynard](https://www.pcgamingwiki.com/wiki/?curid=122060) +* [Rez Plz](https://www.pcgamingwiki.com/wiki/?curid=161853) * [Rezist: Tower Defense](https://www.pcgamingwiki.com/wiki/?curid=149452) * [REZPLZ](https://www.pcgamingwiki.com/wiki/?curid=128643) * [Rezrog](https://www.pcgamingwiki.com/wiki/?curid=57016) @@ -27302,7 +27301,6 @@ * [Someday](https://www.pcgamingwiki.com/wiki/?curid=141837) * [Someday You'll Return](https://www.pcgamingwiki.com/wiki/?curid=95170) * [Someone Cloned The President](https://www.pcgamingwiki.com/wiki/?curid=143886) -* [Something Ate My Alien](https://www.pcgamingwiki.com/wiki/?curid=132846) * [Something for Someone Else](https://www.pcgamingwiki.com/wiki/?curid=144781) * [Something is wrong/有毛病](https://www.pcgamingwiki.com/wiki/?curid=127690) * [Something To Do With Love](https://www.pcgamingwiki.com/wiki/?curid=67663) @@ -32808,6 +32806,7 @@ * [Truck Life](https://www.pcgamingwiki.com/wiki/?curid=150531) * [Truck Mechanic Simulator 2015](https://www.pcgamingwiki.com/wiki/?curid=48040) * [Truck Racer](https://www.pcgamingwiki.com/wiki/?curid=40570) +* [Truck Racing by Renault Trucks](https://www.pcgamingwiki.com/wiki/?curid=161849) * [Truck the System](https://www.pcgamingwiki.com/wiki/?curid=139294) * [Trucker](https://www.pcgamingwiki.com/wiki/?curid=52221) * [Trucker 2](https://www.pcgamingwiki.com/wiki/?curid=46883) diff --git a/data/steam-game-cache.yaml b/data/steam-game-cache.yaml index d0b9204c..9c399317 100644 --- a/data/steam-game-cache.yaml +++ b/data/steam-game-cache.yaml @@ -14881,6 +14881,8 @@ installDir: The Casebook of Arkady Smith '1261880': installDir: Education +'1261970': + installDir: GUNBIRD '1262240': installDir: PVZ Battle for Neighborville '1262540': diff --git a/data/wiki-game-cache.yaml b/data/wiki-game-cache.yaml index 0384f80f..b1c07fba 100644 --- a/data/wiki-game-cache.yaml +++ b/data/wiki-game-cache.yaml @@ -1653,7 +1653,6 @@ A Rite from the Stars: pageId: 103285 revId: 841573 A Robot Named Fight!: - irregularPath: true pageId: 66273 revId: 934101 A Roll-Back Story: @@ -4452,7 +4451,7 @@ Alaloth - Champions of The Four Kingdoms: revId: 973609 Alan Wake: pageId: 536 - revId: 969906 + revId: 983052 Alan Wake's American Nightmare: pageId: 7197 revId: 971483 @@ -5799,7 +5798,7 @@ An Octonaut Odyssey: revId: 842808 An Untitled Story: pageId: 137173 - revId: 794241 + revId: 983269 tooBroad: true Ana The Game: pageId: 90228 @@ -6376,7 +6375,7 @@ Anno 1404: revId: 979278 'Anno 1404: History Edition': pageId: 161410 - revId: 982290 + revId: 983212 Anno 1503: pageId: 27506 revId: 979275 @@ -11211,7 +11210,7 @@ BattleStorm: revId: 844422 BattleTech: pageId: 62370 - revId: 973863 + revId: 983246 BattleTime: pageId: 40327 revId: 844424 @@ -11277,7 +11276,7 @@ Battlefleet Engineer: revId: 979735 'Battlefleet Gothic: Armada 2': pageId: 95911 - revId: 979906 + revId: 983248 Battlegrounds of Eldhelm: pageId: 49474 revId: 844443 @@ -18268,7 +18267,7 @@ Carrier Trail: revId: 846619 Carrion: pageId: 139686 - revId: 982156 + revId: 983245 Carrotting Brain: pageId: 45922 revId: 846621 @@ -19083,7 +19082,7 @@ Celaria: revId: 927635 Celeste: pageId: 61156 - revId: 971419 + revId: 983257 Celestial: pageId: 144911 revId: 840281 @@ -19372,16 +19371,18 @@ Championship Surfer: revId: 779156 Change: pageId: 78364 - revId: 846915 -'Change : A Little Story': - pageId: 124249 - revId: 846916 + revId: 983181 Change Ranger: pageId: 156523 revId: 931693 'Change: A Homeless Survival Experience': pageId: 112288 - revId: 958275 + revId: 983184 +'Change: A Little Story': + pageId: 124249 + renamedFrom: + - 'Change : A Little Story' + revId: 983182 Changed: pageId: 88866 revId: 846917 @@ -19679,7 +19680,7 @@ Cherry Tree High Girls' Fight: revId: 847005 Cherry Tree High I! My! Girls!: pageId: 23223 - revId: 883731 + revId: 983313 Cherry in the Sky: pageId: 98462 revId: 847007 @@ -21079,7 +21080,7 @@ Claude Monet - The Water Lily obsession: revId: 847439 Claw: pageId: 4449 - revId: 966783 + revId: 983176 unsupportedPath: true Claw Breaker: pageId: 100470 @@ -21548,7 +21549,7 @@ ClusterPuck 99: revId: 847587 Clustertruck: pageId: 37020 - revId: 943502 + revId: 983290 Clutch: pageId: 41263 revId: 968460 @@ -21831,6 +21832,7 @@ Coin Commander: pageId: 156234 revId: 931401 Coin Crypt: + irregularPath: true pageId: 26839 revId: 982667 Coin Pickers: @@ -22324,7 +22326,7 @@ Combat Tested: revId: 847803 'Combat Wings: Battle of Britain': pageId: 41221 - revId: 847804 + revId: 983285 Combate Monero: pageId: 134439 revId: 847805 @@ -22553,7 +22555,7 @@ Companion: revId: 847884 Company of Heroes: pageId: 468 - revId: 975784 + revId: 983292 Company of Heroes 2: pageId: 6265 revId: 926426 @@ -23817,7 +23819,7 @@ Crayon Chronicles: revId: 848258 Crayon Physics Deluxe: pageId: 4725 - revId: 934470 + revId: 983121 Crazy Alchemist: pageId: 109762 revId: 848260 @@ -23910,25 +23912,25 @@ Crazy Justice: revId: 848286 Crazy Machines: pageId: 41328 - revId: 967017 + revId: 983107 Crazy Machines 1.5: pageId: 41327 - revId: 932964 + revId: 983108 Crazy Machines 2: pageId: 41356 - revId: 932965 + revId: 983109 Crazy Machines 3: pageId: 36944 - revId: 955349 + revId: 983112 Crazy Machines Elements: pageId: 40835 - revId: 974227 + revId: 983110 Crazy Machines VR: pageId: 121351 revId: 848292 'Crazy Machines: Golden Gears': pageId: 50526 - revId: 899050 + revId: 983111 Crazy Max VR: pageId: 55201 revId: 886879 @@ -24043,7 +24045,7 @@ CreaVures: revId: 982298 Creaks: pageId: 122870 - revId: 982299 + revId: 983234 CreateTech: pageId: 154215 revId: 916986 @@ -24349,7 +24351,7 @@ Critical Gravity: revId: 848413 Critical Mass: pageId: 5601 - revId: 912973 + revId: 983278 Critical Mess: pageId: 80366 revId: 848416 @@ -24541,7 +24543,7 @@ Crowd Smashers: revId: 848465 Crowman & Wolfboy: pageId: 44982 - revId: 911877 + revId: 983117 'Crown Champion: Legends of the Arena': pageId: 51459 revId: 848467 @@ -25058,10 +25060,10 @@ Cubelz: revId: 848611 Cubemen: pageId: 5187 - revId: 933340 + revId: 983132 Cubemen 2: pageId: 6273 - revId: 933341 + revId: 983165 Cubeology: pageId: 109144 revId: 848614 @@ -25920,7 +25922,7 @@ DINO VR: revId: 848838 DIRT 5: pageId: 160129 - revId: 980447 + revId: 983318 DISONANTE: pageId: 136393 revId: 848839 @@ -26373,7 +26375,7 @@ Dangerous Ground: revId: 848962 Dangerous High School Girls in Trouble!: pageId: 41315 - revId: 933339 + revId: 983226 Dangerous Lands - Magic and RPG: pageId: 108316 revId: 848964 @@ -27080,7 +27082,7 @@ Darkour: revId: 902212 Darkout: pageId: 40499 - revId: 971922 + revId: 983126 Darkroom: pageId: 76103 revId: 849177 @@ -28169,7 +28171,7 @@ Death Stair: revId: 849517 Death Stranding: pageId: 151674 - revId: 983020 + revId: 983345 Death Sword: pageId: 76506 revId: 964739 @@ -28214,7 +28216,7 @@ Death by Game Show: revId: 849527 Death end re;Quest: pageId: 130527 - revId: 982139 + revId: 983339 'Death from Unknown: Survival': pageId: 90324 revId: 849529 @@ -30007,7 +30009,7 @@ Diablo: revId: 979272 Diablo II: pageId: 595 - revId: 976954 + revId: 983291 Diablo III: pageId: 2185 revId: 970226 @@ -30897,7 +30899,7 @@ Distant Space 2: revId: 850517 'Distant Worlds: Universe': pageId: 50198 - revId: 972001 + revId: 983293 Distorted Illusions: pageId: 113446 revId: 850520 @@ -31666,7 +31668,7 @@ Doodle Farm: revId: 850746 Doodle God: pageId: 30792 - revId: 919635 + revId: 983085 Doodle God Blitz: pageId: 63199 revId: 850748 @@ -31913,7 +31915,7 @@ Double Death: revId: 850813 Double Dragon IV: pageId: 57087 - revId: 983028 + revId: 983080 Double Dragon Neon: pageId: 14824 revId: 983025 @@ -32617,7 +32619,7 @@ Draw With Unknown: revId: 851020 Draw Your Game: pageId: 66454 - revId: 971897 + revId: 983106 'Draw a Stickman: EPIC': pageId: 17550 revId: 933990 @@ -33693,7 +33695,7 @@ Dungeon Explorer: revId: 900249 Dungeon Fighter Online: pageId: 38578 - revId: 851320 + revId: 983105 Dungeon Gambit Boy: pageId: 88047 revId: 851321 @@ -34221,11 +34223,13 @@ Dynasty Feud: pageId: 57018 revId: 851479 'Dynasty Warriors 4: Hyper': + irregularPath: true pageId: 16672 - revId: 983045 + revId: 983225 Dynasty Warriors 5 Special: + irregularPath: true pageId: 111468 - revId: 981759 + revId: 983077 Dynasty Warriors 6: pageId: 5157 revId: 976555 @@ -35588,7 +35592,7 @@ Elium - Prison Escape: revId: 851856 Eliza: pageId: 142935 - revId: 960638 + revId: 983266 Elizabeth Find M.D. - Diagnosis Mystery - Season 2: pageId: 40962 revId: 851857 @@ -36149,7 +36153,7 @@ Endless Labyrinth: revId: 852028 Endless Legend: pageId: 16971 - revId: 967465 + revId: 983253 Endless Maneuver: pageId: 123560 revId: 852031 @@ -39434,7 +39438,7 @@ Far Cry 2: revId: 982380 Far Cry 3: pageId: 3763 - revId: 982657 + revId: 983231 Far Cry 3 - Blood Dragon: pageId: 6362 revId: 982059 @@ -40234,7 +40238,7 @@ Field of Glory II: revId: 966376 Fieldrunners: pageId: 5254 - revId: 982659 + revId: 983075 Fieldrunners 2: pageId: 13428 revId: 934001 @@ -44426,7 +44430,7 @@ Game Studio Simulator(我要做游戏): revId: 854524 Game Tengoku CruisinMix: pageId: 70703 - revId: 982856 + revId: 983220 Game Tube: pageId: 78044 revId: 854526 @@ -48242,6 +48246,9 @@ GunWorld: Gunball: pageId: 63342 revId: 855635 +Gunbird: + pageId: 161870 + revId: 983335 Guncraft: pageId: 9348 revId: 855636 @@ -48280,7 +48287,7 @@ Gunlok: tooBroad: true Gunman Chronicles: pageId: 6558 - revId: 967834 + revId: 983053 Gunman Clive: pageId: 18157 revId: 855644 @@ -49006,7 +49013,7 @@ Halo 2: revId: 981416 Halo 3: pageId: 129522 - revId: 982900 + revId: 983213 'Halo 3: ODST': pageId: 129524 revId: 981920 @@ -49051,7 +49058,7 @@ Halo Wars 2: revId: 960732 'Halo: The Master Chief Collection': pageId: 129467 - revId: 983017 + revId: 983242 Halunazi: pageId: 74403 revId: 855847 @@ -52105,7 +52112,7 @@ Hitman GO: revId: 974591 'Hitman: Codename 47': pageId: 3615 - revId: 981094 + revId: 983312 'Hitman: Contracts': pageId: 491 revId: 974592 @@ -52352,10 +52359,10 @@ Holy Knight Luviria: revId: 925694 Holy Potatoes! A Spy Story?!: pageId: 92349 - revId: 926185 + revId: 983239 Holy Potatoes! A Weapon Shop?!: pageId: 31965 - revId: 926183 + revId: 983237 Holy Potatoes! We're in Space?!: pageId: 39364 revId: 926182 @@ -53361,7 +53368,7 @@ Humanity Must Perish: revId: 857092 Humankind: pageId: 143525 - revId: 978710 + revId: 983255 Humans 101: pageId: 144168 revId: 839504 @@ -53625,7 +53632,7 @@ Hypatia: revId: 886472 'Hype: The Time Quest': pageId: 1680 - revId: 807751 + revId: 983074 Hyper Arena VR: pageId: 81735 revId: 886473 @@ -58662,7 +58669,7 @@ Karma. Incarnation 1: revId: 858551 Karmasutra: pageId: 66277 - revId: 858552 + revId: 983215 Karnage Chronicles: pageId: 60313 revId: 858553 @@ -59195,7 +59202,7 @@ Killing Floor - Toy Master: revId: 934193 Killing Floor 2: pageId: 17184 - revId: 982457 + revId: 983238 'Killing Floor: Incursion': pageId: 68296 revId: 934195 @@ -59495,7 +59502,7 @@ King's Quest (2015): revId: 978249 'King''s Quest: Quest for the Crown': pageId: 7977 - revId: 972006 + revId: 983294 tooBroad: true 'King''s Table: The Legend of Ragnarok': pageId: 17074 @@ -62663,7 +62670,7 @@ Life Is Strange: revId: 974600 Life Is Strange 2: pageId: 69523 - revId: 977311 + revId: 983243 'Life Is Strange: Before the Storm': pageId: 63562 revId: 979821 @@ -68766,7 +68773,7 @@ MetrixVR: revId: 900651 Metro 2033: pageId: 720 - revId: 968549 + revId: 983054 Metro 2033 Redux: pageId: 17417 revId: 970072 @@ -68960,7 +68967,7 @@ Microsoft Flight: revId: 951244 Microsoft Flight Simulator (2020): pageId: 138499 - revId: 982533 + revId: 983274 'Microsoft Flight Simulator 2004: A Century of Flight': pageId: 2927 revId: 925881 @@ -69221,7 +69228,7 @@ Mighty Gunvolt: revId: 977581 Mighty Gunvolt Burst: pageId: 140452 - revId: 971475 + revId: 983336 Mighty Jill Off: pageId: 60981 revId: 793482 @@ -71132,7 +71139,7 @@ Morph Pong: revId: 862087 MorphX: pageId: 147974 - revId: 923421 + revId: 983295 Morphblade: pageId: 58636 revId: 888425 @@ -74126,7 +74133,7 @@ Neon: revId: 896354 Neon Abyss: pageId: 132700 - revId: 982832 + revId: 983188 Neon Aileron: pageId: 122564 revId: 862918 @@ -75282,6 +75289,9 @@ Nirvana Pilot Yume: Nitro Family: pageId: 161714 revId: 981323 +Nitro Stunt Racing: + pageId: 161868 + revId: 983314 NitroRage: pageId: 64329 revId: 896537 @@ -77769,7 +77779,7 @@ Operation Warcade VR: revId: 840803 Operator: pageId: 151830 - revId: 905564 + revId: 983296 Operator 41: pageId: 147807 revId: 929480 @@ -79588,7 +79598,7 @@ PaperDolls: revId: 897226 Paperball: pageId: 156803 - revId: 981438 + revId: 983310 Paperbark: pageId: 122308 revId: 936484 @@ -87875,7 +87885,7 @@ Rebel Galaxy Outlaw: revId: 980729 'Rebel Inc: Escalation': pageId: 148907 - revId: 974638 + revId: 983199 Rebel Moon Rising: pageId: 131317 revId: 928371 @@ -89189,7 +89199,7 @@ Retro/Grade: revId: 910189 RetroArch: pageId: 141560 - revId: 977529 + revId: 983344 RetroFighter VR: pageId: 61948 revId: 898880 @@ -89463,6 +89473,9 @@ Reynard: Rez Infinite: pageId: 67775 revId: 981552 +Rez Plz: + pageId: 161853 + revId: 983223 'Rezist: Tower Defense': pageId: 149452 revId: 901148 @@ -89794,7 +89807,7 @@ Rikki & Vikki: revId: 898974 RimWorld: pageId: 13368 - revId: 972275 + revId: 983297 Rime: pageId: 56039 revId: 982593 @@ -90254,7 +90267,7 @@ Road Rash: unsupportedPath: true Road Redemption: pageId: 20759 - revId: 964496 + revId: 983299 Road Runner: pageId: 90813 revId: 981165 @@ -90730,7 +90743,7 @@ RockaBowling VR: revId: 899367 Rocket Arena: pageId: 136373 - revId: 982144 + revId: 983187 Rocket Armor: pageId: 77226 revId: 899369 @@ -93036,7 +93049,7 @@ Sakura Sakura: revId: 868235 Sakura Santa: pageId: 33448 - revId: 932799 + revId: 983346 Sakura Shrine Girls: pageId: 36718 revId: 868237 @@ -94723,7 +94736,7 @@ Senran Kagura Estival Versus: revId: 980673 Senran Kagura Peach Ball: pageId: 142627 - revId: 964493 + revId: 983136 Senran Kagura Peach Beach Splash: pageId: 87335 revId: 980648 @@ -98560,7 +98573,7 @@ Sniper Elite: revId: 937566 Sniper Elite 4: pageId: 31703 - revId: 974186 + revId: 983057 Sniper Elite 5: pageId: 133544 revId: 815639 @@ -99266,7 +99279,7 @@ Someone Cloned The President: revId: 839211 Something Ate My Alien: pageId: 132846 - revId: 974741 + revId: 983098 Something To Do With Love: pageId: 67663 revId: 870044 @@ -103123,7 +103136,7 @@ Steambirds Alliance: revId: 871203 Steamburg: pageId: 74528 - revId: 982648 + revId: 983076 Steamcraft: pageId: 126114 revId: 871205 @@ -104355,7 +104368,7 @@ Stupid Raft Battle Simulator: revId: 871564 'Stygian: Reign of the Old Ones': pageId: 80713 - revId: 971027 + revId: 983302 'Styx: Master of Shadows': pageId: 20406 revId: 960991 @@ -106610,7 +106623,7 @@ Sword of the Slayer: revId: 901490 Sword of the Stars: pageId: 204 - revId: 949809 + revId: 983303 'Sword of the Stars II: Lords of Winter': pageId: 10084 revId: 928505 @@ -106850,7 +106863,7 @@ System Goose Overload: revId: 872296 System Shock: pageId: 2984 - revId: 969850 + revId: 983347 System Shock (2020): pageId: 35013 revId: 982019 @@ -108858,10 +108871,10 @@ Test Drive 6: revId: 965191 Test Drive Unlimited: pageId: 10891 - revId: 981990 + revId: 983192 Test Drive Unlimited 2: pageId: 10902 - revId: 981989 + revId: 983241 tooBroad: true Test Drive Unlimited Solar Crown: pageId: 161699 @@ -110277,8 +110290,9 @@ The Curse of Issyos: pageId: 131775 revId: 783103 The Curse of Monkey Island: + irregularPath: true pageId: 17 - revId: 961019 + revId: 983304 The Curse of Nordic Cove: pageId: 48112 revId: 873279 @@ -111855,7 +111869,7 @@ The Hurricane of the Varstray -Collateral hazard-: revId: 981594 The I of the Dragon: pageId: 16662 - revId: 969508 + revId: 983183 The IL Tempo Game: pageId: 73967 revId: 873722 @@ -112583,19 +112597,19 @@ The Legend of Three Kingdoms 2: revId: 980014 The Legend of Three Kingdoms 3: pageId: 161523 - revId: 980690 + revId: 983211 The Legend of Three Kingdoms 4: pageId: 161547 - revId: 980114 + revId: 983202 The Legend of Three Kingdoms 5: pageId: 161555 - revId: 980117 + revId: 983204 The Legend of Three Kingdoms 6: pageId: 161558 - revId: 980118 + revId: 983206 The Legend of Three Kingdoms 7: pageId: 161559 - revId: 980119 + revId: 983209 The Legend of Tobimaru: pageId: 145363 revId: 840735 @@ -113526,7 +113540,7 @@ The Otterman Empire: revId: 874179 The Outer Worlds: pageId: 123318 - revId: 981567 + revId: 983349 The Outforce: pageId: 14801 revId: 779162 @@ -114888,7 +114902,7 @@ The Survivors: revId: 874549 The Swapper: pageId: 7798 - revId: 962649 + revId: 983062 The Swindle: pageId: 26795 revId: 874551 @@ -118035,7 +118049,7 @@ Total Tank Simulator: revId: 961092 'Total War: Warhammer II': pageId: 60343 - revId: 966141 + revId: 983305 Totally Accurate Battle Simulator: pageId: 39747 revId: 923451 @@ -119740,6 +119754,9 @@ Truck Mechanic Simulator 2015: Truck Racer: pageId: 40570 revId: 981281 +Truck Racing by Renault Trucks: + pageId: 161849 + revId: 983260 Truck the System: pageId: 139294 revId: 875921 @@ -121056,7 +121073,7 @@ Unborne: revId: 876267 'Unbound: Worlds Apart': pageId: 89726 - revId: 977572 + revId: 983275 Unbox: pageId: 36930 revId: 876270 @@ -124258,7 +124275,7 @@ Volume Up: revId: 839831 Volvo - The Game: pageId: 31793 - revId: 969186 + revId: 983341 Volvox: pageId: 45383 revId: 877203 @@ -127599,7 +127616,7 @@ Without Within 2: revId: 971263 Without Within 3: pageId: 92269 - revId: 932787 + revId: 983350 'Withstand: Apotheosis': pageId: 47017 revId: 878149 @@ -128427,7 +128444,7 @@ Worms Revolution: revId: 963016 Worms Rumble: pageId: 161530 - revId: 980039 + revId: 983272 Worms Ultimate Mayhem: pageId: 12022 revId: 980668 diff --git a/src/bin.ts b/src/bin.ts index 78c33b66..beb4c557 100644 --- a/src/bin.ts +++ b/src/bin.ts @@ -18,13 +18,27 @@ interface Cli { irregularPath?: boolean, tooBroad?: boolean, tooBroadUntagged?: boolean, - game?: string, recent?: number, limit?: number, } async function main() { - const args = minimist(process.argv.slice(2)); + const args = minimist(process.argv.slice(2), { + boolean: [ + "cache", + "manifest", + "stats", + "all", + "existing", + "missing", + "unchecked", + "unsupportedOs", + "unsupportedPath", + "irregularPath", + "tooBroad", + "tooBroadUntagged", + ] + }); const wikiCache = new WikiGameCacheFile(); wikiCache.load(); @@ -63,7 +77,7 @@ async function main() { tooBroad: args.tooBroad ?? false, tooBroadUntagged: args.tooBroadUntagged ?? false, irregularPath: args.irregularPath ?? false, - game: args.game, + games: args._, recent: args.recent, }, args.limit ?? 25, diff --git a/src/manifest.ts b/src/manifest.ts index d6b6324b..cc134620 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -54,7 +54,7 @@ export class ManifestFile extends YamlFile { irregularPath: boolean, tooBroad: boolean, tooBroadUntagged: boolean, - game: string | undefined, + games: Array | undefined, recent: number | undefined, }, limit: number | undefined, @@ -84,7 +84,7 @@ export class ManifestFile extends YamlFile { if (filter.irregularPath && (wikiCache[title].irregularPath || Object.keys(this.data[title]?.files ?? []).some(x => x.includes("{{") || x.includes("") || x.includes("
")))) { check = true; } - if (filter.game === title) { + if (filter.games && filter.games.includes(title)) { check = true; } if (filter.tooBroad && info.tooBroad) { diff --git a/src/wiki.ts b/src/wiki.ts index 31fac6b7..6c49499d 100644 --- a/src/wiki.ts +++ b/src/wiki.ts @@ -185,17 +185,15 @@ function makePathArgRegex(arg: string): RegExp { return new RegExp(escaped, "gi"); } -// Examples: -// [ [["p"], "linuxhome"], ".config" ] -// [ [["cn"], "Is this right?", "date=January 1, 2000"] ] -type PathSegment = string | [[string], ...Array]; +interface PathCell { + [index: number]: string | PathCell; + type: "comment" | "transclusion" | "page_title" | "plain"; + parameters: { [key: string]: any }; // keys are numbers as strings + toString(): string; +} -function stringifyPathSegment(segment: PathSegment): [string, boolean] { - if (typeof segment === "string") { - return [segment, true]; - } - - const templateName = segment[0][0]; +function stringifyTransclusionSegment(segment: PathCell): [string, boolean] { + const templateName = segment[0][0] as string; switch (templateName.toLowerCase()) { case "p": case "path": @@ -204,27 +202,43 @@ function stringifyPathSegment(segment: PathSegment): [string, boolean] { case "file": return ["*", false]; case "localizedpath": - return [segment[1], false]; + return [segment[1] as string, false]; default: return ["", false]; } } -function getRawPathFromCell(cell: string | Array | undefined): [string | undefined, boolean] { +function getRawPathFromCell(cell: string | PathCell): [string, boolean] { + let composite = ""; let regular = true; - if (cell === undefined) { - return [undefined, regular]; - } else if (typeof cell === "string") { - return [cell.replace(/.*?<\ref>/, ""), regular]; - } else { - return [cell.map(x => { - const [stringified, segmentRegular] = stringifyPathSegment(x); - if (!segmentRegular) { - regular = false; + + if (typeof cell === "string") { + composite += cell; + } else if (cell.type === "transclusion") { + const [stringified, segmentRegular] = stringifyTransclusionSegment(cell); + if (!segmentRegular) { + regular = false; + } + composite += stringified; + } else if (cell.type === "plain") { + for (let i = 0; i < 50; i++) { + const segment = cell[i]; + if (segment === undefined) { + break; } - return stringified; - }).join("").replace(/.*?<\ref>/, ""), regular]; + if (typeof segment === "string") { + composite += segment; + } else if (segment.type === "transclusion") { + const [stringified, segmentRegular] = stringifyTransclusionSegment(segment); + if (!segmentRegular) { + regular = false; + } + composite += stringified; + } + } } + + return [composite.replace(/.*?<\ref>/, "").trim(), regular]; } /** @@ -463,7 +477,7 @@ export async function getGame(pageTitle: string, cache: WikiGameCache): Promise< irregularPath += 1; } - if (rawPath === undefined || rawPath.length === 0) { + if (rawPath.length === 0) { continue; }