From e349ce6104484d6f9db9ca54d8c730f1bb5900b0 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Sun, 21 Sep 2025 20:51:30 -0400 Subject: [PATCH] changes from bot review --- backend/config/config_manager.py | 8 +++--- backend/handler/database/roms_handler.py | 2 +- backend/handler/metadata/ss_handler.py | 28 ++++--------------- backend/handler/scan_handler.py | 5 +++- examples/config.example.yml | 4 +-- .../src/components/Details/Info/GameInfo.vue | 15 ++++++++-- 6 files changed, 29 insertions(+), 33 deletions(-) diff --git a/backend/config/config_manager.py b/backend/config/config_manager.py index edf5be622..5139f4397 100644 --- a/backend/config/config_manager.py +++ b/backend/config/config_manager.py @@ -398,19 +398,19 @@ class ConfigManager: sys.exit(3) if not isinstance(self.config.SCAN_METADATA_PRIORITY, list): - log.critical("Invalid config.yml: scan.metadata.priority must be a list") + log.critical("Invalid config.yml: scan.priority.metadata must be a list") sys.exit(3) if not isinstance(self.config.SCAN_ARTWORK_PRIORITY, list): - log.critical("Invalid config.yml: scan.artwork.priority must be a list") + log.critical("Invalid config.yml: scan.priority.artwork must be a list") sys.exit(3) if not isinstance(self.config.SCAN_REGION_PRIORITY, list): - log.critical("Invalid config.yml: scan.region.priority must be a list") + log.critical("Invalid config.yml: scan.priority.region must be a list") sys.exit(3) if not isinstance(self.config.SCAN_LANGUAGE_PRIORITY, list): - log.critical("Invalid config.yml: scan.language.priority must be a list") + log.critical("Invalid config.yml: scan.priority.language must be a list") sys.exit(3) def get_config(self) -> Config: diff --git a/backend/handler/database/roms_handler.py b/backend/handler/database/roms_handler.py index 3861f6c90..2485a05e9 100644 --- a/backend/handler/database/roms_handler.py +++ b/backend/handler/database/roms_handler.py @@ -510,8 +510,8 @@ class DBRomsHandler(DBBaseHandler): ), _create_metadata_id_case( "romm", - base_subquery.c.platform_id, base_subquery.c.id, + base_subquery.c.platform_id, ), ), order_by=[ diff --git a/backend/handler/metadata/ss_handler.py b/backend/handler/metadata/ss_handler.py index 4a13f2763..0594a06e6 100644 --- a/backend/handler/metadata/ss_handler.py +++ b/backend/handler/metadata/ss_handler.py @@ -28,33 +28,17 @@ SS_DEV_PASSWORD: Final = base64.b64decode("eFRKd29PRmpPUUc=").decode() def get_preferred_regions() -> list[str]: - """Get preferred regions from config, merged with defaults""" + """Get preferred regions from config""" config = cm.get_config() - default_regions = ["us", "wor", "ss", "eu", "jp"] - ordered_regions = [ - region for region in config.SCAN_REGION_PRIORITY if region in default_regions - ] - remaining_regions = [ - region - for region in default_regions - if region not in config.SCAN_REGION_PRIORITY - ] - - return ordered_regions + remaining_regions + return list( + dict.fromkeys(config.SCAN_REGION_PRIORITY + ["us", "wor", "ss", "eu", "jp"]) + ) def get_preferred_languages() -> list[str]: - """Get preferred languages from config, merged with defaults""" + """Get preferred languages from config""" config = cm.get_config() - default_languages = ["en", "fr"] - ordered_languages = [ - lang for lang in config.SCAN_LANGUAGE_PRIORITY if lang in default_languages - ] - remaining_languages = [ - lang for lang in default_languages if lang not in config.SCAN_LANGUAGE_PRIORITY - ] - - return ordered_languages + remaining_languages + return list(dict.fromkeys(config.SCAN_LANGUAGE_PRIORITY + ["en", "fr"])) PS1_SS_ID: Final = 57 diff --git a/backend/handler/scan_handler.py b/backend/handler/scan_handler.py index a00389ac2..a6abfd161 100644 --- a/backend/handler/scan_handler.py +++ b/backend/handler/scan_handler.py @@ -57,7 +57,7 @@ class MetadataSource(enum.StrEnum): IGDB = "igdb" # IGDB MOBY = "moby" # MobyGames SS = "ss" # Screenscraper - RA = "ra" # RetroAchivements + RA = "ra" # RetroAchievements LB = "lb" # Launchbox HASHEOUS = "hasheous" # Hasheous TGDB = "tgdb" # TheGamesDB @@ -633,6 +633,7 @@ async def scan_rom( priority_ordered = get_priority_ordered_metadata_sources( available_sources, "metadata" ) + # Reverse priority order to apply highest priority last for source_name in reversed(priority_ordered): rom_attrs.update({**metadata_handlers[source_name]}) @@ -640,6 +641,8 @@ async def scan_rom( priority_ordered_artwork = get_priority_ordered_metadata_sources( available_sources, "artwork" ) + + # Reverse priority order to apply highest priority last for source_name in reversed(priority_ordered_artwork): handler_data = metadata_handlers[source_name] if handler_data.get("url_cover"): diff --git a/examples/config.example.yml b/examples/config.example.yml index 65f5325d8..71a690f45 100644 --- a/examples/config.example.yml +++ b/examples/config.example.yml @@ -55,7 +55,7 @@ filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is # - "igdb" # IGDB # - "moby" # MobyGames # - "ss" # Screenscraper -# - "ra" # RetroAchivements +# - "ra" # RetroAchievements # - "lb" # Launchbox # - "hasheous" # Hasheous # - "flashpoint" # Flashpoint Project @@ -64,7 +64,7 @@ filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is # - "igdb" # IGDB # - "moby" # MobyGames # - "ss" # Screenscraper -# - "ra" # RetroAchivements +# - "ra" # RetroAchievements # - "lb" # Launchbox # - "hasheous" # Hasheous # - "flashpoint" # Flashpoint Project diff --git a/frontend/src/components/Details/Info/GameInfo.vue b/frontend/src/components/Details/Info/GameInfo.vue index 5811e04b6..f8638aa22 100644 --- a/frontend/src/components/Details/Info/GameInfo.vue +++ b/frontend/src/components/Details/Info/GameInfo.vue @@ -91,10 +91,19 @@ const coverImageSource = computed(() => { if (hostname === "images.igdb.com") return "IGDB"; if (hostname === "screenscraper.fr") return "ScreenScraper"; - if (hostname === "cdn.mobygames.com") return "MobyGames"; - if (hostname === "retroachievements.org") return "RetroAchievements"; + if (hostname === "cdn.mobygames.com" || hostname === "cdn2.mobygames.com") + return "MobyGames"; + if ( + hostname === "retroachievements.org" || + hostname === "media.retroachievements.org" + ) + return "RetroAchievements"; if (hostname === "images.launchbox-app.com") return "LaunchBox"; - if (hostname === "cdn2.steamgriddb.com") return "SteamGridDB"; + if ( + hostname === "cdn.steamgriddb.com" || + hostname === "cdn2.steamgriddb.com" + ) + return "SteamGridDB"; if (hostname === "hasheous.org") return "Hasheous"; if (hostname === "infinity.unstable.life") return "Flashpoint"; if (hostname === "howlongtobeat.com") return "HowLongToBeat";