fix(release/parser): collapse chained multi-episode markers to full range
S14E09E10E11 previously parsed to episode=9, episode_end=10 — E11 was silently dropped. The parser now takes episodes[-1] as episode_end so the full chain is captured (episode=9, episode_end=11). Intermediate values stay implied. Fixture shitty/archer_multi_episode/ updated from anti-regression of the bug to anti-regression of the fix.
This commit is contained in:
@@ -15,6 +15,15 @@ callers).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Multi-episode chain (e.g. `S14E09E10E11`) now collapses to a full
|
||||
range.** The parser previously captured `episode=9, episode_end=10`
|
||||
and dropped E11+. It now returns `episode=first, episode_end=last`,
|
||||
with intermediate values implied. Fixture
|
||||
`shitty/archer_multi_episode/` updated from anti-regression-of-bug
|
||||
to anti-regression-of-fix.
|
||||
|
||||
### Added
|
||||
|
||||
- **`LanguageRepository` port** in `alfred.domain.shared.ports`. Structural
|
||||
|
||||
@@ -113,7 +113,9 @@ def _parse_season_episode(text: str) -> tuple[int, int | None, int | None] | Non
|
||||
|
||||
if not episodes:
|
||||
return None
|
||||
return season, episodes[0], episodes[1] if len(episodes) >= 2 else None
|
||||
# For chained multi-episode markers (E09E10E11), the range is the
|
||||
# first → last episode. Intermediate values are implied.
|
||||
return season, episodes[0], episodes[-1] if len(episodes) >= 2 else None
|
||||
|
||||
# NxNN form
|
||||
if "X" in upper:
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
release_name: "Archer.S14E09E10E11.1080p.WEB.h264-ETHEL"
|
||||
|
||||
# Tech debt: triple-episode chain (E09E10E11) — current parser captures
|
||||
# episode=9 and episode_end=10, but E11 is lost. Anti-regression: lock in
|
||||
# the partial behavior so any future improvement is intentional.
|
||||
# Triple-episode chain (E09E10E11) — the parser collapses the chain to a
|
||||
# range (episode=first, episode_end=last). Intermediate values are implied.
|
||||
parsed:
|
||||
title: "Archer"
|
||||
year: null
|
||||
season: 14
|
||||
episode: 9
|
||||
episode_end: 10
|
||||
episode_end: 11
|
||||
quality: "1080p"
|
||||
source: "WEB"
|
||||
codec: "h264"
|
||||
|
||||
Reference in New Issue
Block a user