aboutsummaryrefslogtreecommitdiffstats
path: root/docs/mediacenter.md
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-29 18:45:37 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-29 18:45:37 +0200
commit00880fd8b9d362ad391c784f1ee31bd62aa18d62 (patch)
tree9e14bc8c1b6d8b18c9e2ec8fe1708f6ad3f18cb6 /docs/mediacenter.md
parent8de80b7e19738b716d9973c0b4ba3b42085f7359 (diff)
downloadmeshbay-00880fd8b9d362ad391c784f1ee31bd62aa18d62.tar.gz
fix(node): stop a movie with a mangled quality tag being shelved as a series
Found on demo35: "Some.Film.2017.MULTI.108.grp.mkv" — the release name's "1080p" truncated to "108" — makes guessit read S01E08, so enrich.py's flat-library branch (elif ep.episode is not None) filed a standalone film as a series. "Fix match" then only offered TV results for the phantom show, so there was no way out from the UI. - title_parse.has_episode_marker(): true only for an explicit SxxExx / 1x08 / "Episode N" / "Season N" token, not a bare 3-4 digit run. - enrich.py: the flat-library branch now needs ep.season AND ep.episode, plus either a real marker or the absence of a "(2019)"-style year. Every genuine flat-dumped episode in the corpus carries a marker, so real shows are untouched; the same misparse on "1280" ("...2013.1280...") is covered too. docs/mediacenter.md §10.2. Known gap left open: no operator control over the movie/show kind itself — a "this is a movie / a show" toggle would. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018BMLQjqFGCize2KtNBT79v
Diffstat (limited to 'docs/mediacenter.md')
-rw-r--r--docs/mediacenter.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/mediacenter.md b/docs/mediacenter.md
index 5c27939..45f57d9 100644
--- a/docs/mediacenter.md
+++ b/docs/mediacenter.md
@@ -770,6 +770,22 @@ TMDB id, and an unmatched poster gets a badge.
| ~~V12~~ | Movies not merged in the poster grid | `mergedMovies` groups by resolved `tmdb_id`, mirroring `mergedShows`; the detail modal lists the versions (resolution · duration · size), each a Play button. New `video.versions` key ×10. Edge: "Fix match" on a merged movie corrects only the representative file; the other version un-merges and can be corrected on its own |
| ~~V13~~ | Per-card "re-match this one file" button | `OP_TMDB_REMATCH` / `MNP.TMDB_REMATCH` (MNP 0.13, additive) → `media_cache.drop_tmdb_match` (forgets the match *and* the override marker). Signed like `tmdb_override`. Button next to "Fix match" in the detail modal; `transport.rematchTmdbMatch`; `video.rematch_one` key ×10 |
+### 10.2 A movie mis-shelved as a series (2026-08-29)
+
+`Some.Film.2017.MULTI.108.grp.mkv` — a movie whose `1080p` tag was truncated to `108` —
+made guessit invent `S01E08`, so `enrich.py`'s flat-library branch filed a standalone film
+as a nonexistent series, and "Fix match" (TV-only for a "show") could only offer other
+series. **Fixed** (`fix/movie-misclassified-as-show`): that branch now requires
+`ep.season` *and* `ep.episode`, plus either an explicit marker
+(`title_parse.has_episode_marker` — `SxxExx` / `1x08` / `Episode N` / `Season N`) or the
+absence of a `(2019)`-style year; otherwise it falls through to the movie branch. A real
+flat-dumped episode always carries a marker, so nothing regresses.
+
+**Still open:** there is no operator control over the movie/show classification itself —
+"Fix match" only changes the TMDB id, not the kind. A genuinely ambiguous name
+(`Show.2019.308.mkv`) that guessit slots wrongly has no in-UI remedy short of renaming the
+file. A "this is a movie / a show" toggle would close that.
+
## 11. Acceptance before shipping
1. Re-run the §3 validation (real TMDB calls, same corpus, same script