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
|
primary token. KONTRAST releases with audio / HDR / edition / language
|
||||||
metadata now produce a fully populated `ParsedRelease`.
|
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}/`,
|
- **Real-world release fixtures** under `tests/fixtures/releases/{easy,shitty,path_of_pain}/`,
|
||||||
each documenting an expected `ParsedRelease` plus the future `routing`
|
each documenting an expected `ParsedRelease` plus the future `routing`
|
||||||
(library / torrents / seed_hardlinks) for the upcoming `organize_media`
|
(library / torrents / seed_hardlinks) for the upcoming `organize_media`
|
||||||
@@ -93,6 +102,22 @@ callers).
|
|||||||
|
|
||||||
### Changed
|
### 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
|
- **`parse_release` tokenizer is now data-driven**: it splits on any character
|
||||||
listed in `separators.yaml` (regex character class) instead of `name.split(".")`.
|
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]`),
|
This makes YTS-style releases (`The Father (2020) [1080p] [WEBRip] [5.1] [YTS.MX]`),
|
||||||
|
|||||||
Reference in New Issue
Block a user