Season-pack names parse wrong in two ways #135

Closed
opened 2026-08-23 17:11:54 +01:00 by naps62-yolo · 0 comments
Owner

arr-core::matching::match_episode (#123) identifies a series by exact
normalised title when the tracker supplies no id. Two arr-parse gaps make
common season-pack names fail that comparison, so the pack matches nothing and
the failure is silent — there is no rejected-with-a-reason row, the release
simply never reaches the wanted episode.

Complete before the season token stays in the title. markers.rs:139
classifies complete as Junk with Weak strength, and only strong markers
close the title boundary. Bluey.COMPLETE.S01.1080p.WEB-DL therefore parses
with title: "Bluey Complete". The trailing form, Bluey.S01.COMPLETE.1080p,
is fine because the season token closes the boundary first — so this depends
on where the word lands, which is exactly the kind of difference a release
group varies freely.

The degenerate season range S01-S01 yields no season claim. The dash-range
branch only produces a Seasons claim when first and last differ, so
Fallout.S01-S01.1080p.BluRay parses with episode: None. match_episode
lifted is_this_seasons_pack's rule that a degenerate range is one season's
pack, and carries a predicate-level test for it, but the parse never gets far
enough to exercise it.

Both are arr-parse, both are pure, and both want table-driven cases over real
release names. #124 depends on this: RSS pack matching is only as good as the
parse under it.

`arr-core::matching::match_episode` (#123) identifies a series by exact normalised title when the tracker supplies no id. Two `arr-parse` gaps make common season-pack names fail that comparison, so the pack matches nothing and the failure is silent — there is no rejected-with-a-reason row, the release simply never reaches the wanted episode. **`Complete` before the season token stays in the title.** `markers.rs:139` classifies `complete` as `Junk` with `Weak` strength, and only strong markers close the title boundary. `Bluey.COMPLETE.S01.1080p.WEB-DL` therefore parses with `title: "Bluey Complete"`. The trailing form, `Bluey.S01.COMPLETE.1080p`, is fine because the season token closes the boundary first — so this depends on where the word lands, which is exactly the kind of difference a release group varies freely. **The degenerate season range `S01-S01` yields no season claim.** The dash-range branch only produces a `Seasons` claim when first and last differ, so `Fallout.S01-S01.1080p.BluRay` parses with `episode: None`. `match_episode` lifted `is_this_seasons_pack`'s rule that a degenerate range is one season's pack, and carries a predicate-level test for it, but the parse never gets far enough to exercise it. Both are `arr-parse`, both are pure, and both want table-driven cases over real release names. #124 depends on this: RSS pack matching is only as good as the parse under it.
naps62-yolo added this to the TV tracking milestone 2026-08-23 17:11:54 +01:00
naps62-yolo added the difficulty/easyphase/6-tvarea/parsetype/bug labels 2026-08-23 17:11:54 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yolo/arr#135