From ed1b940486a09e2088207922ea4ce129658028a7 Mon Sep 17 00:00:00 2001 From: Cong Date: Sun, 15 Sep 2024 14:44:43 +1000 Subject: [PATCH] Add some blacklists/aliases and misc fixes for OSGL scraper #2706 --- games/d.yaml | 2 +- originals/0scumm.yaml | 9 -------- originals/d.yaml | 11 ++++++++++ originals/s.yaml | 2 ++ scripts/scrape_osgl_inspirations.py | 32 ++++++++++++++++++++++++++++- 5 files changed, 45 insertions(+), 11 deletions(-) diff --git a/games/d.yaml b/games/d.yaml index 38f9c284e..e09b20030 100644 --- a/games/d.yaml +++ b/games/d.yaml @@ -293,7 +293,7 @@ frameworks: - SDL originals: - - 3D Deathchase + - Deathchase status: playable repo: https://github.com/BachToTheFuture/DeathChase3D development: halted diff --git a/originals/0scumm.yaml b/originals/0scumm.yaml index 83f7ac959..d4b9e8b42 100644 --- a/originals/0scumm.yaml +++ b/originals/0scumm.yaml @@ -65,15 +65,6 @@ platforms: - DOS -- name: 3D Deathchase - external: - wikipedia: 3D Deathchase - meta: - genres: - - Racing - subgenres: - - Vehicular Combat - - name: The 7th Guest external: website: https://www.mobygames.com/game/283 diff --git a/originals/d.yaml b/originals/d.yaml index 422e45368..2c9dbec80 100644 --- a/originals/d.yaml +++ b/originals/d.yaml @@ -137,6 +137,17 @@ platforms: - Windows +- name: Deathchase + names: + - 3D Deathchase + external: + wikipedia: Deathchase + meta: + genres: + - Racing + subgenres: + - Vehicular Combat + - name: Death Rally external: wikipedia: Death Rally diff --git a/originals/s.yaml b/originals/s.yaml index cfde56aea..1cda809a2 100644 --- a/originals/s.yaml +++ b/originals/s.yaml @@ -444,6 +444,8 @@ - Turn-Based Strategy - name: Sid Meier's Colonization + names: + - Colonization external: wikipedia: Sid Meier's Colonization meta: diff --git a/scripts/scrape_osgl_inspirations.py b/scripts/scrape_osgl_inspirations.py index 83fb8fb61..a45c2edec 100644 --- a/scripts/scrape_osgl_inspirations.py +++ b/scripts/scrape_osgl_inspirations.py @@ -7,6 +7,33 @@ INSPIRATION_PATTERN = re.compile(r"(.+) \[\d+\]") INSPIRED_PATTERN = re.compile(r"Inspired entries: (.+)") +# OSGL name to OSGC alias +ALIASES = { + "Alone in the Dark series": "Alone in the Dark", + "Anno (series)": "Anno series", + "BioWare's Aurora engine": "Neverwinter Nights", + "Blake Stone: Aliens of Gold": "Blake Stone: Planet Strike", + "Blasteroids": "Asteroids", + "Caesar 3": "Caesar III", + "Civilization series": "Civilization", + "Company of Heroes: Opposing Fronts": "Company of Heroes", + "Company of Heroes: Tales of Valor": "Company of Heroes", +} +# Games that aren't interesting enough or weren't closed source +BLACKLIST = { + "arithmetic", + "Black Shades", + "Blob Wars Attrition", + "Blobby Volley", + "Chromium B.S.U.", + "CorsixTH", + "Crossfire", + "Cube", + "Cube 2: Sauerbraten", + "CUBE engine", + "Daimonin", + "TuxMath", +} def main(): @@ -33,7 +60,10 @@ def main(): for name in original.get("names", []): osgc_originals.add(name) for game in osgl_games: - if game not in osgc_originals: + if game in BLACKLIST: + continue + alias = ALIASES.get(game) + if game not in osgc_originals and (not alias or alias not in osgc_originals): print(f"Missing original: {game}") osgc_games = set(game["name"] for game in games()) for game, inspireds in osgl_games.items():