Incorporate the wiki's Recent Changes API and import data from the last 30 days

This commit is contained in:
mtkennerly 2020-07-15 01:41:57 -04:00
parent dd63fdb183
commit d22b2b161a
10 changed files with 2803 additions and 856 deletions

View file

@ -1,6 +1,17 @@
## Development
Requires Node.js.
Generally, you just need these commands:
* Add all recent changes since a certain number of days ago:
* `npm run recent 5`
* Validate the manifest against the schema:
* `npm run schema`
* List some stats about the data set:
* `npm run stats`
There are some lower-level commands for finer control or full imports:
* Add new games to wiki-game-cache.yaml (required in order to add them to the manifest):
* `npm run cache`
* Update the manifest with games from the cache (`--limit 25` is default at a time):
@ -13,10 +24,6 @@ Requires Node.js.
* 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"`
* Validate the manifest against the schema:
* `npm run schema`
* List some stats about the data set:
* `npm run stats`
## API etiquette
When running or modifying the importer script, please be mindful not to

File diff suppressed because it is too large Load diff

View file

@ -159,7 +159,6 @@
* [2D Neon Cube](https://www.pcgamingwiki.com/wiki/?curid=68927)
* [2D Paintball](https://www.pcgamingwiki.com/wiki/?curid=132672)
* [2D Zombie Survival](https://www.pcgamingwiki.com/wiki/?curid=128175)
* [2Dark](https://www.pcgamingwiki.com/wiki/?curid=56513)
* [2DGameManias Taken](https://www.pcgamingwiki.com/wiki/?curid=91194)
* [2MD VR Football](https://www.pcgamingwiki.com/wiki/?curid=72698)
* [2nd Circle - Powerful Places](https://www.pcgamingwiki.com/wiki/?curid=112596)
@ -222,7 +221,6 @@
* [3D Ultra Minigolf Adventures](https://www.pcgamingwiki.com/wiki/?curid=41261)
* [3D Visual Novel Maker](https://www.pcgamingwiki.com/wiki/?curid=149372)
* [3DRPG](https://www.pcgamingwiki.com/wiki/?curid=45014)
* [3dSen PC](https://www.pcgamingwiki.com/wiki/?curid=154071)
* [3dSenVR](https://www.pcgamingwiki.com/wiki/?curid=138774)
* [3Gun Nation VR](https://www.pcgamingwiki.com/wiki/?curid=128207)
* [3on3 FreeStyle](https://www.pcgamingwiki.com/wiki/?curid=72865)
@ -329,7 +327,6 @@
* [8-Bit Adventures 2](https://www.pcgamingwiki.com/wiki/?curid=74321)
* [8-Bit Adventures: The Forgotten Journey Remastered Edition](https://www.pcgamingwiki.com/wiki/?curid=47819)
* [8-Bit Arena VR](https://www.pcgamingwiki.com/wiki/?curid=52995)
* [8-Bit Armies](https://www.pcgamingwiki.com/wiki/?curid=34106)
* [8-Bit Armies: Arena](https://www.pcgamingwiki.com/wiki/?curid=57222)
* [8-Bit Bayonetta](https://www.pcgamingwiki.com/wiki/?curid=60213)
* [8-Bit Commando](https://www.pcgamingwiki.com/wiki/?curid=23940)
@ -385,7 +382,6 @@
* [A Bloody Party](https://www.pcgamingwiki.com/wiki/?curid=125926)
* [A Book of Beasts and Buddies](https://www.pcgamingwiki.com/wiki/?curid=121454)
* [A Boy and His Beard](https://www.pcgamingwiki.com/wiki/?curid=82617)
* [A Boy and His Blob](https://www.pcgamingwiki.com/wiki/?curid=30615)
* [A Bug's Life](https://www.pcgamingwiki.com/wiki/?curid=134342)
* [A Business Power](https://www.pcgamingwiki.com/wiki/?curid=121855)
* [A Butterfly in the District of Dreams](https://www.pcgamingwiki.com/wiki/?curid=62260)
@ -450,7 +446,6 @@
* [A Gummy's Life](https://www.pcgamingwiki.com/wiki/?curid=57850)
* [A Hand in the Darkness](https://www.pcgamingwiki.com/wiki/?curid=61307)
* [A Handful of Keflings](https://www.pcgamingwiki.com/wiki/?curid=81444)
* [A Hat in Time](https://www.pcgamingwiki.com/wiki/?curid=39610)
* [A Haunting: Witching Hour](https://www.pcgamingwiki.com/wiki/?curid=72712)
* [A Healer Only Lives Twice](https://www.pcgamingwiki.com/wiki/?curid=42726)
* [A Hole New World](https://www.pcgamingwiki.com/wiki/?curid=59850)
@ -462,12 +457,10 @@
* [A Kingdom of Flesh and Stone](https://www.pcgamingwiki.com/wiki/?curid=141616)
* [A Kiss for the Petals - Maidens of Michael](https://www.pcgamingwiki.com/wiki/?curid=81697)
* [A Kiss for the Petals - Remembering How We Met](https://www.pcgamingwiki.com/wiki/?curid=37465)
* [A Knight's Quest](https://www.pcgamingwiki.com/wiki/?curid=147577)
* [A Land Fit for Heroes](https://www.pcgamingwiki.com/wiki/?curid=43205)
* [A Large Quantity of Mushrooms](https://www.pcgamingwiki.com/wiki/?curid=59039)
* [A Legend of Luca](https://www.pcgamingwiki.com/wiki/?curid=43793)
* [A Legionary's Life](https://www.pcgamingwiki.com/wiki/?curid=134830)
* [A Lenda do Herói](https://www.pcgamingwiki.com/wiki/?curid=38191)
* [A Light in the Dark](https://www.pcgamingwiki.com/wiki/?curid=87557)
* [A Little Rabbit Story](https://www.pcgamingwiki.com/wiki/?curid=80968)
* [A Long Night For Crazy King](https://www.pcgamingwiki.com/wiki/?curid=150754)
@ -692,7 +685,6 @@
* [Accel](https://www.pcgamingwiki.com/wiki/?curid=127259)
* [ACCEL-X](https://www.pcgamingwiki.com/wiki/?curid=155624)
* [Access](https://www.pcgamingwiki.com/wiki/?curid=70214)
* [Access Denied](https://www.pcgamingwiki.com/wiki/?curid=55031)
* [AcChen - Tile Matching the Arcade Way](https://www.pcgamingwiki.com/wiki/?curid=78198)
* [Accident](https://www.pcgamingwiki.com/wiki/?curid=93325)
* [Accidental Runner](https://www.pcgamingwiki.com/wiki/?curid=48268)
@ -846,6 +838,7 @@
* [Adele: Following the Signs](https://www.pcgamingwiki.com/wiki/?curid=42732)
* [Adeptus Titanicus: Dominus](https://www.pcgamingwiki.com/wiki/?curid=93993)
* [Adera](https://www.pcgamingwiki.com/wiki/?curid=108108)
* [Adidas Power Soccer 98](https://www.pcgamingwiki.com/wiki/?curid=161596)
* [ADIOS Amigos](https://www.pcgamingwiki.com/wiki/?curid=108764)
* [Adjacency](https://www.pcgamingwiki.com/wiki/?curid=62182)
* [ADM 2(WHEN WORLDS COLLIDE)](https://www.pcgamingwiki.com/wiki/?curid=141245)
@ -1216,6 +1209,7 @@
* [Akaneiro: Demon Hunters](https://www.pcgamingwiki.com/wiki/?curid=8044)
* [Akash: Path of the Five](https://www.pcgamingwiki.com/wiki/?curid=145013)
* [Akda](https://www.pcgamingwiki.com/wiki/?curid=78422)
* [Aker Fern](https://www.pcgamingwiki.com/wiki/?curid=161502)
* [Akhenaten: Rule as Pharaoh](https://www.pcgamingwiki.com/wiki/?curid=75117)
* [Akihabara - Feel the Rhythm](https://www.pcgamingwiki.com/wiki/?curid=56120)
* [Akihabara - Feel the Rhythm Remixed](https://www.pcgamingwiki.com/wiki/?curid=122245)
@ -1920,7 +1914,6 @@
* [AR-K: End Game](https://www.pcgamingwiki.com/wiki/?curid=122654)
* [AR-K: The Great Escape](https://www.pcgamingwiki.com/wiki/?curid=37219)
* [Ar:piel](https://www.pcgamingwiki.com/wiki/?curid=152240)
* [Ara Fell](https://www.pcgamingwiki.com/wiki/?curid=34437)
* [Arabian Stones - The VR Sudoku Game](https://www.pcgamingwiki.com/wiki/?curid=149207)
* [Arachnophobia](https://www.pcgamingwiki.com/wiki/?curid=97217)
* [Arachnophobia (2016)](https://www.pcgamingwiki.com/wiki/?curid=42756)
@ -2156,7 +2149,7 @@
* [Art of Horology](https://www.pcgamingwiki.com/wiki/?curid=132008)
* [Art of Murder - Deadly Secrets](https://www.pcgamingwiki.com/wiki/?curid=103373)
* [Art of Murder - The Secret Files](https://www.pcgamingwiki.com/wiki/?curid=103369)
* [Art of rally](https://www.pcgamingwiki.com/wiki/?curid=137030)
* [Art of Rally](https://www.pcgamingwiki.com/wiki/?curid=137030)
* [Art of Stealth](https://www.pcgamingwiki.com/wiki/?curid=56086)
* [Art of War: Red Tides](https://www.pcgamingwiki.com/wiki/?curid=55476)
* [Art Plunge](https://www.pcgamingwiki.com/wiki/?curid=149809)
@ -2593,7 +2586,6 @@
* [Away From Earth: Moon](https://www.pcgamingwiki.com/wiki/?curid=125601)
* [Away From Earth: Titan](https://www.pcgamingwiki.com/wiki/?curid=136574)
* [Away From Earth: Titan 2](https://www.pcgamingwiki.com/wiki/?curid=141336)
* [AWAY: Journey to the Unexpected](https://www.pcgamingwiki.com/wiki/?curid=127120)
* [Away: The Survival Series](https://www.pcgamingwiki.com/wiki/?curid=78768)
* [Awe of Despair](https://www.pcgamingwiki.com/wiki/?curid=76022)
* [Awesome Machine](https://www.pcgamingwiki.com/wiki/?curid=64763)
@ -2940,7 +2932,6 @@
* [Bashville](https://www.pcgamingwiki.com/wiki/?curid=87113)
* [Basic Car Repair Garage VR](https://www.pcgamingwiki.com/wiki/?curid=150160)
* [Basic Warfare](https://www.pcgamingwiki.com/wiki/?curid=155484)
* [Basingstoke](https://www.pcgamingwiki.com/wiki/?curid=81765)
* [Basketball](https://www.pcgamingwiki.com/wiki/?curid=97924)
* [Basketball Babe](https://www.pcgamingwiki.com/wiki/?curid=51366)
* [Basketball Classics](https://www.pcgamingwiki.com/wiki/?curid=91518)
@ -3283,7 +3274,6 @@
* [Before Arriving at the Terminal](https://www.pcgamingwiki.com/wiki/?curid=150091)
* [Before Nightfall](https://www.pcgamingwiki.com/wiki/?curid=102655)
* [Before the Blood](https://www.pcgamingwiki.com/wiki/?curid=90378)
* [Before We Leave](https://www.pcgamingwiki.com/wiki/?curid=142335)
* [Beginner'sGame](https://www.pcgamingwiki.com/wiki/?curid=93052)
* [Beglitched](https://www.pcgamingwiki.com/wiki/?curid=50871)
* [Beglov Style](https://www.pcgamingwiki.com/wiki/?curid=157462)
@ -3367,7 +3357,6 @@
* [Bewitched](https://www.pcgamingwiki.com/wiki/?curid=149021)
* [Bewitched game](https://www.pcgamingwiki.com/wiki/?curid=121759)
* [Beyond](https://www.pcgamingwiki.com/wiki/?curid=121149)
* [Beyond a Steel Sky](https://www.pcgamingwiki.com/wiki/?curid=133543)
* [Beyond a Total Loss](https://www.pcgamingwiki.com/wiki/?curid=135653)
* [Beyond Arm's Reach](https://www.pcgamingwiki.com/wiki/?curid=70709)
* [Beyond Blue](https://www.pcgamingwiki.com/wiki/?curid=100746)
@ -3680,7 +3669,6 @@
* [Blade of Arena](https://www.pcgamingwiki.com/wiki/?curid=105669)
* [Blade Runner 2049: Memory Lab](https://www.pcgamingwiki.com/wiki/?curid=79537)
* [Blade Runner: Enhanced Edition](https://www.pcgamingwiki.com/wiki/?curid=158381)
* [Blade Strangers](https://www.pcgamingwiki.com/wiki/?curid=108060)
* [Blade Tournament](https://www.pcgamingwiki.com/wiki/?curid=82314)
* [Blade Warrior](https://www.pcgamingwiki.com/wiki/?curid=144717)
* [Bladeline VR](https://www.pcgamingwiki.com/wiki/?curid=121681)
@ -3726,6 +3714,7 @@
* [Blasting Agent: Ultimate Edition](https://www.pcgamingwiki.com/wiki/?curid=36203)
* [Blastworld](https://www.pcgamingwiki.com/wiki/?curid=149557)
* [Blautopf VR - Geheimnis der Lau](https://www.pcgamingwiki.com/wiki/?curid=138746)
* [Blaze & Blade: Eternal Quest](https://www.pcgamingwiki.com/wiki/?curid=161659)
* [Blazing Angels 2: Secret Missions of WWII](https://www.pcgamingwiki.com/wiki/?curid=11178)
* [Blazing Angels: Squadrons of WWII](https://www.pcgamingwiki.com/wiki/?curid=11177)
* [Blazing Beaks](https://www.pcgamingwiki.com/wiki/?curid=75548)
@ -3897,6 +3886,7 @@
* [BloodLust 2: Nemesis](https://www.pcgamingwiki.com/wiki/?curid=81135)
* [BloodRealm: Battlegrounds](https://www.pcgamingwiki.com/wiki/?curid=48709)
* [Bloodroots](https://www.pcgamingwiki.com/wiki/?curid=108912)
* [Bloodstained: Curse of the Moon 2](https://www.pcgamingwiki.com/wiki/?curid=161365)
* [Bloodstream](https://www.pcgamingwiki.com/wiki/?curid=144319)
* [Bloodwood Reload](https://www.pcgamingwiki.com/wiki/?curid=45815)
* [Bloodworks](https://www.pcgamingwiki.com/wiki/?curid=77648)
@ -6456,7 +6446,6 @@
* [Cosmic Sugar VR](https://www.pcgamingwiki.com/wiki/?curid=53844)
* [Cosmic Top Secret](https://www.pcgamingwiki.com/wiki/?curid=89668)
* [Cosmic Trail](https://www.pcgamingwiki.com/wiki/?curid=75992)
* [Cosmic Trip](https://www.pcgamingwiki.com/wiki/?curid=33732)
* [Cosmo Chaser](https://www.pcgamingwiki.com/wiki/?curid=141174)
* [Cosmo story](https://www.pcgamingwiki.com/wiki/?curid=152732)
* [Cosmo's Quickstop](https://www.pcgamingwiki.com/wiki/?curid=76375)
@ -7768,7 +7757,6 @@
* [Death Skid Marks](https://www.pcgamingwiki.com/wiki/?curid=37814)
* [Death Space](https://www.pcgamingwiki.com/wiki/?curid=120929)
* [Death Stair](https://www.pcgamingwiki.com/wiki/?curid=41581)
* [Death Stranding](https://www.pcgamingwiki.com/wiki/?curid=151674)
* [Death Sword](https://www.pcgamingwiki.com/wiki/?curid=76506)
* [Death To The Dragon Lord](https://www.pcgamingwiki.com/wiki/?curid=150075)
* [Death Toll](https://www.pcgamingwiki.com/wiki/?curid=74598)
@ -8038,12 +8026,12 @@
* [Demon Queen Melissa](https://www.pcgamingwiki.com/wiki/?curid=130672)
* [Demon Robot Runner](https://www.pcgamingwiki.com/wiki/?curid=88150)
* [Demon Truck](https://www.pcgamingwiki.com/wiki/?curid=41495)
* [Demon Turf](https://www.pcgamingwiki.com/wiki/?curid=161608)
* [Demon: Hell Keeper](https://www.pcgamingwiki.com/wiki/?curid=144291)
* [Demon's Crystals](https://www.pcgamingwiki.com/wiki/?curid=43454)
* [Demon's Rise - Lords of Chaos](https://www.pcgamingwiki.com/wiki/?curid=92195)
* [Demon's Rise - War for the Deep](https://www.pcgamingwiki.com/wiki/?curid=92755)
* [Demon's Tilt](https://www.pcgamingwiki.com/wiki/?curid=105085)
* [DemonCrawl](https://www.pcgamingwiki.com/wiki/?curid=150303)
* [Demonheart](https://www.pcgamingwiki.com/wiki/?curid=58838)
* [Demonheart: Hunters](https://www.pcgamingwiki.com/wiki/?curid=122566)
* [Demoniaca: Everlasting Night](https://www.pcgamingwiki.com/wiki/?curid=144923)
@ -8791,6 +8779,7 @@
* [Doorways: Prelude](https://www.pcgamingwiki.com/wiki/?curid=40590)
* [Doorways: The Underworld](https://www.pcgamingwiki.com/wiki/?curid=49631)
* [Dopamine](https://www.pcgamingwiki.com/wiki/?curid=51602)
* [Doraemon: Monopoly](https://www.pcgamingwiki.com/wiki/?curid=161636)
* [DoraKone](https://www.pcgamingwiki.com/wiki/?curid=132136)
* [Dorian Morris Adventure](https://www.pcgamingwiki.com/wiki/?curid=121738)
* [Dorifto Challenge](https://www.pcgamingwiki.com/wiki/?curid=91583)
@ -9198,6 +9187,8 @@
* [Drowning](https://www.pcgamingwiki.com/wiki/?curid=120877)
* [Drowning Cross](https://www.pcgamingwiki.com/wiki/?curid=141248)
* [Drox Operative](https://www.pcgamingwiki.com/wiki/?curid=22389)
* [Drox Operative 2](https://www.pcgamingwiki.com/wiki/?curid=161509)
* [Drug Lord](https://www.pcgamingwiki.com/wiki/?curid=156294)
* [Drug Wars](https://www.pcgamingwiki.com/wiki/?curid=41310)
* [Drugs to Bee](https://www.pcgamingwiki.com/wiki/?curid=98006)
* [Druid](https://www.pcgamingwiki.com/wiki/?curid=56631)
@ -9384,6 +9375,7 @@
* [Dungeons of the Dead](https://www.pcgamingwiki.com/wiki/?curid=91488)
* [Dungeons of the Fallen](https://www.pcgamingwiki.com/wiki/?curid=105591)
* [Dungeons With Friends](https://www.pcgamingwiki.com/wiki/?curid=67551)
* [DungeonTop](https://www.pcgamingwiki.com/wiki/?curid=155472)
* [DungeonUp](https://www.pcgamingwiki.com/wiki/?curid=38498)
* [Dungetris](https://www.pcgamingwiki.com/wiki/?curid=50769)
* [Dungreed](https://www.pcgamingwiki.com/wiki/?curid=78725)
@ -9514,7 +9506,6 @@
* [Easter Clicker: Idle Manager](https://www.pcgamingwiki.com/wiki/?curid=136463)
* [Easter!](https://www.pcgamingwiki.com/wiki/?curid=127207)
* [Eastern Exorcist](https://www.pcgamingwiki.com/wiki/?curid=145369)
* [Eastside Hockey Manager](https://www.pcgamingwiki.com/wiki/?curid=38454)
* [Eastward](https://www.pcgamingwiki.com/wiki/?curid=122864)
* [Eastwood VR](https://www.pcgamingwiki.com/wiki/?curid=62402)
* [Easy Hentai](https://www.pcgamingwiki.com/wiki/?curid=153687)
@ -9706,8 +9697,6 @@
* [Eldritch Hunter](https://www.pcgamingwiki.com/wiki/?curid=40315)
* [Eldritch University](https://www.pcgamingwiki.com/wiki/?curid=145377)
* [Ele Blaze](https://www.pcgamingwiki.com/wiki/?curid=72789)
* [ELEA](https://www.pcgamingwiki.com/wiki/?curid=141393)
* [Elea - Episode 1](https://www.pcgamingwiki.com/wiki/?curid=92075)
* [Election simulator](https://www.pcgamingwiki.com/wiki/?curid=154059)
* [Elections Simulator 2018](https://www.pcgamingwiki.com/wiki/?curid=89980)
* [Electric Circuit](https://www.pcgamingwiki.com/wiki/?curid=47535)
@ -9775,7 +9764,6 @@
* [Elite Soldier: 3D Shooter](https://www.pcgamingwiki.com/wiki/?curid=144679)
* [Elite vs. Freedom](https://www.pcgamingwiki.com/wiki/?curid=42812)
* [Elite Warriors: Vietnam](https://www.pcgamingwiki.com/wiki/?curid=57417)
* [Elite: Dangerous](https://www.pcgamingwiki.com/wiki/?curid=17724)
* [Elium - Prison Escape](https://www.pcgamingwiki.com/wiki/?curid=81711)
* [Elixir of Immortality II: The League of Immortality](https://www.pcgamingwiki.com/wiki/?curid=94273)
* [Elizabeth Find M.D. - Diagnosis Mystery - Season 2](https://www.pcgamingwiki.com/wiki/?curid=40962)
@ -10567,7 +10555,6 @@
* [F1 2001](https://www.pcgamingwiki.com/wiki/?curid=25244)
* [F1 2012](https://www.pcgamingwiki.com/wiki/?curid=3725)
* [F1 2018](https://www.pcgamingwiki.com/wiki/?curid=100494)
* [F1 2020](https://www.pcgamingwiki.com/wiki/?curid=159875)
* [F1 Chequered Flag](https://www.pcgamingwiki.com/wiki/?curid=59753)
* [F1 Racing Championship](https://www.pcgamingwiki.com/wiki/?curid=24660)
* [F18 Carrier Landing](https://www.pcgamingwiki.com/wiki/?curid=132400)
@ -10626,6 +10613,7 @@
* [Fairspace](https://www.pcgamingwiki.com/wiki/?curid=45968)
* [Fairtravel Battle](https://www.pcgamingwiki.com/wiki/?curid=157331)
* [Fairy Escape](https://www.pcgamingwiki.com/wiki/?curid=92775)
* [Fairy Fencer F Advent Dark Force](https://www.pcgamingwiki.com/wiki/?curid=57452)
* [Fairy Godmother Stories: Cinderella](https://www.pcgamingwiki.com/wiki/?curid=153042)
* [Fairy Knights](https://www.pcgamingwiki.com/wiki/?curid=127486)
* [Fairy Lands: Rinka and the Fairy Gems](https://www.pcgamingwiki.com/wiki/?curid=66464)
@ -10660,6 +10648,7 @@
* [Fakespearean: Overdramatic](https://www.pcgamingwiki.com/wiki/?curid=134576)
* [Falcon](https://www.pcgamingwiki.com/wiki/?curid=23212)
* [Falcon A.T.](https://www.pcgamingwiki.com/wiki/?curid=34308)
* [Falcon City](https://www.pcgamingwiki.com/wiki/?curid=161263)
* [FALL](https://www.pcgamingwiki.com/wiki/?curid=45244)
* [Fall Down](https://www.pcgamingwiki.com/wiki/?curid=91961)
* [Fall Fear Fly Redemption](https://www.pcgamingwiki.com/wiki/?curid=67889)
@ -10802,6 +10791,7 @@
* [Fapic](https://www.pcgamingwiki.com/wiki/?curid=66949)
* [Far Beyond: A Space Odyssey](https://www.pcgamingwiki.com/wiki/?curid=52247)
* [Far Cnight](https://www.pcgamingwiki.com/wiki/?curid=92047)
* [Far Cry 6](https://www.pcgamingwiki.com/wiki/?curid=161767)
* [Far from Noise](https://www.pcgamingwiki.com/wiki/?curid=70377)
* [Far From Orbit](https://www.pcgamingwiki.com/wiki/?curid=149586)
* [Far Space](https://www.pcgamingwiki.com/wiki/?curid=66490)
@ -11057,6 +11047,7 @@
* [FIFA 12](https://www.pcgamingwiki.com/wiki/?curid=28695)
* [FIFA 2000](https://www.pcgamingwiki.com/wiki/?curid=106750)
* [FIFA 2001](https://www.pcgamingwiki.com/wiki/?curid=92508)
* [FIFA 21](https://www.pcgamingwiki.com/wiki/?curid=161243)
* [FIFA 97](https://www.pcgamingwiki.com/wiki/?curid=133141)
* [FIFA Football 2003](https://www.pcgamingwiki.com/wiki/?curid=92492)
* [FIFA Football 2004](https://www.pcgamingwiki.com/wiki/?curid=92453)
@ -11072,6 +11063,7 @@
* [FiftyOne](https://www.pcgamingwiki.com/wiki/?curid=144945)
* [Fight Angel](https://www.pcgamingwiki.com/wiki/?curid=132153)
* [Fight Angel Special Edition](https://www.pcgamingwiki.com/wiki/?curid=153756)
* [Fight Crab](https://www.pcgamingwiki.com/wiki/?curid=161367)
* [Fight Desserts](https://www.pcgamingwiki.com/wiki/?curid=77035)
* [Fight For Freedom](https://www.pcgamingwiki.com/wiki/?curid=140779)
* [Fight for Gold II](https://www.pcgamingwiki.com/wiki/?curid=122215)
@ -11333,6 +11325,7 @@
* [FlappyU](https://www.pcgamingwiki.com/wiki/?curid=91886)
* [Flash Point](https://www.pcgamingwiki.com/wiki/?curid=125155)
* [Flash Point: Fire Rescue](https://www.pcgamingwiki.com/wiki/?curid=66478)
* [Flash Snooker Game](https://www.pcgamingwiki.com/wiki/?curid=161615)
* [Flashback: The Quest for Identity](https://www.pcgamingwiki.com/wiki/?curid=157945)
* [Flashout 2](https://www.pcgamingwiki.com/wiki/?curid=50101)
* [Flashover MegaSector](https://www.pcgamingwiki.com/wiki/?curid=153669)
@ -11560,7 +11553,6 @@
* [Football School](https://www.pcgamingwiki.com/wiki/?curid=142232)
* [Football Story](https://www.pcgamingwiki.com/wiki/?curid=100698)
* [Football Superstars](https://www.pcgamingwiki.com/wiki/?curid=86823)
* [Football Tactics](https://www.pcgamingwiki.com/wiki/?curid=37674)
* [Football VR](https://www.pcgamingwiki.com/wiki/?curid=42351)
* [Football: The Hardest Job](https://www.pcgamingwiki.com/wiki/?curid=149217)
* [Footbrawl Playground](https://www.pcgamingwiki.com/wiki/?curid=37058)
@ -12040,6 +12032,7 @@
* [Fury's Sky](https://www.pcgamingwiki.com/wiki/?curid=144224)
* [Fuse Balls](https://www.pcgamingwiki.com/wiki/?curid=87952)
* [Fused](https://www.pcgamingwiki.com/wiki/?curid=125113)
* [FUSER](https://www.pcgamingwiki.com/wiki/?curid=161491)
* [Futanari Quest](https://www.pcgamingwiki.com/wiki/?curid=92857)
* [Future Aero Racing S Ultra](https://www.pcgamingwiki.com/wiki/?curid=127999)
* [Future City Coaster](https://www.pcgamingwiki.com/wiki/?curid=90030)
@ -12647,7 +12640,6 @@
* [Gloria Victis](https://www.pcgamingwiki.com/wiki/?curid=33411)
* [Glorious Companions](https://www.pcgamingwiki.com/wiki/?curid=126102)
* [Glorious Noon](https://www.pcgamingwiki.com/wiki/?curid=75632)
* [Glorkian Warrior: The Trials of Glork](https://www.pcgamingwiki.com/wiki/?curid=37852)
* [Glory & Honor](https://www.pcgamingwiki.com/wiki/?curid=100430)
* [Glory by Example](https://www.pcgamingwiki.com/wiki/?curid=36840)
* [Glory Kingdom](https://www.pcgamingwiki.com/wiki/?curid=44517)
@ -12823,6 +12815,7 @@
* [Golf Galore](https://www.pcgamingwiki.com/wiki/?curid=99570)
* [GOLF in PAPER](https://www.pcgamingwiki.com/wiki/?curid=134608)
* [Golf Masters](https://www.pcgamingwiki.com/wiki/?curid=39699)
* [Golf On Mars](https://www.pcgamingwiki.com/wiki/?curid=161588)
* [Golf On The Moon (VR)](https://www.pcgamingwiki.com/wiki/?curid=154418)
* [Golf Peaks](https://www.pcgamingwiki.com/wiki/?curid=110186)
* [Golf Pool VR](https://www.pcgamingwiki.com/wiki/?curid=130605)
@ -14819,6 +14812,7 @@
* [Hyper Knights: Battles](https://www.pcgamingwiki.com/wiki/?curid=76586)
* [Hyper Mum Ft Adult Gaming](https://www.pcgamingwiki.com/wiki/?curid=145943)
* [Hyper Rails](https://www.pcgamingwiki.com/wiki/?curid=14799)
* [Hyper Scape](https://www.pcgamingwiki.com/wiki/?curid=161541)
* [Hyper Scuffle](https://www.pcgamingwiki.com/wiki/?curid=125137)
* [Hyper Sentinel](https://www.pcgamingwiki.com/wiki/?curid=91206)
* [Hyper Simox 3000](https://www.pcgamingwiki.com/wiki/?curid=98600)
@ -16312,6 +16306,8 @@
* [Kick Ass Commandos](https://www.pcgamingwiki.com/wiki/?curid=37313)
* [Kick Bot](https://www.pcgamingwiki.com/wiki/?curid=145485)
* [Kick Of Dungeon](https://www.pcgamingwiki.com/wiki/?curid=155600)
* [Kick Off 2002](https://www.pcgamingwiki.com/wiki/?curid=161573)
* [Kick Off 98](https://www.pcgamingwiki.com/wiki/?curid=161581)
* [Kick Speed: Global Operations](https://www.pcgamingwiki.com/wiki/?curid=61844)
* [Kick The Anime Simulator](https://www.pcgamingwiki.com/wiki/?curid=120905)
* [Kick The Puppet](https://www.pcgamingwiki.com/wiki/?curid=121980)
@ -16409,6 +16405,7 @@
* [King Oddball](https://www.pcgamingwiki.com/wiki/?curid=38859)
* [King of Bali](https://www.pcgamingwiki.com/wiki/?curid=65618)
* [King of Booze: Drinking Game](https://www.pcgamingwiki.com/wiki/?curid=38851)
* [King of Crabs](https://www.pcgamingwiki.com/wiki/?curid=161580)
* [King of Crowns Chess Online](https://www.pcgamingwiki.com/wiki/?curid=73526)
* [King of Dirt](https://www.pcgamingwiki.com/wiki/?curid=58519)
* [King of Dragon Balls](https://www.pcgamingwiki.com/wiki/?curid=141685)
@ -16500,6 +16497,7 @@
* [Kismet](https://www.pcgamingwiki.com/wiki/?curid=37879)
* [Kiss Before Midnight](https://www.pcgamingwiki.com/wiki/?curid=143343)
* [Kiss or Kill VR](https://www.pcgamingwiki.com/wiki/?curid=78810)
* [Kiss: Psycho Circus: The Nightmare Child](https://www.pcgamingwiki.com/wiki/?curid=161392)
* [Kissing Simulator](https://www.pcgamingwiki.com/wiki/?curid=138588)
* [Kitchen Simulator 2](https://www.pcgamingwiki.com/wiki/?curid=67579)
* [Kitchen Simulator 2015](https://www.pcgamingwiki.com/wiki/?curid=46592)
@ -16907,6 +16905,7 @@
* [Last Dream: World Unknown](https://www.pcgamingwiki.com/wiki/?curid=62072)
* [Last Encounter](https://www.pcgamingwiki.com/wiki/?curid=80669)
* [Last Epoch](https://www.pcgamingwiki.com/wiki/?curid=134252)
* [Last Evil](https://www.pcgamingwiki.com/wiki/?curid=161398)
* [Last Fort](https://www.pcgamingwiki.com/wiki/?curid=88152)
* [Last Half of Darkness: Shadows of the Servants](https://www.pcgamingwiki.com/wiki/?curid=134060)
* [Last Half of Darkness: Society of the Serpent Moon](https://www.pcgamingwiki.com/wiki/?curid=47005)
@ -17025,7 +17024,6 @@
* [Learn to Fly 3](https://www.pcgamingwiki.com/wiki/?curid=62026)
* [Leashed Soul](https://www.pcgamingwiki.com/wiki/?curid=63910)
* [Leather Goddesses of Phobos](https://www.pcgamingwiki.com/wiki/?curid=147094)
* [Leather Goddesses of Phobos 2](https://www.pcgamingwiki.com/wiki/?curid=147092)
* [Leave Me Alone: A Trip To Hell](https://www.pcgamingwiki.com/wiki/?curid=37891)
* [Leave the Nest](https://www.pcgamingwiki.com/wiki/?curid=42834)
* [Leaves](https://www.pcgamingwiki.com/wiki/?curid=157227)
@ -17509,6 +17507,8 @@
* [Lizardquest-Alien waters](https://www.pcgamingwiki.com/wiki/?curid=127838)
* [Llama Villa](https://www.pcgamingwiki.com/wiki/?curid=155380)
* [LLK](https://www.pcgamingwiki.com/wiki/?curid=155957)
* [LMA Manager 2007](https://www.pcgamingwiki.com/wiki/?curid=161569)
* [LMA Professional Manager 2005](https://www.pcgamingwiki.com/wiki/?curid=161567)
* [LO-OP](https://www.pcgamingwiki.com/wiki/?curid=97962)
* [LOA: Me and Angel](https://www.pcgamingwiki.com/wiki/?curid=80460)
* [Loader](https://www.pcgamingwiki.com/wiki/?curid=91506)
@ -18638,7 +18638,6 @@
* [MC Lars: The Video Game](https://www.pcgamingwiki.com/wiki/?curid=51845)
* [MCAS Simulation](https://www.pcgamingwiki.com/wiki/?curid=153008)
* [McDROID](https://www.pcgamingwiki.com/wiki/?curid=49677)
* [McOsu](https://www.pcgamingwiki.com/wiki/?curid=59599)
* [McPixel](https://www.pcgamingwiki.com/wiki/?curid=8303)
* [McRogue](https://www.pcgamingwiki.com/wiki/?curid=78324)
* [Me And Dungeons](https://www.pcgamingwiki.com/wiki/?curid=99542)
@ -18894,7 +18893,6 @@
* [Metalheart: Replicants Rampage](https://www.pcgamingwiki.com/wiki/?curid=35279)
* [Metaloid : Origin](https://www.pcgamingwiki.com/wiki/?curid=126010)
* [Metamorph](https://www.pcgamingwiki.com/wiki/?curid=121083)
* [MetaMorph](https://www.pcgamingwiki.com/wiki/?curid=60349)
* [Metamorphabet](https://www.pcgamingwiki.com/wiki/?curid=48062)
* [Metamorphic](https://www.pcgamingwiki.com/wiki/?curid=42557)
* [Metamorphosis](https://www.pcgamingwiki.com/wiki/?curid=130714)
@ -20208,7 +20206,6 @@
* [Narborion Saga](https://www.pcgamingwiki.com/wiki/?curid=56942)
* [Narcissu 10th Anniversary Anthology Project](https://www.pcgamingwiki.com/wiki/?curid=33622)
* [Narco Strike](https://www.pcgamingwiki.com/wiki/?curid=129951)
* [Narcos](https://www.pcgamingwiki.com/wiki/?curid=156294)
* [Narcotics Police: Black and White](https://www.pcgamingwiki.com/wiki/?curid=62933)
* [Nark the Dragon](https://www.pcgamingwiki.com/wiki/?curid=79155)
* [Narwhal Heist](https://www.pcgamingwiki.com/wiki/?curid=130623)
@ -20220,7 +20217,6 @@
* [NASCAR Heat](https://www.pcgamingwiki.com/wiki/?curid=24626)
* [NASCAR Heat 3](https://www.pcgamingwiki.com/wiki/?curid=109478)
* [NASCAR Heat 4](https://www.pcgamingwiki.com/wiki/?curid=144859)
* [NASCAR Heat 5](https://www.pcgamingwiki.com/wiki/?curid=160097)
* [NASCAR Racers](https://www.pcgamingwiki.com/wiki/?curid=22371)
* [NASCAR Racing 2002 Season](https://www.pcgamingwiki.com/wiki/?curid=107150)
* [NASCAR Revolution](https://www.pcgamingwiki.com/wiki/?curid=107126)
@ -20289,6 +20285,7 @@
* [NBA 2K10](https://www.pcgamingwiki.com/wiki/?curid=20722)
* [NBA 2K11](https://www.pcgamingwiki.com/wiki/?curid=20733)
* [NBA 2K12](https://www.pcgamingwiki.com/wiki/?curid=3174)
* [NBA 2K21](https://www.pcgamingwiki.com/wiki/?curid=161564)
* [NBA 2K9](https://www.pcgamingwiki.com/wiki/?curid=60423)
* [NBA 2KVR Experience](https://www.pcgamingwiki.com/wiki/?curid=53902)
* [NC Tower Defense 2](https://www.pcgamingwiki.com/wiki/?curid=62900)
@ -20737,6 +20734,7 @@
* [Nirvana: The First Travel](https://www.pcgamingwiki.com/wiki/?curid=47027)
* [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)
* [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)
@ -21915,6 +21913,7 @@
* [Paradise Killer](https://www.pcgamingwiki.com/wiki/?curid=157164)
* [Paradise Lost](https://www.pcgamingwiki.com/wiki/?curid=76601)
* [Paradise Lost (PolyAmorous)](https://www.pcgamingwiki.com/wiki/?curid=137402)
* [Paradise Lost: The Last Story on Earth](https://www.pcgamingwiki.com/wiki/?curid=161803)
* [Paradox Escape Route](https://www.pcgamingwiki.com/wiki/?curid=148613)
* [Paradox of the Cryptomancers](https://www.pcgamingwiki.com/wiki/?curid=93188)
* [Paradox Paradigm](https://www.pcgamingwiki.com/wiki/?curid=42940)
@ -22010,6 +22009,7 @@
* [Path of Redemption](https://www.pcgamingwiki.com/wiki/?curid=156394)
* [Path of Thalanos](https://www.pcgamingwiki.com/wiki/?curid=151199)
* [Path of War](https://www.pcgamingwiki.com/wiki/?curid=38893)
* [Path Of Wuxia](https://www.pcgamingwiki.com/wiki/?curid=161823)
* [Path of Zen](https://www.pcgamingwiki.com/wiki/?curid=155793)
* [Path Out](https://www.pcgamingwiki.com/wiki/?curid=73683)
* [Path to Mnemosyne](https://www.pcgamingwiki.com/wiki/?curid=81788)
@ -24344,7 +24344,6 @@
* [Rekindling](https://www.pcgamingwiki.com/wiki/?curid=134803)
* [Reksarych's Sudoku](https://www.pcgamingwiki.com/wiki/?curid=123578)
* [REKT!](https://www.pcgamingwiki.com/wiki/?curid=141334)
* [Reky](https://www.pcgamingwiki.com/wiki/?curid=154039)
* [Relativity](https://www.pcgamingwiki.com/wiki/?curid=36830)
* [Relativity Wars - A Science Space RTS](https://www.pcgamingwiki.com/wiki/?curid=48244)
* [Relax Walk VR](https://www.pcgamingwiki.com/wiki/?curid=62972)
@ -25030,6 +25029,8 @@
* [Rogue Hero](https://www.pcgamingwiki.com/wiki/?curid=81794)
* [Rogue In The Void](https://www.pcgamingwiki.com/wiki/?curid=135866)
* [Rogue Islands](https://www.pcgamingwiki.com/wiki/?curid=51893)
* [Rogue Legacy 2](https://www.pcgamingwiki.com/wiki/?curid=161358)
* [Rogue Lords](https://www.pcgamingwiki.com/wiki/?curid=161693)
* [Rogue Operatives](https://www.pcgamingwiki.com/wiki/?curid=50809)
* [Rogue Party](https://www.pcgamingwiki.com/wiki/?curid=109688)
* [Rogue Port - Blue Nightmare](https://www.pcgamingwiki.com/wiki/?curid=60219)
@ -26086,6 +26087,7 @@
* [Seraphims of Astraeus](https://www.pcgamingwiki.com/wiki/?curid=113798)
* [Serenade of the Sirens](https://www.pcgamingwiki.com/wiki/?curid=109426)
* [SereNest](https://www.pcgamingwiki.com/wiki/?curid=144791)
* [Serial Cleaners](https://www.pcgamingwiki.com/wiki/?curid=161488)
* [SERIES MAKERS TYCOON](https://www.pcgamingwiki.com/wiki/?curid=129843)
* [Serin Fate](https://www.pcgamingwiki.com/wiki/?curid=137120)
* [Serious Metal Detecting](https://www.pcgamingwiki.com/wiki/?curid=61742)
@ -26161,7 +26163,7 @@
* [Shadow Fear Path to Insanity](https://www.pcgamingwiki.com/wiki/?curid=105371)
* [Shadow Fencer Theatre](https://www.pcgamingwiki.com/wiki/?curid=132784)
* [Shadow Force](https://www.pcgamingwiki.com/wiki/?curid=130464)
* [Shadow Gangs](https://www.pcgamingwiki.com/wiki/?curid=161212)
* [Shadow gangs](https://www.pcgamingwiki.com/wiki/?curid=161212)
* [Shadow Heroes: Vengeance In Flames](https://www.pcgamingwiki.com/wiki/?curid=34781)
* [Shadow Hunter](https://www.pcgamingwiki.com/wiki/?curid=48162)
* [Shadow Legend VR](https://www.pcgamingwiki.com/wiki/?curid=124421)
@ -26183,6 +26185,7 @@
* [Shadow Runner](https://www.pcgamingwiki.com/wiki/?curid=130088)
* [Shadow Unit](https://www.pcgamingwiki.com/wiki/?curid=113626)
* [Shadow Uprising](https://www.pcgamingwiki.com/wiki/?curid=123990)
* [Shadow Warrior 3](https://www.pcgamingwiki.com/wiki/?curid=161666)
* [Shadow Watch](https://www.pcgamingwiki.com/wiki/?curid=131835)
* [Shadow Wolf Mysteries: Bane of the Family Collector's Edition](https://www.pcgamingwiki.com/wiki/?curid=77970)
* [Shadow Wolf Mysteries: Curse of the Full Moon Collector's Edition](https://www.pcgamingwiki.com/wiki/?curid=61620)
@ -27109,6 +27112,7 @@
* [Sniper Tactical](https://www.pcgamingwiki.com/wiki/?curid=45045)
* [Sniper Tanks](https://www.pcgamingwiki.com/wiki/?curid=102955)
* [Sniper Zombie Killer](https://www.pcgamingwiki.com/wiki/?curid=102931)
* [Sniper: Ghost Warrior Contracts 2](https://www.pcgamingwiki.com/wiki/?curid=161332)
* [Snipiyo / スナイピヨ](https://www.pcgamingwiki.com/wiki/?curid=132192)
* [SnipZ](https://www.pcgamingwiki.com/wiki/?curid=54651)
* [SnL](https://www.pcgamingwiki.com/wiki/?curid=144753)
@ -27748,6 +27752,8 @@
* [Speaking Simulator](https://www.pcgamingwiki.com/wiki/?curid=122762)
* [Spear Master](https://www.pcgamingwiki.com/wiki/?curid=151012)
* [Spears 'n' Spades](https://www.pcgamingwiki.com/wiki/?curid=66633)
* [Spec Ops II: Green Berets](https://www.pcgamingwiki.com/wiki/?curid=160706)
* [Spec Ops: Rangers Lead the Way](https://www.pcgamingwiki.com/wiki/?curid=160705)
* [Special Counter Force Attack](https://www.pcgamingwiki.com/wiki/?curid=122426)
* [Special Delivery](https://www.pcgamingwiki.com/wiki/?curid=54517)
* [Special Force VR](https://www.pcgamingwiki.com/wiki/?curid=65684)
@ -27817,7 +27823,6 @@
* [Spellspire](https://www.pcgamingwiki.com/wiki/?curid=62062)
* [Spellstone](https://www.pcgamingwiki.com/wiki/?curid=51396)
* [Spellsword Cards: Demontide](https://www.pcgamingwiki.com/wiki/?curid=129703)
* [Spellsword Cards: DungeonTop](https://www.pcgamingwiki.com/wiki/?curid=155472)
* [Spellsword Cards: Origins](https://www.pcgamingwiki.com/wiki/?curid=135604)
* [Spellsworn](https://www.pcgamingwiki.com/wiki/?curid=38131)
* [Spellwake](https://www.pcgamingwiki.com/wiki/?curid=107630)
@ -28323,7 +28328,6 @@
* [Steam Tactics](https://www.pcgamingwiki.com/wiki/?curid=70293)
* [Steam: Rails to Riches](https://www.pcgamingwiki.com/wiki/?curid=59494)
* [Steamalot: Epoch's Journey](https://www.pcgamingwiki.com/wiki/?curid=46627)
* [Steamburg](https://www.pcgamingwiki.com/wiki/?curid=74528)
* [SteamCity Chronicles - Rise Of The Rose](https://www.pcgamingwiki.com/wiki/?curid=150584)
* [Steamcraft](https://www.pcgamingwiki.com/wiki/?curid=126114)
* [SteamDolls - Order Of Chaos](https://www.pcgamingwiki.com/wiki/?curid=132448)
@ -28367,6 +28371,7 @@
* [Steel Vampire / 鋼鉄のヴァンパイア](https://www.pcgamingwiki.com/wiki/?curid=121941)
* [SteelLIFE](https://www.pcgamingwiki.com/wiki/?curid=125215)
* [STEELPAW](https://www.pcgamingwiki.com/wiki/?curid=148587)
* [Steelrising](https://www.pcgamingwiki.com/wiki/?curid=161697)
* [Stefanos Sizzling Pizza Pie](https://www.pcgamingwiki.com/wiki/?curid=98796)
* [Stein.world](https://www.pcgamingwiki.com/wiki/?curid=132639)
* [Steins;Gate Elite](https://www.pcgamingwiki.com/wiki/?curid=91272)
@ -29292,8 +29297,8 @@
* [Switcher](https://www.pcgamingwiki.com/wiki/?curid=102325)
* [Sword 'N' Board](https://www.pcgamingwiki.com/wiki/?curid=44766)
* [Sword and Shield](https://www.pcgamingwiki.com/wiki/?curid=52866)
* [Sword Art Online Alicization Lycoris](https://www.pcgamingwiki.com/wiki/?curid=133036)
* [Sword Art Online Re: Hollow Fragment](https://www.pcgamingwiki.com/wiki/?curid=108434)
* [Sword Art Online: Alicization Lycoris](https://www.pcgamingwiki.com/wiki/?curid=133036)
* [Sword Art Online: Lost Song](https://www.pcgamingwiki.com/wiki/?curid=122967)
* [Sword Bros](https://www.pcgamingwiki.com/wiki/?curid=74999)
* [Sword Defense](https://www.pcgamingwiki.com/wiki/?curid=130026)
@ -29761,7 +29766,7 @@
* [Temple of Aluxes](https://www.pcgamingwiki.com/wiki/?curid=70341)
* [Temple of Pizza](https://www.pcgamingwiki.com/wiki/?curid=125521)
* [Temple of Rust](https://www.pcgamingwiki.com/wiki/?curid=105535)
* [Temple Of Snek](https://www.pcgamingwiki.com/wiki/?curid=157033)
* [Temple of Snek](https://www.pcgamingwiki.com/wiki/?curid=157033)
* [Temple of Spikes](https://www.pcgamingwiki.com/wiki/?curid=87349)
* [Temple of the Apsara](https://www.pcgamingwiki.com/wiki/?curid=38755)
* [Temple of the Lost](https://www.pcgamingwiki.com/wiki/?curid=109402)
@ -29861,7 +29866,7 @@
* [Terrorist Elimination](https://www.pcgamingwiki.com/wiki/?curid=75099)
* [TerTD](https://www.pcgamingwiki.com/wiki/?curid=141308)
* [Tesla Breaks the World!](https://www.pcgamingwiki.com/wiki/?curid=49235)
* [Tesla Force: United Scientists Army](https://www.pcgamingwiki.com/wiki/?curid=151183)
* [Tesla Force](https://www.pcgamingwiki.com/wiki/?curid=151183)
* [Tesla Roadster Going to Mars](https://www.pcgamingwiki.com/wiki/?curid=88085)
* [Tesla VR](https://www.pcgamingwiki.com/wiki/?curid=41675)
* [Tesla: The Weather Man](https://www.pcgamingwiki.com/wiki/?curid=93166)
@ -29874,6 +29879,7 @@
* [Test Drive 4](https://www.pcgamingwiki.com/wiki/?curid=51534)
* [Test Drive 5](https://www.pcgamingwiki.com/wiki/?curid=64353)
* [Test Drive III: The Passion](https://www.pcgamingwiki.com/wiki/?curid=24889)
* [Test Drive Unlimited Solar Crown](https://www.pcgamingwiki.com/wiki/?curid=161699)
* [Test Subject 901](https://www.pcgamingwiki.com/wiki/?curid=109750)
* [Test your knowledge: Cats](https://www.pcgamingwiki.com/wiki/?curid=108068)
* [Test your knowledge: Cities](https://www.pcgamingwiki.com/wiki/?curid=95605)
@ -30696,7 +30702,6 @@
* [The Hunters Journals; Pale Harbour](https://www.pcgamingwiki.com/wiki/?curid=139094)
* [The Hunters Journals; Vile Philosophy](https://www.pcgamingwiki.com/wiki/?curid=140936)
* [The Huntsman: Winter's Curse](https://www.pcgamingwiki.com/wiki/?curid=43412)
* [The Hurricane of the Varstray -Collateral hazard-](https://www.pcgamingwiki.com/wiki/?curid=45202)
* [The Idiot's Tale](https://www.pcgamingwiki.com/wiki/?curid=87271)
* [The Idolmaster: Starlit Season](https://www.pcgamingwiki.com/wiki/?curid=157535)
* [The IL Tempo Game](https://www.pcgamingwiki.com/wiki/?curid=73967)
@ -30897,7 +30902,6 @@
* [The Life of One Dog](https://www.pcgamingwiki.com/wiki/?curid=114316)
* [The Life's Lane](https://www.pcgamingwiki.com/wiki/?curid=98530)
* [The Lift](https://www.pcgamingwiki.com/wiki/?curid=104523)
* [The Light](https://www.pcgamingwiki.com/wiki/?curid=151026)
* [The Light Empire](https://www.pcgamingwiki.com/wiki/?curid=45433)
* [The Lighthouse](https://www.pcgamingwiki.com/wiki/?curid=66297)
* [The Lighthouse: VR Escape Room](https://www.pcgamingwiki.com/wiki/?curid=137360)
@ -31469,6 +31473,7 @@
* [The Subject](https://www.pcgamingwiki.com/wiki/?curid=105351)
* [The Succubi Trap](https://www.pcgamingwiki.com/wiki/?curid=73792)
* [The Suffering of Larina](https://www.pcgamingwiki.com/wiki/?curid=68150)
* [The Sum of All Fears](https://www.pcgamingwiki.com/wiki/?curid=161769)
* [The Sun and Moon](https://www.pcgamingwiki.com/wiki/?curid=38133)
* [The Sun at Night](https://www.pcgamingwiki.com/wiki/?curid=49823)
* [The Sun Never Sets](https://www.pcgamingwiki.com/wiki/?curid=63268)
@ -32601,9 +32606,9 @@
* [Treasure chest Corps-結界を維持するため、魔物を退治した](https://www.pcgamingwiki.com/wiki/?curid=136750)
* [Treasure Fleet](https://www.pcgamingwiki.com/wiki/?curid=141942)
* [Treasure Hunt VR](https://www.pcgamingwiki.com/wiki/?curid=66245)
* [Treasure Hunter](https://www.pcgamingwiki.com/wiki/?curid=78818)
* [Treasure Hunter Claire](https://www.pcgamingwiki.com/wiki/?curid=92343)
* [Treasure Hunter Man 2](https://www.pcgamingwiki.com/wiki/?curid=95573)
* [Treasure Hunter Simulator](https://www.pcgamingwiki.com/wiki/?curid=78818)
* [Treasure Masters, Inc.: The Lost City](https://www.pcgamingwiki.com/wiki/?curid=134932)
* [Treasure of a Blizzard](https://www.pcgamingwiki.com/wiki/?curid=51326)
* [Treasure Planet: Battle at Procyon](https://www.pcgamingwiki.com/wiki/?curid=48617)
@ -33135,6 +33140,7 @@
* [Umineko: Golden Fantasia](https://www.pcgamingwiki.com/wiki/?curid=77211)
* [Umiro](https://www.pcgamingwiki.com/wiki/?curid=89573)
* [Umpire Simulator](https://www.pcgamingwiki.com/wiki/?curid=86957)
* [Umurangi Generation](https://www.pcgamingwiki.com/wiki/?curid=161467)
* [Un Pas Fragile](https://www.pcgamingwiki.com/wiki/?curid=141222)
* [Unaided: 1939](https://www.pcgamingwiki.com/wiki/?curid=50749)
* [Unalive](https://www.pcgamingwiki.com/wiki/?curid=56056)
@ -33238,7 +33244,6 @@
* [Unearthing Mars VR](https://www.pcgamingwiki.com/wiki/?curid=63338)
* [Unearthing Process](https://www.pcgamingwiki.com/wiki/?curid=67295)
* [Unending Dusk](https://www.pcgamingwiki.com/wiki/?curid=100542)
* [Unepic](https://www.pcgamingwiki.com/wiki/?curid=14739)
* [Unexpected Circumstances](https://www.pcgamingwiki.com/wiki/?curid=104781)
* [Unexpected Day](https://www.pcgamingwiki.com/wiki/?curid=57255)
* [Unexpected End](https://www.pcgamingwiki.com/wiki/?curid=76317)
@ -33319,10 +33324,11 @@
* [Unlimited Escape 3 & 4 Double Pack](https://www.pcgamingwiki.com/wiki/?curid=47841)
* [Unlit](https://www.pcgamingwiki.com/wiki/?curid=152989)
* [Unlock Me](https://www.pcgamingwiki.com/wiki/?curid=125241)
* [Unlock The King](https://www.pcgamingwiki.com/wiki/?curid=153113)
* [Unlock The King 2](https://www.pcgamingwiki.com/wiki/?curid=153541)
* [Unlock the King](https://www.pcgamingwiki.com/wiki/?curid=153113)
* [Unlock the King 2](https://www.pcgamingwiki.com/wiki/?curid=153541)
* [Unlucky Seven](https://www.pcgamingwiki.com/wiki/?curid=57020)
* [Unmanned Helicopter](https://www.pcgamingwiki.com/wiki/?curid=100102)
* [UnMetal](https://www.pcgamingwiki.com/wiki/?curid=161476)
* [Unmoor](https://www.pcgamingwiki.com/wiki/?curid=88185)
* [Unnamed Fiasco](https://www.pcgamingwiki.com/wiki/?curid=36232)
* [Unnamed VR](https://www.pcgamingwiki.com/wiki/?curid=150608)
@ -33355,6 +33361,7 @@
* [UNSUBSCRIBED: THE GAME](https://www.pcgamingwiki.com/wiki/?curid=135223)
* [UnSummoning: The Spectral Horde](https://www.pcgamingwiki.com/wiki/?curid=45192)
* [Unsung Heroes: The Golden Mask](https://www.pcgamingwiki.com/wiki/?curid=149023)
* [Unsung Kingdom](https://www.pcgamingwiki.com/wiki/?curid=161613)
* [Unsung Story](https://www.pcgamingwiki.com/wiki/?curid=97746)
* [Unsung Warriors](https://www.pcgamingwiki.com/wiki/?curid=128756)
* [Unsweet](https://www.pcgamingwiki.com/wiki/?curid=139572)
@ -33497,6 +33504,9 @@
* [Vampire Legends: The True Story of Kisilova](https://www.pcgamingwiki.com/wiki/?curid=38244)
* [Vampire of the Sands](https://www.pcgamingwiki.com/wiki/?curid=47215)
* [Vampire: The Masquerade - Bloodlines 2](https://www.pcgamingwiki.com/wiki/?curid=131333)
* [Vampire: The Masquerade - Night Road](https://www.pcgamingwiki.com/wiki/?curid=161701)
* [Vampire: The Masquerade - Out for Blood](https://www.pcgamingwiki.com/wiki/?curid=161616)
* [Vampire: The Masquerade - Parliament of Knives](https://www.pcgamingwiki.com/wiki/?curid=161703)
* [Vampire: The Masquerade - Shadows of New York](https://www.pcgamingwiki.com/wiki/?curid=159136)
* [Vampire: The Masquerade - Swansong](https://www.pcgamingwiki.com/wiki/?curid=148254)
* [Vampires: Guide Them to Safety!](https://www.pcgamingwiki.com/wiki/?curid=49476)
@ -33631,7 +33641,7 @@
* [Very Real Chess](https://www.pcgamingwiki.com/wiki/?curid=39051)
* [Verzaken!](https://www.pcgamingwiki.com/wiki/?curid=74902)
* [Vesta](https://www.pcgamingwiki.com/wiki/?curid=79838)
* [Vestaria Saga](https://www.pcgamingwiki.com/wiki/?curid=108740)
* [Vestaria Saga I: War of the Scions](https://www.pcgamingwiki.com/wiki/?curid=108740)
* [VESTIGE](https://www.pcgamingwiki.com/wiki/?curid=123582)
* [Vestige of the Past](https://www.pcgamingwiki.com/wiki/?curid=144981)
* [Veteran Combat](https://www.pcgamingwiki.com/wiki/?curid=48685)
@ -33761,6 +33771,7 @@
* [VireFit](https://www.pcgamingwiki.com/wiki/?curid=130191)
* [Virgo Versus The Zodiac](https://www.pcgamingwiki.com/wiki/?curid=113726)
* [VIRO MOVE](https://www.pcgamingwiki.com/wiki/?curid=136997)
* [Virtua Tennis](https://www.pcgamingwiki.com/wiki/?curid=161310)
* [VirtuaCreature](https://www.pcgamingwiki.com/wiki/?curid=104027)
* [Virtual Arctic Expedition](https://www.pcgamingwiki.com/wiki/?curid=132294)
* [Virtual Army: Revolution](https://www.pcgamingwiki.com/wiki/?curid=121951)
@ -33775,6 +33786,7 @@
* [Virtual Hero VR](https://www.pcgamingwiki.com/wiki/?curid=138669)
* [Virtual Insanity](https://www.pcgamingwiki.com/wiki/?curid=63207)
* [Virtual Islands](https://www.pcgamingwiki.com/wiki/?curid=39868)
* [Virtual Magic Kingdom](https://www.pcgamingwiki.com/wiki/?curid=161338)
* [Virtual Ninja VR](https://www.pcgamingwiki.com/wiki/?curid=87353)
* [Virtual Pirate VR](https://www.pcgamingwiki.com/wiki/?curid=93120)
* [Virtual Pool 4](https://www.pcgamingwiki.com/wiki/?curid=47952)
@ -34624,6 +34636,7 @@
* [Western Bank VR](https://www.pcgamingwiki.com/wiki/?curid=77867)
* [Western FPS](https://www.pcgamingwiki.com/wiki/?curid=59337)
* [Western Province](https://www.pcgamingwiki.com/wiki/?curid=128625)
* [Westmark Manor](https://www.pcgamingwiki.com/wiki/?curid=161236)
* [Westminster Darkly](https://www.pcgamingwiki.com/wiki/?curid=155426)
* [Westslingers](https://www.pcgamingwiki.com/wiki/?curid=66977)
* [Westward](https://www.pcgamingwiki.com/wiki/?curid=41267)
@ -35194,6 +35207,7 @@
* [Worms 2020](https://www.pcgamingwiki.com/wiki/?curid=158334)
* [Worms Blast](https://www.pcgamingwiki.com/wiki/?curid=12031)
* [Worms Crazy Golf](https://www.pcgamingwiki.com/wiki/?curid=12025)
* [Worms Rumble](https://www.pcgamingwiki.com/wiki/?curid=161530)
* [Wormster Dash](https://www.pcgamingwiki.com/wiki/?curid=113276)
* [Worse Than Death](https://www.pcgamingwiki.com/wiki/?curid=130567)
* [Worshippers](https://www.pcgamingwiki.com/wiki/?curid=74564)
@ -35245,6 +35259,7 @@
* [WW Fantasy](https://www.pcgamingwiki.com/wiki/?curid=92277)
* [WW2 Zombie Range VR](https://www.pcgamingwiki.com/wiki/?curid=141236)
* [WW2: Bunker Simulator](https://www.pcgamingwiki.com/wiki/?curid=151553)
* [WWE 2K Battlegrounds](https://www.pcgamingwiki.com/wiki/?curid=161591)
* [WWF Raw](https://www.pcgamingwiki.com/wiki/?curid=35829)
* [WWII - TD](https://www.pcgamingwiki.com/wiki/?curid=104483)
* [WWII英雄列伝 最強の虎 クルト・クニスペル](https://www.pcgamingwiki.com/wiki/?curid=77247)
@ -35503,6 +35518,7 @@
* [YouTubers Galaxy](https://www.pcgamingwiki.com/wiki/?curid=65072)
* [Yozakura Wizard VR](https://www.pcgamingwiki.com/wiki/?curid=87249)
* [Yrminsul](https://www.pcgamingwiki.com/wiki/?curid=44355)
* [Ys IX: Monstrum Nox](https://www.pcgamingwiki.com/wiki/?curid=161429)
* [Yu-Gi-Oh! Duel Links](https://www.pcgamingwiki.com/wiki/?curid=76905)
* [Yu-Gi-Oh! Legacy of the Duelist](https://www.pcgamingwiki.com/wiki/?curid=54768)
* [Yu-Gi-Oh! Legacy of the Duelist: Link Evolution](https://www.pcgamingwiki.com/wiki/?curid=158754)
@ -36301,6 +36317,7 @@
* [生物知识格斗大赛](https://www.pcgamingwiki.com/wiki/?curid=152963)
* [电竞传奇 / EsportsLegend](https://www.pcgamingwiki.com/wiki/?curid=109512)
* [电筒侠](https://www.pcgamingwiki.com/wiki/?curid=144155)
* [画江湖之杯莫停](https://www.pcgamingwiki.com/wiki/?curid=161584)
* [疑犯寻踪 In Pursuit](https://www.pcgamingwiki.com/wiki/?curid=134550)
* [疯狂的坦克](https://www.pcgamingwiki.com/wiki/?curid=144825)
* [疯狂西部/INSANE WEST](https://www.pcgamingwiki.com/wiki/?curid=134495)

View file

@ -2,6 +2,7 @@
installDir: Half-Life
'10000':
installDir: Enemy Territory QUAKE Wars
'1000010': {}
'1000030':
installDir: CookServeDelicious3
'1000040':
@ -2708,6 +2709,7 @@
installDir: Auf_Abwegen
'1036870':
installDir: Night Catcher
'1036890': {}
'1036900':
installDir: SBZA
'1036910':
@ -2812,6 +2814,7 @@
'1038110': {}
'1038120':
installDir: b.mg19
'1038250': {}
'1038280':
installDir: Nobodies
'1038370':
@ -3333,6 +3336,8 @@
installDir: The Walsingham Files - Chapter 1
'1045900':
installDir: Outpost On Syrinx
'1045930':
installDir: 1vs1 Battle Royale for the throne
'10460':
installDir: The Club
'1046030':
@ -3621,6 +3626,7 @@
installDir: Must Dash Amigos
'1049840':
installDir: Haramatia
'1049870': {}
'1049880':
installDir: My Free Farm
'1049890':
@ -4205,6 +4211,7 @@
'1057630': {}
'1057640':
installDir: Onirism
'1057660': {}
'1057680':
installDir: 人间 The Lost We Lost
'1057700':
@ -4501,6 +4508,7 @@
'1061280': {}
'1061300':
installDir: Surprising My Neighbors
'1061320': {}
'1061360':
installDir: Time Loop Fighter
'1061390':
@ -4534,6 +4542,7 @@
installDir: Chopper To Hell
'1061850':
installDir: Hotel Mogul Las Vegas
'1061880': {}
'1061900':
installDir: ThunderGod
'1061920': {}
@ -4905,6 +4914,7 @@
installDir: OFFSIDE
'1066370': {}
'1066380': {}
'1066390': {}
'1066400':
installDir: Doctor Who The Runaway
'1066430':
@ -5136,6 +5146,7 @@
'1069660': {}
'1069670':
installDir: Eilf
'1069690': {}
'1069710':
installDir: Gear City Against Chaos
'1069720':
@ -5374,6 +5385,7 @@
installDir: AvoCuddle
'1072620':
installDir: Weakless
'1072640': {}
'1072660':
installDir: Loco Parentis VR
'1072710':
@ -5472,6 +5484,7 @@
installDir: Self Shot
'1073900':
installDir: Brukel
'1073910': {}
'1073960':
installDir: Exemption
'1073990':
@ -5681,6 +5694,8 @@
'1077470': {}
'1077490':
installDir: Guns of Midnight
'1077520':
installDir: The Light Remake
'1077530':
installDir: BUILD
'1077540':
@ -6602,6 +6617,7 @@
installDir: 剑魄
'1091470':
installDir: Put In - Run Out
'1091500': {}
'1091520':
installDir: (Malicious Dinner)
'1091530': {}
@ -7307,6 +7323,8 @@
installDir: Florence
'1102150':
installDir: DefendingTerritory
'1102190':
installDir: Monster Train
'1102200':
installDir: Oceans We Make
'1102210':
@ -7701,6 +7719,7 @@
installDir: Ratropolis
'1108380':
installDir: Highlight
'1108400': {}
'1108420': {}
'1108540':
installDir: Zen Chess Champion's Moves
@ -8288,6 +8307,7 @@
installDir: HENTAI GIRL PUZZLE SCI-FI
'1117710':
installDir: Contraptions
'1117730': {}
'1117760':
installDir: Deadly Step
'1117770':
@ -8908,6 +8928,8 @@
installDir: Neonis
'1126710':
installDir: Hanaby the Witch
'1126750':
installDir: SSMK
'1126760': {}
'1126770':
installDir: My Bones Remastered
@ -8950,6 +8972,8 @@
installDir: A Wanderer's Adventure
'1127210':
installDir: Mystery at Stonyford Bridge
'1127250':
installDir: Deadly Maze Phase 1
'1127290':
installDir: Battle Survive Hentai
'1127310':
@ -9183,6 +9207,7 @@
installDir: The Yellow Ladder
'1130990':
installDir: Roman Adventures Season2
'1131000': {}
'1131110':
installDir: Orbitblazers
'1131160':
@ -9332,6 +9357,7 @@
'1132980': {}
'11330':
installDir: Obulis
'1133040': {}
'1133050': {}
'1133070':
installDir: Viking Chess Hnefatafl
@ -9929,6 +9955,7 @@
'1142080': {}
'1142090':
installDir: PBS
'1142100': {}
'1142130':
installDir: They Can't Stop All Of Us
'1142180':
@ -10208,12 +10235,15 @@
'1146210':
installDir: Adam Robot World
'1146220': {}
'1146230':
installDir: Spellsword Cards DungeonTop
'1146240': {}
'1146250':
installDir: Seasons Girls
'1146280':
installDir: ' Первых Поход'
'1146300': {}
'1146310': {}
'1146330':
installDir: Virulent Addiction
'1146350':
@ -10325,6 +10355,8 @@
'1147900':
installDir: 炼妖记
'1147910': {}
'1147940':
installDir: 3dSen
'1147950':
installDir: Shio And Mysterious Forest
'1147960':
@ -11122,6 +11154,8 @@
installDir: 无限之心
'1158910':
installDir: Dream Detective
'1158970':
installDir: Westmark Manor
'1158980':
installDir: Idle Big Devil
'1158990':
@ -11412,6 +11446,7 @@
installDir: WTC OVN 2
'1163490':
installDir: Gangsters 1920
'1163550': {}
'1163560':
installDir: SuperEpic The Entertainment War
'1163570':
@ -11961,8 +11996,11 @@
installDir: Rage Among The Stars
'1172430':
installDir: Combat Force
'1172470': {}
'1172500':
installDir: Hang The Kings
'1172510':
installDir: Unlock The King
'1172520':
installDir: Colorgrid
'1172620':
@ -12141,6 +12179,7 @@
'1175590':
installDir: JAGD LANZER
'1175600': {}
'1175620': {}
'1175640':
installDir: Zombie Road Rider
'1175650':
@ -12234,6 +12273,7 @@
installDir: UncleNeighbor
'1177430':
installDir: Immanence
'1177450': {}
'1177460':
installDir: Dangerous Blaster
'1177480':
@ -12598,6 +12638,7 @@
'1184110':
installDir: 刀锋突袭
'1184140': {}
'1184160': {}
'1184190':
installDir: Knockout Bowling vr
'1184210': {}
@ -12703,6 +12744,7 @@
installDir: Wars of the Roses
'1186030':
installDir: Death Park
'1186040': {}
'1186080':
installDir: The Adventures of Willow and Ash
'1186160':
@ -12900,6 +12942,8 @@
installDir: DEM_Stage_Zero
'1189600':
installDir: 漫步者 The Walker
'1189630':
installDir: PathOfWuxia
'1189720': {}
'1189730': {}
'1189800':
@ -12947,6 +12991,8 @@
installDir: The Wonderful 101 Remastered
'1190410':
installDir: Crazy city
'1190460':
installDir: Death Stranding
'1190480':
installDir: Heebie Jeebies The Roller Coaster
'1190530':
@ -13572,6 +13618,8 @@
installDir: Long loot the King
'1201800':
installDir: Knight Swap 2
'1201810':
installDir: Unlock The King 2
'1201830':
installDir: For The Warp
'1201840':
@ -13681,6 +13729,7 @@
installDir: Zombie Slayers
'1203680':
installDir: Guiding Light
'1203710': {}
'1203760':
installDir: Builder VR
'1203770':
@ -13776,6 +13825,7 @@
'1205240':
installDir: Tentacle Girl
'1205270': {}
'1205390': {}
'1205430': {}
'1205450': {}
'1205540':
@ -14207,6 +14257,7 @@
installDir: Spirit of the North
'1213740':
installDir: She Will Punish Them
'1213750': {}
'1213760':
installDir: Path of Zen
'1213770':
@ -14641,6 +14692,8 @@
'1223350':
installDir: War of the Wasteland
'1223440': {}
'1223500':
installDir: Umurangi Generation
'1223530': {}
'1223550':
installDir: Buddy Bash
@ -14664,6 +14717,7 @@
installDir: Humble Rumble
'1225320':
installDir: HENTAI SEEK
'1225330': {}
'1225410': {}
'1225550':
installDir: Draft Day Sports College Football 2020
@ -14712,6 +14766,9 @@
installDir: The Convenience Store Yakin Jiken
'1228610': {}
'1229490': {}
'1229580': {}
'1230800':
installDir: Beach Buggy Racing 2
'12310':
installDir: Culpa Innata
'12320':
@ -14780,25 +14837,36 @@
'12470':
installDir: Port Royale 2
'1248060': {}
'1248080': {}
'1249110': {}
'1249970': {}
'1250':
installDir: KillingFloor
'12500':
installDir: Puzzle Quest
'1250250':
installDir: NAMCO MUSEUM ARCHIVES Vol 1
'1250610':
installDir: Flash Snooker Game
'12510':
installDir: Prison Tycoon 3
'12520':
installDir: 18 Wheels of Steel American Long Haul
'12530':
installDir: Hunting Unlimited 2008
'1253920': {}
'12540':
installDir: Mahjongg Investigations Under Suspicion
'1254620':
installDir: NAMCO MUSEUM ARCHIVES Vol 2
'12550':
installDir: Are You Smarter then a Fifth Grader
'12560':
installDir: Ride Carnival Tycoon
'12570':
installDir: Hot Dish
'1257360':
installDir: Bloodstained Curse of the Moon 2
'12580':
installDir: Dr Daisy
'1258040':
@ -14809,6 +14877,8 @@
installDir: The House of Da Vinci 2
'12600':
installDir: Midnight Outlaw 6 Hours to Sun Up
'1260840':
installDir: The Casebook of Arkady Smith
'1261880':
installDir: Education
'1262240':
@ -14826,19 +14896,26 @@
'1265860': {}
'12660':
installDir: Miss Popularity
'1266100': {}
'1266840': {}
'12670':
installDir: Mission Runway
'12690':
installDir: Hunting Unlimited 2010
'1270590':
installDir: Falcon City
'1271580':
installDir: Good Morning World
'1271620':
installDir: UmiharaKawaseBaZooKa
'12720':
installDir: Turning Point Fall of Liberty
'1272110':
installDir: Close Combat Wacht am Rhein
'1272130':
installDir: Close Combat The Longest Day
'1273710':
installDir: King of Crabs
'1274450':
installDir: Bear Party Adventure
'12750':
@ -14849,17 +14926,24 @@
installDir: Rise of the Argonauts
'12790':
installDir: Damnation
'1279390':
installDir: SENGOKU CANNON
'1279630': {}
'12800':
installDir: FUEL
'12810':
installDir: Overlord II
'1281630':
installDir: Anno 1404 - History Edition
'1281800':
installDir: Samsara Room
'1282690':
installDir: Crysis 3
'12830':
installDir: Operation Flashpoint Dragon Rising
'1283220':
installDir: Devolverland_Expo
'1283400': {}
'1283930':
installDir: Half-Life Restored
'12840':
@ -14876,6 +14960,10 @@
installDir: Audiosurf
'1290220':
installDir: elma
'1290270': {}
'1290350': {}
'1292010':
installDir: MissileCommandRecharged
'1293160': {}
'130':
installDir: Half-Life
@ -14884,15 +14972,20 @@
'13000':
installDir: Ninja Reflex
'1302050': {}
'1305310':
installDir: Drox Operative 2
'1305720':
installDir: Delores
'1313':
installDir: SiN 1
'1313860': {}
'13140':
installDir: america's army 3
'1315200':
installDir: KUF Heroes
'1316870': {}
'1318690':
installDir: shapez.io
'13200':
installDir: Unreal II The Awakening
'13210':
@ -14906,10 +14999,21 @@
'1330740':
installDir: Battle For Crown Multiplayer
'1332010': {}
'1334730': {}
'1337920': {}
'1340570':
installDir: Golf On Mars
'1344790':
installDir: Unsung Kingdom
'1344840':
installDir: AKER FERN
'1345730':
installDir: 画江湖之杯莫停
'13500':
installDir: Prince of Persia The Warrior Within
'13510':
installDir: Ghost Recon Advanced Warfighter 2
'1351630': {}
'13520':
installDir: FarCry
'13530':
@ -16486,6 +16590,7 @@
installDir: Incredipede
'230190':
installDir: War For The Overworld
'230210': {}
'230230':
installDir: Divinity - Original Sin
'230270':
@ -16634,6 +16739,8 @@
installDir: Worms Clan Wars
'233860':
installDir: Kenshi
'233980':
installDir: Unepic
'23400':
installDir: Imperium Romanum
'234000':
@ -17568,6 +17675,8 @@
installDir: Halfway
'253190':
installDir: KW2 Battles
'253230':
installDir: HatinTime
'253250':
installDir: Stonehearth
'253290':
@ -19027,6 +19136,8 @@
installDir: Reversion - The Meeting
'281080':
installDir: Reversion - The Return
'281200':
installDir: A Boy and His Blob
'281220':
installDir: Blood Rayne Betrayal
'281240':
@ -24964,6 +25075,8 @@
installDir: hdmp
'359310':
installDir: Evoland 2
'359320':
installDir: Elite Dangerous
'359340':
installDir: Pixel Puzzles Mosaics
'359350':
@ -27577,6 +27690,8 @@
installDir: Horizon Chase
'389160':
installDir: Shadow Ninja Apocalypse
'389170':
installDir: A Lenda do Herói - O Jogo
'389190':
installDir: Goblins & Grottos
'389200':
@ -30448,6 +30563,8 @@
installDir: Dead Rising
'427240':
installDir: CosmicTrip
'427250':
installDir: 8BitArmies
'427270':
installDir: OrcsMustDieUnchained
'427290':
@ -31147,6 +31264,8 @@
installDir: Elansar
'435080':
installDir: Philia the Sequel to Elansar
'435100':
installDir: 2Dark
'435120':
installDir: Rusty Lake Hotel
'435140':
@ -36205,6 +36324,8 @@
installDir: Castle Invasion Throne Out
'504880':
installDir: Pixel Puzzles 2 RADical ROACH
'504920':
installDir: 39 Days to Mars
'504980':
installDir: Elves Adventure
'505020':
@ -39692,6 +39813,7 @@
installDir: After Life - Story of a Father
'550310':
installDir: Root Of Evil
'550320': {}
'550340':
installDir: Umineko Golden Fantasia
'550360':
@ -41480,6 +41602,8 @@
installDir: Stormworks
'573100':
installDir: Battlefleet Gothic Armada II
'573110':
installDir: AWAY
'573120':
installDir: Dead In Vinland
'573130':
@ -43380,6 +43504,7 @@
installDir: VINDICTA
'597810':
installDir: Shining Plume 2
'597820': {}
'597860':
installDir: Nightmare Boy
'597900':
@ -45348,6 +45473,8 @@
installDir: Adventure Craft
'624900':
installDir: COMET STRIKE
'624910':
installDir: 3on3 FreeStyle
'624920':
installDir: Trapped With the Dolls VR
'624930': {}
@ -47164,6 +47291,7 @@
installDir: I Want Toilet!!!!!!
'654850':
installDir: Masked Forces Zombie Survival
'654870': {}
'654880':
installDir: Dream Daddy
'654890': {}
@ -47405,6 +47533,7 @@
'656780':
installDir: Bullyparade - DER Spiel
'656790': {}
'656840': {}
'656880':
installDir: Cybercube
'656890':
@ -49398,6 +49527,7 @@
'678590': {}
'678620':
installDir: Battle Chess II Chinese Chess
'678670': {}
'678680': {}
'678750': {}
'678760':
@ -51019,6 +51149,7 @@
installDir: Ophidian
'697730':
installDir: EscapeFantasy
'697750': {}
'697780':
installDir: Thanksgivingistry
'697790':
@ -53682,6 +53813,7 @@
installDir: RibbonChase
'728630':
installDir: CardboardWars
'728650': {}
'728660': {}
'728670':
installDir: MazeUp
@ -55152,6 +55284,8 @@
installDir: The Love Boat
'748270':
installDir: VR Roller Coaster - Cave Depths
'748300':
installDir: Treasure Hunter
'748310':
installDir: Trio Adventures
'748320': {}
@ -55900,6 +56034,7 @@
'757300':
installDir: Truberbrook
'757310': {}
'757320': {}
'757330':
installDir: qop 2
'757350':
@ -56180,6 +56315,7 @@
installDir: Cube Life Island Survival
'760810':
installDir: Retimed
'760820': {}
'760860':
installDir: TRANSCEND
'760870': {}
@ -56297,6 +56433,7 @@
installDir: Treachery in Beatdown City
'762190':
installDir: Epic Loon
'762220': {}
'762240':
installDir: Fantasy Realm
'762250': {}
@ -56802,6 +56939,7 @@
installDir: Battlemage VR
'768480':
installDir: Chamber of the Sci-Mutant Priestess
'768510': {}
'768520': {}
'768540':
installDir: Dinosaurs Prehistoric Survivors
@ -57354,6 +57492,7 @@
installDir: Blood of Patriots
'775320': {}
'775330': {}
'775430': {}
'775460':
installDir: The Cryptkeepers of Hallowford
'775490':
@ -59736,6 +59875,7 @@
installDir: Battle Carnival
'803150':
installDir: Nephise Ascension
'803160': {}
'803220':
installDir: Winions Mana Champions
'803260':
@ -59752,6 +59892,7 @@
installDir: Landlord Simulator
'803320':
installDir: Haldor
'803330': {}
'803350':
installDir: Fighter Royale
'803360':
@ -61318,6 +61459,7 @@
installDir: Animal Jam - Play Wild!
'822250':
installDir: GL1TCH
'822310': {}
'822440':
installDir: CoffeeTime
'822450':
@ -61332,6 +61474,7 @@
installDir: Pukan Bye Bye
'822540':
installDir: Escape From Tethys
'822600': {}
'822610':
installDir: Patternis
'822640':
@ -61451,6 +61594,8 @@
installDir: Frightened Beetles
'823840':
installDir: Macrotis
'823910':
installDir: LastEvil
'823920':
installDir: Kawaii Rainbow Portal
'823940':
@ -63091,6 +63236,7 @@
installDir: Rugby 20
'846750':
installDir: Catburglar
'846770': {}
'846780':
installDir: JumpStream
'846790':
@ -63226,6 +63372,7 @@
installDir: Sniper Strike Special Ops
'848520':
installDir: Super Destronaut DX
'848540': {}
'848550':
installDir: Welcome Back To 2007 2
'848610':
@ -64574,6 +64721,7 @@
installDir: PLAYNE
'865570':
installDir: pact with a witch
'865610': {}
'865630':
installDir: One Hundred Times Me
'865640':
@ -65025,6 +65173,7 @@
installDir: BowmanVSZombies
'870750':
installDir: Junk Smasher
'870780': {}
'870800':
installDir: Kilcount
'870890':
@ -66613,6 +66762,7 @@
installDir: Perspectrum
'890640':
installDir: Rampage of the Dead
'890660': {}
'890680':
installDir: Mars Troopers
'890690':
@ -66698,9 +66848,15 @@
'891510':
installDir: Love's Sweet Garnish
'891520': {}
'891570': {}
'891580': {}
'891590': {}
'891600': {}
'891610': {}
'891620': {}
'891640': {}
'891650': {}
'891670': {}
'891700':
installDir: Mosaics Galore. Challenging journey
'891710':
@ -67188,6 +67344,7 @@
installDir: Ding Dong VR
'897700':
installDir: Bladequest
'897730': {}
'897760':
installDir: PUTANNA
'897770':
@ -67552,6 +67709,7 @@
installDir: Draw Light
'905020':
installDir: Fort
'905030': {}
'905060':
installDir: Turret Tech
'905070':
@ -71074,6 +71232,7 @@
'951410': {}
'951420':
installDir: Refraction
'951430': {}
'951440':
installDir: Volcanoids
'951450':
@ -71220,6 +71379,7 @@
'953400': {}
'953440':
installDir: AndYoureThereToo
'953490': {}
'953550':
installDir: Temple Scramble
'953570':
@ -71338,6 +71498,7 @@
installDir: The Blood Eclipse
'955300':
installDir: ShotKill
'955310': {}
'955320':
installDir: Dark Fantasy
'955360':
@ -71400,6 +71561,7 @@
installDir: Su Hack
'956010':
installDir: Hexanome
'956030': {}
'956060':
installDir: Mittelborg
'956090':
@ -71409,6 +71571,7 @@
'956140': {}
'956150':
installDir: Mars Chaos Menace
'956190': {}
'956200':
installDir: Leopoldo Manquiseil
'956210':
@ -71613,6 +71776,7 @@
installDir: Save Thine Kingdom
'959410':
installDir: The Endless Empty
'959440': {}
'959480': {}
'959500':
installDir: Cute Puzzle
@ -71916,6 +72080,8 @@
'963770':
installDir: WTC 1
'963780': {}
'963830':
installDir: A Flappy Bird in the Real Life
'963860':
installDir: Invaders from Dimension X
'963870': {}
@ -72353,6 +72519,7 @@
installDir: The Last Sphinx ARG
'970370':
installDir: Gala_Collider
'970390': {}
'970400':
installDir: Our Lovely Escape
'970460':
@ -72853,6 +73020,7 @@
'977140': {}
'977160':
installDir: HORSE
'977200': {}
'977210':
installDir: THE CHOICE OF SAND
'977230':
@ -72970,6 +73138,8 @@
'978700': {}
'978710':
installDir: Dinosaurus Life VR
'978780':
installDir: STORY OF SEASONS Friends of Mineral Town
'978790':
installDir: Frantic Dimension
'978800':
@ -73285,8 +73455,10 @@
installDir: Bomber Barn
'982850':
installDir: Tess Elated
'982860': {}
'982880': {}
'982890': {}
'982900': {}
'982990':
installDir: Muzzleloaded
'98300':
@ -73669,6 +73841,8 @@
installDir: Dungeons of Dredmor
'988070':
installDir: All Of Zhem
'988080':
installDir: 3 on 3 Super Robot Hockey
'988100':
installDir: Super Phantom Cat
'988110':

File diff suppressed because it is too large Load diff

390
package-lock.json generated
View file

@ -119,7 +119,6 @@
"version": "6.12.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
"integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@ -153,6 +152,11 @@
"require-from-string": "^1.2.0"
}
},
"ansicolors": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
"integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk="
},
"appdirectory": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/appdirectory/-/appdirectory-0.1.0.tgz",
@ -177,6 +181,32 @@
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
"integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
},
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"requires": {
"safer-buffer": "~2.1.0"
}
},
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"async": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
"requires": {
"lodash": "^4.17.14"
}
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"available-typed-arrays": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz",
@ -185,12 +215,30 @@
"array-filter": "^1.0.0"
}
},
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
"integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"requires": {
"tweetnacl": "^0.14.3"
}
},
"binarykvparser": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binarykvparser/-/binarykvparser-2.2.0.tgz",
@ -229,6 +277,11 @@
"long": "~3"
}
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"cejs": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/cejs/-/cejs-3.7.0.tgz",
@ -240,6 +293,19 @@
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
"dev": true
},
"colors": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
"integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@ -262,11 +328,29 @@
"proto-list": "~1.2.1"
}
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cuint": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
"integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs="
},
"cycle": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
"integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
"assert-plus": "^1.0.0"
}
},
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@ -275,12 +359,26 @@
"object-keys": "^1.0.12"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true
},
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"requires": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
"editorconfig": {
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
@ -326,11 +424,25 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
},
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"eyes": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
"integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
},
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-json-patch": {
"version": "2.2.1",
@ -352,8 +464,7 @@
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"file-manager": {
"version": "2.0.0",
@ -365,6 +476,21 @@
"resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
},
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@ -376,6 +502,14 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
"assert-plus": "^1.0.0"
}
},
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@ -390,6 +524,20 @@
"path-is-absolute": "^1.0.0"
}
},
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"requires": {
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
}
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@ -403,6 +551,16 @@
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
},
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
}
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@ -471,6 +629,16 @@
"has-symbols": "^1.0.1"
}
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"js-beautify": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz",
@ -493,6 +661,16 @@
"esprima": "^4.0.0"
}
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
},
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-schema-migrate": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/json-schema-migrate/-/json-schema-migrate-0.2.0.tgz",
@ -531,8 +709,12 @@
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"json5": {
"version": "2.1.3",
@ -543,6 +725,22 @@
"minimist": "^1.2.5"
}
},
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
}
},
"lodash": {
"version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"long": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz",
@ -569,6 +767,19 @@
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true
},
"mime-db": {
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
},
"mime-types": {
"version": "2.1.27",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
"requires": {
"mime-db": "1.44.0"
}
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@ -589,6 +800,32 @@
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
"node-version-compare": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/node-version-compare/-/node-version-compare-1.0.2.tgz",
"integrity": "sha512-OVcHSPS3nROlBQXcALptOR0j2lOabC9wE2S+y+Fvr7nSDqoO/LCNzRdVGVovipeHUXs5jAqq7GelWE1X4J1sEw=="
},
"nodemw": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/nodemw/-/nodemw-0.13.0.tgz",
"integrity": "sha512-zTZd+dPFR7grv5O9/0E+3SivlRFMFQwOBlXmw1QZOcwftzLgKwHxqGrfLe4SXIysInSsOYSdAMI4pVQaiw4q1Q==",
"requires": {
"ansicolors": "0.3.x",
"async": "^2.6.1",
"diff": "^3.5.0",
"node-version-compare": "^1.0.1",
"request": "^2.88.0",
"underscore": "^1.9.1",
"winston": "^2.4.4"
},
"dependencies": {
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
}
}
},
"nopt": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
@ -599,6 +836,11 @@
"osenv": "^0.1.4"
}
},
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
},
"object-inspect": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
@ -657,6 +899,11 @@
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"permessage-deflate": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/permessage-deflate/-/permessage-deflate-0.1.7.tgz",
@ -709,11 +956,47 @@
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true
},
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
},
"request": {
"version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
"combined-stream": "~1.0.6",
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
"har-validator": "~5.1.3",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
"tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
}
},
"require-from-string": {
"version": "1.2.1",
@ -726,6 +1009,11 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@ -759,6 +1047,27 @@
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
"sshpk": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"requires": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
"dashdash": "^1.12.0",
"ecc-jsbn": "~0.1.1",
"getpass": "^0.1.1",
"jsbn": "~0.1.0",
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
}
},
"stack-trace": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
"integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
},
"steam-appticket": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/steam-appticket/-/steam-appticket-1.0.1.tgz",
@ -824,6 +1133,15 @@
"es-abstract": "^1.17.5"
}
},
"tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"requires": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
}
},
"ts-node": {
"version": "8.10.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz",
@ -837,17 +1155,34 @@
"yn": "3.1.1"
}
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
"typescript": {
"version": "3.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz",
"integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==",
"dev": true
},
"underscore": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz",
"integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg=="
},
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"dev": true,
"requires": {
"punycode": "^2.1.0"
}
@ -865,6 +1200,11 @@
"which-typed-array": "^1.1.2"
}
},
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
},
"vdf": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/vdf/-/vdf-0.0.2.tgz",
@ -873,6 +1213,16 @@
"util": "*"
}
},
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
"websocket-extensions": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
@ -910,6 +1260,26 @@
"cejs": "^3.7.0"
}
},
"winston": {
"version": "2.4.5",
"resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz",
"integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==",
"requires": {
"async": "~1.0.0",
"colors": "1.0.x",
"cycle": "1.0.x",
"eyes": "0.1.x",
"isstream": "0.1.x",
"stack-trace": "0.0.x"
},
"dependencies": {
"async": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
"integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
}
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View file

@ -7,6 +7,7 @@
"scripts": {
"cache": "ts-node ./src/bin.ts --cache",
"manifest": "ts-node ./src/bin.ts --manifest",
"recent": "ts-node ./src/bin.ts --limit 0 --cache --manifest --recent",
"schema": "npm run schema:normal && npm run schema:strict",
"schema:normal": "ajv validate -s ./data/schema.yaml -d ./data/manifest.yaml",
"schema:strict": "ajv validate -s ./data/schema.strict.yaml -d ./data/manifest.yaml",
@ -23,6 +24,7 @@
"dependencies": {
"js-yaml": "^3.14.0",
"minimist": "^1.2.5",
"nodemw": "^0.13.0",
"steam-user": "^4.16.2",
"wikiapi": "^1.10.0"
}

View file

@ -18,6 +18,7 @@ interface Cli {
tooBroad?: boolean,
tooBroadUntagged?: boolean,
game?: string,
recent?: number,
limit?: number,
}
@ -41,7 +42,11 @@ async function main() {
try {
if (args.cache) {
await wikiCache.addNewGames(manifest.data);
if (args.recent) {
await wikiCache.flagRecentChanges(args.recent);
} else {
await wikiCache.addNewGames();
}
}
if (args.manifest) {
@ -57,6 +62,7 @@ async function main() {
tooBroad: args.tooBroad ?? false,
tooBroadUntagged: args.tooBroadUntagged ?? false,
game: args.game,
recent: args.recent,
},
args.limit ?? 25,
steamCache,

View file

@ -54,8 +54,9 @@ export class ManifestFile extends YamlFile<Manifest> {
tooBroad: boolean,
tooBroadUntagged: boolean,
game: string | undefined,
recent: number | undefined,
},
limit: number,
limit: number | undefined,
steamCache: SteamGameCacheFile,
): Promise<void> {
let i = 0;
@ -88,16 +89,26 @@ export class ManifestFile extends YamlFile<Manifest> {
if (filter.tooBroadUntagged && Object.keys(this.data[title]?.files ?? []).some(x => pathIsTooBroad(x))) {
check = true;
}
if (filter.recent && wikiCache[title].recentlyChanged) {
check = true;
}
if (!check) {
continue;
}
i++;
if (i > limit) {
if (limit > 0 && i > limit) {
break;
}
if (info.renamedFrom) {
for (const oldName of info.renamedFrom) {
delete this.data[oldName];
}
}
const game = await getGame(title, wikiCache);
wikiCache[title].recentlyChanged = false;
if (game.files === undefined && game.registry === undefined && game.steam?.id === undefined) {
delete this.data[title];
continue;

View file

@ -1,6 +1,7 @@
import { REPO, PathType, UnsupportedOsError, UnsupportedPathError, YamlFile } from ".";
import { Manifest, Constraint, Game, Store, Tag, Os } from "./manifest";
import { Constraint, Game, Store, Tag, Os } from "./manifest";
import * as Wikiapi from "wikiapi";
import * as NodeMw from "nodemw";
export type WikiGameCache = {
[title: string]: {
@ -12,6 +13,8 @@ export type WikiGameCache = {
unsupportedPath?: boolean,
/** Whether an entry has a path that is too broad (e.g., the entirety of %WINDIR%). */
tooBroad?: boolean,
recentlyChanged?: boolean,
renamedFrom?: Array<string>,
};
};
@ -19,7 +22,7 @@ export class WikiGameCacheFile extends YamlFile<WikiGameCache> {
path = `${REPO}/data/wiki-game-cache.yaml`;
defaultData = {};
async addNewGames(manifest: Manifest): Promise<void> {
async addNewGames(): Promise<void> {
const wiki = makeApiClient();
const pages: Array<{ pageid: number, title: string }> = JSON.parse(JSON.stringify(await wiki.categorymembers("Games")));
for (const page of pages) {
@ -31,6 +34,51 @@ export class WikiGameCacheFile extends YamlFile<WikiGameCache> {
}
};
}
async flagRecentChanges(days: number): Promise<void> {
const changes = await getRecentChanges(days);
const client = makeApiClient2();
for (const [recentName, recentInfo] of Object.entries(changes).sort((x, y) => x[0].localeCompare(y[0]))) {
if (this.data[recentName] !== undefined) {
// Existing entry has been edited.
console.log(`[E ] ${recentName}`);
this.data[recentName].recentlyChanged = true;
} else {
// Check for a rename.
let renamed = false;
for (const [existingName, existingInfo] of Object.entries(this.data)) {
if (existingInfo.pageId === recentInfo.pageId) {
// We have a confirmed rename.
console.log(`[ M ] ${recentName} <<< ${existingName}`);
renamed = true;
this.data[recentName] = {
pageId: recentInfo.pageId,
revId: existingInfo.revId,
recentlyChanged: true,
renamedFrom: [...(existingInfo.renamedFrom ?? []), existingName]
};
delete this.data[existingName];
break;
}
}
if (!renamed) {
// Brand new page.
const [data, _] = await callMw<Array<string>>(client, "getArticleCategories", recentName);
if (data.includes("Category:Games")) {
// It's a game, so add it to the cache.
console.log(`[ C] ${recentName}`);
this.data[recentName] = { pageId: recentInfo.pageId, revId: 0, recentlyChanged: true };
}
}
}
}
}
}
interface RecentChanges {
[article: string]: {
pageId: number;
};
}
// This defines how {{P|game}} and such are converted.
@ -263,10 +311,81 @@ function parseOs(os: string): Os {
}
}
// Used for most functionality, but it seems like a less active project
// and it's hard to figure out what functionality is available,
// so we'll probably migrate to nodemw.
function makeApiClient() {
return new Wikiapi("https://www.pcgamingwiki.com/w");
}
// Used for the Recent Changes page and getting a single page's categories.
// Will probably also migrate to this in general.
function makeApiClient2(): any {
return new NodeMw({
protocol: "https",
server: "www.pcgamingwiki.com",
path: "/w",
debug: false,
userAgent: "ludusavi-manifest-importer/0.0.0",
concurrency: 1,
});
}
// Promise wrapper for nodemw.
function callMw<T = any>(client, method: string, ...args: Array<any>): Promise<[T, any]> {
return new Promise((resolve, reject) => {
client[method](...args, (err: any, data: T, next: any) => {
if (err) {
reject(err);
} else {
resolve([data, next]);
}
});
});
}
export async function getRecentChanges(days: number): Promise<RecentChanges> {
const changes: RecentChanges = {};
const client = makeApiClient2();
const startTimestamp = new Date().toISOString();
const endTimestamp = new Date(new Date().setDate(new Date().getDate() - days)).toISOString();
let rccontinue: string | undefined = undefined;
while (true) {
const params = {
action: "query",
list: "recentchanges",
rcprop: "title|ids",
rcstart: startTimestamp,
rcend: endTimestamp,
rclimit: 500,
rcnamespace: 0,
rctype: "edit|new",
rccontinue,
};
if (params.rccontinue === undefined) {
delete params.rccontinue;
}
const [data, next] = await callMw<{ recentchanges: Array<{ title: string; pageid: number }> }>(
client.api, "call", params
);
for (const article of data.recentchanges) {
changes[article.title] = {
pageId: article.pageid,
};
}
if (next) {
rccontinue = next.rccontinue;
} else {
break;
}
}
return changes;
}
/**
* https://www.pcgamingwiki.com/wiki/Template:Game_data
*/