docs(changelog): log SHITTY simplification + distributor split
This commit is contained in:
@@ -56,6 +56,15 @@ callers).
|
||||
primary token. KONTRAST releases with audio / HDR / edition / language
|
||||
metadata now produce a fully populated `ParsedRelease`.
|
||||
|
||||
- **Streaming distributor as a separate dimension** from encoding source.
|
||||
New `alfred/knowledge/release/distributors.yaml` (NF, AMZN, DSNP, HMAX,
|
||||
ATVP, HULU, PCOK, PMTP, CR) feeds a new `ReleaseKnowledge.distributors`
|
||||
port field, a `TokenRole.DISTRIBUTOR` annotation, and a
|
||||
`ParsedRelease.distributor` field. `WEB-DL` stays the source; the
|
||||
platform that produced the release is now recorded distinctly. The
|
||||
five entries (NF, AMZN, DSNP, HMAX, ATVP) were correspondingly removed
|
||||
from `sources.yaml`.
|
||||
|
||||
- **Real-world release fixtures** under `tests/fixtures/releases/{easy,shitty,path_of_pain}/`,
|
||||
each documenting an expected `ParsedRelease` plus the future `routing`
|
||||
(library / torrents / seed_hardlinks) for the upcoming `organize_media`
|
||||
@@ -93,6 +102,22 @@ callers).
|
||||
|
||||
### Changed
|
||||
|
||||
- **Release parser v2 — SHITTY simplified to dict-driven tagging**.
|
||||
The legacy ~480-line heuristic block in `release/services.py` is gone;
|
||||
`pipeline._annotate_shitty` does a single pass that looks each token
|
||||
up in the kb buckets (resolutions / sources / codecs / distributors /
|
||||
year / `SxxExx`) with first-match-wins semantics, and the leftmost
|
||||
contiguous UNKNOWN run becomes the title. `annotate()` no longer
|
||||
returns `None` — SHITTY is the always-on fallback when no group schema
|
||||
matches. `services.py` shrunk from ~525 to ~85 lines. Four fixtures
|
||||
(`deutschland_franchise_box`, `sleaford_yt_slug`,
|
||||
`super_mario_bilingual`, `predator_space_separators` — the last one
|
||||
moved from `shitty/` → `path_of_pain/`) are now marked
|
||||
`pytest.mark.xfail(strict=False)` documenting PoP-grade pathologies
|
||||
that SHITTY intentionally won't handle. `ReleaseFixture` grows an
|
||||
`xfail_reason` field; the parametrized suite wires the xfail mark
|
||||
automatically.
|
||||
|
||||
- **`parse_release` tokenizer is now data-driven**: it splits on any character
|
||||
listed in `separators.yaml` (regex character class) instead of `name.split(".")`.
|
||||
This makes YTS-style releases (`The Father (2020) [1080p] [WEBRip] [5.1] [YTS.MX]`),
|
||||
|
||||
Reference in New Issue
Block a user