From c3767aacb6398972d24e4b850c409aacb78b8305 Mon Sep 17 00:00:00 2001 From: Francwa Date: Wed, 20 May 2026 23:50:05 +0200 Subject: [PATCH] =?UTF-8?q?refactor(release):=20rename=20ParsedRelease.nor?= =?UTF-8?q?malised=20=E2=86=92=20clean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le champ s'appelait normalised mais ne faisait pas la normalisation suggérée par son nom (dots instead of spaces). En pratique il contient raw - site_tag - apostrophes, qui sert uniquement à season_folder_name() via _strip_episode_from_normalized. Renommé en 'clean' qui décrit ce qu'il contient réellement, docstring corrigée. --- alfred/domain/release/services.py | 4 ++-- alfred/domain/release/value_objects.py | 4 ++-- tests/application/test_enrich_from_probe.py | 2 +- tests/domain/release/test_parser_v2_scoring.py | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/alfred/domain/release/services.py b/alfred/domain/release/services.py index a13b989..5e7e5cd 100644 --- a/alfred/domain/release/services.py +++ b/alfred/domain/release/services.py @@ -62,7 +62,7 @@ def parse_release( if not _is_well_formed(clean, kb): parsed = ParsedRelease( raw=name, - normalised=clean, + clean=clean, title=clean, title_sanitized=kb.sanitize_for_fs(clean), year=None, @@ -92,7 +92,7 @@ def parse_release( parsed = ParsedRelease( raw=name, - normalised=clean, + clean=clean, parse_path=parse_path, **fields, ) diff --git a/alfred/domain/release/value_objects.py b/alfred/domain/release/value_objects.py index fde9879..c769ce7 100644 --- a/alfred/domain/release/value_objects.py +++ b/alfred/domain/release/value_objects.py @@ -116,7 +116,7 @@ class ParsedRelease: """ raw: str # original release name (untouched) - normalised: str # dots instead of spaces + clean: str # raw minus site_tag and apostrophes — used by season_folder_name() title: str # show/movie title (dots, no year/season/tech) title_sanitized: str # title with filesystem-forbidden chars stripped year: int | None # movie year or show start year (from TMDB) @@ -212,7 +212,7 @@ class ParsedRelease: For a single-episode release we still strip the episode token so the folder can hold the whole season. """ - return _strip_episode_from_normalized(self.normalised) + return _strip_episode_from_normalized(self.clean) def episode_filename(self, tmdb_episode_title_safe: str | None, ext: str) -> str: """ diff --git a/tests/application/test_enrich_from_probe.py b/tests/application/test_enrich_from_probe.py index cf77ff9..078364e 100644 --- a/tests/application/test_enrich_from_probe.py +++ b/tests/application/test_enrich_from_probe.py @@ -35,7 +35,7 @@ def _bare(**overrides) -> ParsedRelease: """Build a minimal ParsedRelease with all enrichable fields = None.""" defaults = dict( raw="X", - normalised="X", + clean="X", title="X", title_sanitized="X", year=None, diff --git a/tests/domain/release/test_parser_v2_scoring.py b/tests/domain/release/test_parser_v2_scoring.py index 63cbae8..504e583 100644 --- a/tests/domain/release/test_parser_v2_scoring.py +++ b/tests/domain/release/test_parser_v2_scoring.py @@ -67,7 +67,7 @@ def _movie(year: int = 2020, **overrides) -> ParsedRelease: """Build a populated movie ParsedRelease for scoring tests.""" base = dict( raw="Inception.2010.1080p.BluRay.x264-GROUP", - normalised="Inception.2010.1080p.BluRay.x264-GROUP", + clean="Inception.2010.1080p.BluRay.x264-GROUP", title="Inception", title_sanitized="Inception", year=year, @@ -109,7 +109,7 @@ class TestComputeScore: def test_tv_show_gets_season_and_episode_weight(self) -> None: parsed = ParsedRelease( raw="Oz.S01E01.1080p.WEBRip.x265-KONTRAST", - normalised="Oz.S01E01.1080p.WEBRip.x265-KONTRAST", + clean="Oz.S01E01.1080p.WEBRip.x265-KONTRAST", title="Oz", title_sanitized="Oz", year=None, @@ -220,7 +220,7 @@ class TestCollectors: def test_collect_missing_critical_full(self) -> None: empty = ParsedRelease( raw="x", - normalised="x", + clean="x", title="", title_sanitized="", year=None,