Complete catalog standardization: generations, banners, and Fakemon roster tag.

Adds standardize-vault-pages pipeline, exports intentional empty generations, and refreshes the 396-hack catalog with full banner coverage, status classification, and Fakemon generation tags.
This commit is contained in:
ginnoir
2026-06-26 14:21:00 -05:00
parent 809600a04d
commit 44183fb0fb
6 changed files with 8545 additions and 2642 deletions
+10 -2
View File
@@ -53,6 +53,9 @@ PLATFORM_HINTS = [
(r"\bGBC\b|game boy color", ("GBC", "console")),
(r"\bNDS\b|nintendo ds\b|\bDS ROM", ("NDS", "console")),
(r"\b3DS\b", ("3DS", "console")),
(r"\bN64\b|Nintendo 64|Pokemon Stadium|Pokémon Stadium", ("N64", "console")),
(r"\bGameCube\b|Nintendo GameCube|Pokemon Colosseum|Pokémon Colosseum", ("GameCube", "console")),
(r"\bSwitch\b|Nintendo Switch", ("Switch", "console")),
(r"\bGB\b|game boy(?! advance| color)", ("GB", "console")),
(r"RPGXP|RPG ?Maker|Essentials|FanGame|fan game|GameMaker", ("PC", "fangame")),
]
@@ -256,6 +259,8 @@ GAME_PLATFORM = {
"soul silver": ("NDS", "SoulSilver"), "black": ("NDS", "Black"),
"white": ("NDS", "White"), "black 2": ("NDS", "Black 2"),
"white 2": ("NDS", "White 2"),
"stadium": ("N64", "Stadium"), "pokemon stadium": ("N64", "Stadium"),
"pokémon stadium": ("N64", "Stadium"),
}
@@ -389,7 +394,7 @@ def load_scrape():
# ---------------------------------------------------------------- frontmatter (de)serialize
FM_ORDER = ["title", "platform", "base", "version", "status", "type",
"generation", "developer", "release_date", "banner",
"generation", "generations", "fakemon", "developer", "release_date", "banner",
"library_path", "source", "homepage", "scrape_dir",
"added", "play_status", "rating", "tags"]
LIST_KEYS = {"type", "tags"}
@@ -462,7 +467,10 @@ def canon_status(s):
PLATFORM_LABEL = {"GB": "Game Boy", "GBC": "Game Boy Color",
"GBA": "Game Boy Advance", "NDS": "Nintendo DS",
"3DS": "Nintendo 3DS", "PC": "PC / Joiplay", "": "Unknown"}
"3DS": "Nintendo 3DS", "N64": "Nintendo 64",
"GameCube": "Nintendo GameCube",
"Switch": "Nintendo Switch",
"PC": "PC / Joiplay", "": "Unknown"}
def derive_tags(fm):