Skip to content

Commit b85ecc5

Browse files
authored
Merge pull request #3751 from TowyTowy/fix/version-tag-dot-separator
fix(scan): strip leading dot from dot-separated version tags
2 parents 759ebb0 + aba4d0c commit b85ecc5

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

backend/handler/filesystem/roms_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def _make_file_hash(
141141

142142

143143
GENERIC_TAG_REGEX = re.compile(r"\(([^)]+)\)|\[([^]]+)\]")
144-
VERSION_TAG_REGEX = re.compile(r"^(?:version|ver|v)(?:[\s_-](.*)|([.\d].*))", re.I)
144+
VERSION_TAG_REGEX = re.compile(r"^(?:version|ver|v)(?:[\s._-](.*)|([.\d].*))", re.I)
145145
REGION_TAG_REGEX = re.compile(r"^reg[\s|-](.*)$", re.I)
146146
REVISION_TAG_REGEX = re.compile(r"^rev[\s|-](.*)$", re.I)
147147

backend/tests/handler/filesystem/test_roms_handler.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,24 @@ def test_parse_tags_version(self, handler: FSRomsHandler):
241241
parsed_tags = handler.parse_tags(fs_name)
242242
assert parsed_tags.version == "1.2.3"
243243

244+
# A dot separator (e.g. "v.1.0", "Ver. 1.00") must not leak into the
245+
# version as a leading dot.
246+
fs_name = "My Game (v.1.2.3).rom"
247+
parsed_tags = handler.parse_tags(fs_name)
248+
assert parsed_tags.version == "1.2.3"
249+
250+
fs_name = "My Game (Ver.1.2.3).rom"
251+
parsed_tags = handler.parse_tags(fs_name)
252+
assert parsed_tags.version == "1.2.3"
253+
254+
fs_name = "My Game (Ver. 1.00).rom"
255+
parsed_tags = handler.parse_tags(fs_name)
256+
assert parsed_tags.version == "1.00"
257+
258+
fs_name = "My Game (Version.2).rom"
259+
parsed_tags = handler.parse_tags(fs_name)
260+
assert parsed_tags.version == "2"
261+
244262
def test_parse_tags_non_version_tags_starting_with_v(self, handler: FSRomsHandler):
245263
"""Test parse_tags keeps non-version tags starting with v as generic tags"""
246264
fs_name = "Rom [2026] [Variation].rom"

0 commit comments

Comments
 (0)