Fix handling of page moves in recent changes when no redirect is left and there are no edits since the move

This commit is contained in:
mtkennerly 2020-08-04 16:42:12 -04:00
parent eec7d58e6e
commit 18eb5e91d7
7 changed files with 566 additions and 402 deletions

View file

@ -2246,6 +2246,12 @@ $1 Ride:
steam:
id: 299660
'64.0':
files:
<home>/AppData/LocalLow/rebelrabbit/64_0/*.dat:
tags:
- save
when:
- os: windows
installDir:
'64.0': {}
steam:
@ -4693,6 +4699,12 @@ AGON - The Mysterious Codex (Trilogy):
steam:
id: 410130
AHEGAL:
files:
<home>/AppData/LocalLow/Oppai Reveal Studios/AheGal/*.gd:
tags:
- save
when:
- os: windows
installDir:
AHEGAL: {}
steam:
@ -4733,6 +4745,27 @@ AI Vendetta:
steam:
id: 846320
AI War 2:
files:
<base>/PlayerData/*.bak:
tags:
- save
when:
- os: windows
<base>/PlayerData/*.dat:
tags:
- save
when:
- os: windows
<base>/PlayerData/Profiles/*.aiwprof:
tags:
- save
when:
- os: windows
<base>/PlayerData/Save:
tags:
- save
when:
- os: windows
installDir:
AI War 2: {}
steam:
@ -18261,6 +18294,12 @@ Asteroid Blaster VR:
steam:
id: 535380
Asteroid Bounty Hunter:
files:
<base>/AsteroidBountyHunter:
tags:
- save
when:
- os: windows
installDir:
Asteroid Bounty Hunter: {}
steam:
@ -20583,6 +20622,12 @@ Ayahuasca:
steam:
id: 1212940
Ayakashigami:
files:
<winLocalAppData>/アヤカシガミ/save.dat:
tags:
- save
when:
- os: windows
installDir:
ayakashigami: {}
steam:
@ -22239,11 +22284,6 @@ Ballad of Solar:
Ballad of Solar: {}
steam:
id: 302490
'Ballads of Reemus: When the Bed Bites':
installDir:
Ballads of Reemus When the Bed Bites: {}
steam:
id: 327450
Ballance:
files:
<base>/Database.tdb:
@ -22963,6 +23003,12 @@ Barrimean Jungle:
steam:
id: 749650
Barro:
files:
<base>/Barro/Save/*.scj:
tags:
- save
when:
- os: windows
installDir:
SC Jogos: {}
steam:
@ -26253,6 +26299,11 @@ Beneath a Steel Sky:
- config
when:
- os: dos
<home>/Documents/ScummVM Savegames/Beneath a Steel Sky:
tags:
- save
when:
- os: mac
Beneath steel clouds:
installDir:
Beneath steel clouds: {}
@ -45471,6 +45522,13 @@ Cloak and Dasher:
steam:
id: 1114620
Clock Simulator:
files:
<home>/AppData/LocalLow/Nickervision Studios/Ding Dong XL:
tags:
- config
- save
when:
- os: windows
installDir:
Clock Simulator: {}
steam:
@ -47536,6 +47594,12 @@ Combat Air Patrol 2:
steam:
id: 347170
Combat Arms:
files:
<base>/Profiles:
tags:
- config
when:
- os: windows
installDir:
Combat Arms Reloaded: {}
steam:
@ -65656,6 +65720,12 @@ Ding Dong VR:
steam:
id: 897690
Ding Dong XL:
files:
<home>/AppData/LocalLow/Nickervision Studios/Ding Dong XL:
tags:
- save
when:
- os: windows
installDir:
Ding Dong XL: {}
steam:
@ -84570,6 +84640,12 @@ Fall Fear Fly Redemption:
steam:
id: 684770
'Fall Guys: Ultimate Knockout':
files:
HKEY_CURRENT_USER/SOFTWARE/Mediatonic/FallGuys_client:
tags:
- config
when:
- os: windows
steam:
id: 1097150
Fall In Love - My Billionaire Boss:
@ -108861,6 +108937,17 @@ Hellbender:
steam:
id: 747350
Hellbound:
files:
<winLocalAppData>/Hellbound/Saved/Config/WindowsNoEditor:
tags:
- config
when:
- os: windows
<winLocalAppData>/Hellbound/Saved/SaveGames:
tags:
- save
when:
- os: windows
steam:
id: 753590
'Hellbound: Survival Mode':
@ -112706,6 +112793,12 @@ Hold your Houses:
steam:
id: 586790
'Holdfast: Nations At War':
files:
<home>/AppData/LocalLow/Anvil Game Studio/Holdfast NaW:
tags:
- config
when:
- os: windows
installDir:
Holdfast Nations At War: {}
steam:
@ -123047,6 +123140,12 @@ Jengo:
steam:
id: 671430
Jenny LeClue - Detectivu:
files:
<home>/AppData/LocalLow/Mografi/Jenny LeClue:
tags:
- save
when:
- os: windows
installDir:
Jenny LeClue - Detectivu: {}
steam:
@ -133195,6 +133294,9 @@ Legoland:
Leilani's Island:
steam:
id: 664640
Leisure Suit Larry - Wet Dreams Dry Twice:
steam:
id: 1373430
'Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work':
files:
<base>/LSL5SG.*:
@ -169815,7 +169917,7 @@ Papercraft:
- save
when:
- os: mac
<winAppData>/3909/PapersPlease:
<winAppData>/LocalLow/3909/PapersPlease:
tags:
- config
- save
@ -179622,6 +179724,9 @@ Project CARS 2:
Project CARS 2: {}
steam:
id: 378860
Project CARS 3:
steam:
id: 958400
Project Cabin:
installDir:
Cabin: {}
@ -196289,6 +196394,12 @@ Ryzom:
steam:
id: 1109840
Röki:
files:
<home>/AppData/LocalLow/Polygon Treehouse/Röki:
tags:
- save
when:
- os: windows
registry:
HKEY_CURRENT_USER/SOFTWARE/Polygon Treehouse/Röki:
tags:
@ -196936,9 +197047,6 @@ SP!TE:
Special Force IW: {}
steam:
id: 1049130
SPITLINGS:
steam:
id: 1002000
SQR:
steam:
id: 576010
@ -199798,6 +199906,18 @@ Scions of Fate:
Scooby-Doo! & Looney Tunes Cartoon Universe Adventure: {}
steam:
id: 294280
'Scooby-Doo 2: Monsters Unleashed':
files:
No configuration files at all.:
tags:
- config
when:
- os: windows
'Root of the game install folder, profiles saved as"user0.too", "user1.too", "user2.too", "user3.too", "user4.too".':
tags:
- save
when:
- os: windows
Scooby-Doo! First Frights:
files:
<winDocuments>/My Games/Scooby/Save_Profile1.bin:
@ -216195,6 +216315,9 @@ Spitkiss:
- save
steam:
id: 949770
Spitlings:
steam:
id: 1002000
Splash:
installDir:
Splash: {}
@ -234029,6 +234152,11 @@ The Ballad Singer:
The Ballad Singer: {}
steam:
id: 907380
'The Ballads of Reemus: When the Bed Bites':
installDir:
Ballads of Reemus When the Bed Bites: {}
steam:
id: 327450
'The Balloonist: Beyond the Clouds':
installDir:
The Balloonist Beyond the Clouds: {}
@ -235382,6 +235510,12 @@ The Chills:
steam:
id: 1008140
The Chosen RPG:
files:
<base>/*.rvdata2:
tags:
- save
when:
- os: windows
installDir:
The Chosen RPG: {}
steam:
@ -238245,7 +238379,7 @@ The Fruit of Grisaia:
- save
when:
- os: windows
<winAppData>/Frontwing/The Fruit of Grisaia Unrated Version/*.xml:
<winAppData>/Frontwing/The Fruit of Grisaia Unrated Version/setup.xml:
tags:
- config
when:
@ -238255,7 +238389,7 @@ The Fruit of Grisaia:
- save
when:
- os: windows
<winAppData>/Frontwing/The Fruit of Grisaia/*.xml:
<winAppData>/Frontwing/The Fruit of Grisaia/setup.xml:
tags:
- config
when:
@ -272672,7 +272806,7 @@ Wills and Wonders:
Willy Jetman Astromonkey's Revenge: {}
steam:
id: 1007520
Willy Morgan:
Willy Morgan and the Curse of Bone Town:
steam:
id: 1097110
Willy-Nilly Knight:

View file

@ -256,7 +256,6 @@
* [60 Second Strike](https://www.pcgamingwiki.com/wiki/?curid=70677)
* [61 Days](https://www.pcgamingwiki.com/wiki/?curid=141780)
* [6120](https://www.pcgamingwiki.com/wiki/?curid=134836)
* [64.0](https://www.pcgamingwiki.com/wiki/?curid=58551)
* [688(I) Hunter/Killer](https://www.pcgamingwiki.com/wiki/?curid=41397)
* [69](https://www.pcgamingwiki.com/wiki/?curid=93621)
* [69 Ways to Kill a Zombie](https://www.pcgamingwiki.com/wiki/?curid=38845)
@ -1042,7 +1041,6 @@
* [Aground](https://www.pcgamingwiki.com/wiki/?curid=96943)
* [Agtnan: Monster Shutdown Sequence](https://www.pcgamingwiki.com/wiki/?curid=130664)
* [Ah, Love!](https://www.pcgamingwiki.com/wiki/?curid=114182)
* [AHEGAL](https://www.pcgamingwiki.com/wiki/?curid=113408)
* [AHEGAL SEASONS](https://www.pcgamingwiki.com/wiki/?curid=149567)
* [Ahlman Arcade 2018](https://www.pcgamingwiki.com/wiki/?curid=104447)
* [Ahros: One Warrior Chronicle](https://www.pcgamingwiki.com/wiki/?curid=40325)
@ -1053,7 +1051,6 @@
* [Ai no Uta あいのうた](https://www.pcgamingwiki.com/wiki/?curid=155432)
* [AI Rebellion](https://www.pcgamingwiki.com/wiki/?curid=61313)
* [AI Vendetta](https://www.pcgamingwiki.com/wiki/?curid=144590)
* [AI War 2](https://www.pcgamingwiki.com/wiki/?curid=93289)
* [AI: Rampage](https://www.pcgamingwiki.com/wiki/?curid=44800)
* [Aiball](https://www.pcgamingwiki.com/wiki/?curid=42605)
* [Aiden](https://www.pcgamingwiki.com/wiki/?curid=81562)
@ -2224,7 +2221,6 @@
* [Asterlode](https://www.pcgamingwiki.com/wiki/?curid=105133)
* [Asteroid Babe](https://www.pcgamingwiki.com/wiki/?curid=93267)
* [Asteroid Blaster VR](https://www.pcgamingwiki.com/wiki/?curid=50767)
* [Asteroid Bounty Hunter](https://www.pcgamingwiki.com/wiki/?curid=34141)
* [Asteroid Deathmatch](https://www.pcgamingwiki.com/wiki/?curid=122046)
* [Asteroid Defender!](https://www.pcgamingwiki.com/wiki/?curid=88089)
* [Asteroid Deflector XL](https://www.pcgamingwiki.com/wiki/?curid=89383)
@ -2559,7 +2555,6 @@
* [AXYOS: Battlecards](https://www.pcgamingwiki.com/wiki/?curid=130054)
* [Aya's Journey](https://www.pcgamingwiki.com/wiki/?curid=69448)
* [Ayahuasca](https://www.pcgamingwiki.com/wiki/?curid=155488)
* [Ayakashigami](https://www.pcgamingwiki.com/wiki/?curid=55167)
* [Ayni Fairyland](https://www.pcgamingwiki.com/wiki/?curid=108230)
* [Ayo the Clown](https://www.pcgamingwiki.com/wiki/?curid=142305)
* [Ayo: A Rain Tale](https://www.pcgamingwiki.com/wiki/?curid=74277)
@ -2851,7 +2846,6 @@
* [Barren Roads](https://www.pcgamingwiki.com/wiki/?curid=47675)
* [BARRICADEZ](https://www.pcgamingwiki.com/wiki/?curid=155751)
* [Barrimean Jungle](https://www.pcgamingwiki.com/wiki/?curid=76045)
* [Barro](https://www.pcgamingwiki.com/wiki/?curid=90894)
* [Barro 2020](https://www.pcgamingwiki.com/wiki/?curid=150289)
* [Barry Has a Secret](https://www.pcgamingwiki.com/wiki/?curid=95369)
* [Bars and Balance](https://www.pcgamingwiki.com/wiki/?curid=74475)
@ -5847,7 +5841,6 @@
* [Clinically Dead](https://www.pcgamingwiki.com/wiki/?curid=110500)
* [Clive 'N' Wrench](https://www.pcgamingwiki.com/wiki/?curid=139663)
* [Cloak and Dasher](https://www.pcgamingwiki.com/wiki/?curid=151085)
* [Clock Simulator](https://www.pcgamingwiki.com/wiki/?curid=37505)
* [Clocker](https://www.pcgamingwiki.com/wiki/?curid=122296)
* [Clockwise](https://www.pcgamingwiki.com/wiki/?curid=61652)
* [ClockwiZZZe](https://www.pcgamingwiki.com/wiki/?curid=60321)
@ -6128,7 +6121,6 @@
* [Comanche](https://www.pcgamingwiki.com/wiki/?curid=145294)
* [Combat](https://www.pcgamingwiki.com/wiki/?curid=7781)
* [Combat Air Patrol 2](https://www.pcgamingwiki.com/wiki/?curid=42672)
* [Combat Arms](https://www.pcgamingwiki.com/wiki/?curid=121151)
* [Combat Chess](https://www.pcgamingwiki.com/wiki/?curid=21620)
* [Combat Core](https://www.pcgamingwiki.com/wiki/?curid=36187)
* [Combat Force](https://www.pcgamingwiki.com/wiki/?curid=150832)
@ -8307,7 +8299,6 @@
* [DinerTown Detective Agency](https://www.pcgamingwiki.com/wiki/?curid=41128)
* [DinerTown Tycoon](https://www.pcgamingwiki.com/wiki/?curid=41231)
* [Ding Dong VR](https://www.pcgamingwiki.com/wiki/?curid=103705)
* [Ding Dong XL](https://www.pcgamingwiki.com/wiki/?curid=94763)
* [DingDingDing](https://www.pcgamingwiki.com/wiki/?curid=112620)
* [Dinkum](https://www.pcgamingwiki.com/wiki/?curid=141917)
* [Dino Dawn](https://www.pcgamingwiki.com/wiki/?curid=93651)
@ -10593,7 +10584,6 @@
* [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)
* [Fall Guys: Ultimate Knockout](https://www.pcgamingwiki.com/wiki/?curid=139641)
* [Fall In Love - My Billionaire Boss](https://www.pcgamingwiki.com/wiki/?curid=140783)
* [Fall of castles](https://www.pcgamingwiki.com/wiki/?curid=129845)
* [Fall of Civilization](https://www.pcgamingwiki.com/wiki/?curid=39013)
@ -13750,7 +13740,6 @@
* [Hell`s Little Story 2](https://www.pcgamingwiki.com/wiki/?curid=112316)
* [HellAngel](https://www.pcgamingwiki.com/wiki/?curid=37002)
* [Hellbanger](https://www.pcgamingwiki.com/wiki/?curid=130660)
* [Hellbound](https://www.pcgamingwiki.com/wiki/?curid=76625)
* [Hellbound: Survival Mode](https://www.pcgamingwiki.com/wiki/?curid=82918)
* [Hellboy: Dogs of the Night](https://www.pcgamingwiki.com/wiki/?curid=90889)
* [Hellbreaker](https://www.pcgamingwiki.com/wiki/?curid=82103)
@ -14328,7 +14317,6 @@
* [Hold Your Ground](https://www.pcgamingwiki.com/wiki/?curid=153280)
* [Hold your Houses](https://www.pcgamingwiki.com/wiki/?curid=57263)
* [Hold Your Own](https://www.pcgamingwiki.com/wiki/?curid=76271)
* [Holdfast: Nations At War](https://www.pcgamingwiki.com/wiki/?curid=59689)
* [Holiday Bonus GOLD](https://www.pcgamingwiki.com/wiki/?curid=55544)
* [Holiday Escape](https://www.pcgamingwiki.com/wiki/?curid=108478)
* [Holiday Simulator: Wacky Sleigh Ride](https://www.pcgamingwiki.com/wiki/?curid=55480)
@ -15762,7 +15750,6 @@
* [JellyNoid](https://www.pcgamingwiki.com/wiki/?curid=74151)
* [Jellyphant escape](https://www.pcgamingwiki.com/wiki/?curid=130014)
* [Jengo](https://www.pcgamingwiki.com/wiki/?curid=66846)
* [Jenny LeClue - Detectivu](https://www.pcgamingwiki.com/wiki/?curid=39558)
* [Jeopardy! (1987)](https://www.pcgamingwiki.com/wiki/?curid=90734)
* [Jeopardy! (1998)](https://www.pcgamingwiki.com/wiki/?curid=90664)
* [Jeopardy! 2003](https://www.pcgamingwiki.com/wiki/?curid=101645)
@ -17068,6 +17055,7 @@
* [Lego Universe](https://www.pcgamingwiki.com/wiki/?curid=75909)
* [Legrand Legacy: Tale of the Fatebounds](https://www.pcgamingwiki.com/wiki/?curid=53311)
* [Leilani's Island](https://www.pcgamingwiki.com/wiki/?curid=66486)
* [Leisure Suit Larry - Wet Dreams Dry Twice](https://www.pcgamingwiki.com/wiki/?curid=162416)
* [Leisure Town](https://www.pcgamingwiki.com/wiki/?curid=108372)
* [Lem-Amaze!](https://www.pcgamingwiki.com/wiki/?curid=153903)
* [Lemmings](https://www.pcgamingwiki.com/wiki/?curid=57590)
@ -25729,7 +25717,6 @@
* [Scikor - Final Scale](https://www.pcgamingwiki.com/wiki/?curid=144616)
* [Scions of Fate](https://www.pcgamingwiki.com/wiki/?curid=78431)
* [Scooby Doo! & Looney Tunes Cartoon Universe: Adventure](https://www.pcgamingwiki.com/wiki/?curid=49919)
* [Scooby-Doo 2: Monsters Unleashed](https://www.pcgamingwiki.com/wiki/?curid=90732)
* [Scooby-Doo! and the Spooky Swamp](https://www.pcgamingwiki.com/wiki/?curid=90727)
* [Scooby-Doo! Case File 1: The Glowing Bug Man](https://www.pcgamingwiki.com/wiki/?curid=92499)
* [Scooby-Doo! Case File 2: The Scary Stone Dragon](https://www.pcgamingwiki.com/wiki/?curid=92483)
@ -27831,7 +27818,7 @@
* [Spirits of Mystery: The Silver Arrow](https://www.pcgamingwiki.com/wiki/?curid=90104)
* [Spirits: Ciel Bleu](https://www.pcgamingwiki.com/wiki/?curid=65010)
* [SpiritSphere](https://www.pcgamingwiki.com/wiki/?curid=42029)
* [SPITLINGS](https://www.pcgamingwiki.com/wiki/?curid=128611)
* [Spitlings](https://www.pcgamingwiki.com/wiki/?curid=128611)
* [Splash](https://www.pcgamingwiki.com/wiki/?curid=93896)
* [Splash Adventure: The Maze of Morla](https://www.pcgamingwiki.com/wiki/?curid=81127)
* [Splash Bash](https://www.pcgamingwiki.com/wiki/?curid=42069)
@ -30109,7 +30096,6 @@
* [The Chemist](https://www.pcgamingwiki.com/wiki/?curid=89234)
* [The Childs Sight](https://www.pcgamingwiki.com/wiki/?curid=129944)
* [The Chills](https://www.pcgamingwiki.com/wiki/?curid=127977)
* [The Chosen RPG](https://www.pcgamingwiki.com/wiki/?curid=44685)
* [The Chosen Warriors](https://www.pcgamingwiki.com/wiki/?curid=79046)
* [The Christmas Gifts](https://www.pcgamingwiki.com/wiki/?curid=105311)
* [The Christmas Spirit: Grimm Tales](https://www.pcgamingwiki.com/wiki/?curid=156171)
@ -34780,7 +34766,7 @@
* [Willowisp VR](https://www.pcgamingwiki.com/wiki/?curid=74682)
* [Wills and Wonders](https://www.pcgamingwiki.com/wiki/?curid=41555)
* [Willy Jetman: Astromonkey's Revenge](https://www.pcgamingwiki.com/wiki/?curid=156580)
* [Willy Morgan](https://www.pcgamingwiki.com/wiki/?curid=145417)
* [Willy Morgan and the Curse of Bone Town](https://www.pcgamingwiki.com/wiki/?curid=145417)
* [Willy-Nilly Knight](https://www.pcgamingwiki.com/wiki/?curid=59671)
* [Wiloo](https://www.pcgamingwiki.com/wiki/?curid=65766)
* [Wimp: Who Stole My Pants?](https://www.pcgamingwiki.com/wiki/?curid=47607)

View file

@ -15588,6 +15588,7 @@
installDir: Rainbow Six 2 Rogue Spear
'13700':
installDir: Savage 2 A Tortured Soul
'1373430': {}
'1500':
installDir: Darwinia
'15000':
@ -73513,6 +73514,7 @@
installDir: AFTF_Normandy
'958360':
installDir: Silver Child
'958400': {}
'958480':
installDir: Seed of the Dead
'958490':

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
lastCheckedRecentChanges: '2020-08-02T21:03:07.635Z'
lastCheckedRecentChanges: '2020-08-04T20:27:13.914Z'

View file

@ -132,10 +132,15 @@ export class ManifestFile extends YamlFile<Manifest> {
}
}
const game = await getGame(title, wikiCache);
delete wikiCache[title].recentlyChanged;
if (game.files === undefined && game.registry === undefined && game.steam?.id === undefined) {
const [verifiedTitle, game] = await getGame(title, wikiCache);
delete wikiCache[verifiedTitle].recentlyChanged;
if (verifiedTitle !== title) {
delete this.data[title];
}
if (game.files === undefined && game.registry === undefined && game.steam?.id === undefined) {
delete this.data[verifiedTitle];
continue;
}
if (game.steam?.id !== undefined) {
@ -147,7 +152,7 @@ export class ManifestFile extends YamlFile<Manifest> {
game.installDir[installDir] = {}
}
}
this.data[title] = game;
this.data[verifiedTitle] = game;
await new Promise(resolve => setTimeout(resolve, DELAY_BETWEEN_GAMES_MS));
}

View file

@ -479,10 +479,39 @@ export async function getRecentChanges(newest: Date, oldest: Date): Promise<Rece
/**
* https://www.pcgamingwiki.com/wiki/Template:Game_data
*/
export async function getGame(pageTitle: string, cache: WikiGameCache): Promise<Game> {
export async function getGame(pageTitle: string, cache: WikiGameCache): Promise<[string, Game]> {
console.log(pageTitle);
const wiki = makeApiClient();
const page = await wiki.page(pageTitle, { rvprop: "ids|content" });
let page = await wiki.page(pageTitle, { rvprop: "ids|content" });
if (page.missing !== undefined) {
// Couldn't find it by name, so try again by ID.
// This can happen for pages moved without leaving a redirect.
// (If they have a redirect, then the recent changes code takes care of it.)
const pageId = cache[pageTitle].pageId;
const client = makeApiClient2();
const params = {
action: "query",
pageids: [pageId],
};
try {
const [data, _] = await callMw<{ pages: { [id: string]: { title: string } } }>(
client.api, "call", params
);
const newTitle = data.pages[pageId.toString()].title;
console.log(`:: getGame: page ${pageId} called '${pageTitle}' renamed to '${newTitle}'`);
cache[newTitle] = cache[pageTitle];
delete cache[pageTitle];
if (cache[newTitle].renamedFrom === undefined) {
cache[newTitle].renamedFrom = [pageTitle];
} else {
cache[newTitle].renamedFrom.push(pageTitle);
}
page = await wiki.page(newTitle, { rvprop: "ids|content" });
pageTitle = newTitle;
} catch {
console.log(`:: page ${pageId} called '${pageTitle}' no longer exists`);
}
}
const game: Game = {
files: {},
@ -637,5 +666,5 @@ export async function getGame(pageTitle: string, cache: WikiGameCache): Promise<
}
cache[pageTitle].revId = page.revisions?.[0]?.revid ?? 0;
return game;
return [pageTitle, game];
}