From 8a56e9b333ca45751670c78add9dd5ad581bce10 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Wed, 18 Feb 2026 10:19:12 -0500 Subject: [PATCH] [ROMM-3026] Region/language shortcodes should be case sensitive --- backend/handler/filesystem/base_handler.py | 4 ++-- backend/handler/filesystem/roms_handler.py | 28 +++++++++++----------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/backend/handler/filesystem/base_handler.py b/backend/handler/filesystem/base_handler.py index 9be74d0a7..a0c2650b5 100644 --- a/backend/handler/filesystem/base_handler.py +++ b/backend/handler/filesystem/base_handler.py @@ -83,10 +83,10 @@ REGIONS = ( ("W", "World"), ) -REGIONS_BY_SHORTCODE = {region[0].lower(): region[1] for region in REGIONS} +REGIONS_BY_SHORTCODE = {region[0]: region[1] for region in REGIONS} REGIONS_NAME_KEYS = frozenset(region[1].lower() for region in REGIONS) -LANGUAGES_BY_SHORTCODE = {lang[0].lower(): lang[1] for lang in LANGUAGES} +LANGUAGES_BY_SHORTCODE = {lang[0]: lang[1] for lang in LANGUAGES} LANGUAGES_NAME_KEYS = frozenset(lang[1].lower() for lang in LANGUAGES) diff --git a/backend/handler/filesystem/roms_handler.py b/backend/handler/filesystem/roms_handler.py index 5c6401f59..dceb9eb9b 100644 --- a/backend/handler/filesystem/roms_handler.py +++ b/backend/handler/filesystem/roms_handler.py @@ -334,46 +334,46 @@ class FSRomsHandler(FSHandler): regions, languages, other_tags = [], [], [] version = revision = "" - for raw in tags: - tag = raw.lower() + for raw_tag in tags: + lower_tag = raw_tag.lower() # Region by code - if tag in REGIONS_BY_SHORTCODE.keys(): - regions.append(REGIONS_BY_SHORTCODE[tag]) + if raw_tag in REGIONS_BY_SHORTCODE.keys(): + regions.append(REGIONS_BY_SHORTCODE[raw_tag]) continue - if tag in REGIONS_NAME_KEYS: - regions.append(raw) + if lower_tag in REGIONS_NAME_KEYS: + regions.append(raw_tag) continue # Language by code - if tag in LANGUAGES_BY_SHORTCODE.keys(): - languages.append(LANGUAGES_BY_SHORTCODE[tag]) + if raw_tag in LANGUAGES_BY_SHORTCODE.keys(): + languages.append(LANGUAGES_BY_SHORTCODE[raw_tag]) continue - if tag in LANGUAGES_NAME_KEYS: - languages.append(raw) + if lower_tag in LANGUAGES_NAME_KEYS: + languages.append(raw_tag) continue # Version - version_match = VERSION_TAG_REGEX.match(raw) + version_match = VERSION_TAG_REGEX.match(raw_tag) if version_match: version = version_match[1] continue # Region prefix - region_match = REGION_TAG_REGEX.match(raw) + region_match = REGION_TAG_REGEX.match(raw_tag) if region_match: key = region_match[1].lower() regions.append(REGIONS_BY_SHORTCODE.get(key, region_match[1])) continue # Revision prefix - revision_match = REVISION_TAG_REGEX.match(raw) + revision_match = REVISION_TAG_REGEX.match(raw_tag) if revision_match: revision = revision_match[1] continue # Anything else - other_tags.append(raw) + other_tags.append(raw_tag) return ParsedTags( version=version,