mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 19:46:16 -08:00
fix(tmdb): fall back to original language for missing trailers too
TMDB language-filters videos the same way it filters overviews: a Russian-only title has its trailer tagged iso_639_1=ru, so an en-US request returns no trailer — the trailer only appeared when the user switched the app language. The original-language fallback previously triggered on an empty overview only, so titles that had a translated overview but a language-only trailer never got one. detailsFallbackLanguage now also triggers when the payload has no usable YouTube trailer, and fillDetailsFromFallback fills the overview and the trailer independently — a present app-language overview is kept while the trailer is pulled from the original-language payload. The fallback fetch stays best-effort and cached per language. Tests: extended tmdb-language-fallback.spec.ts (trailer-missing trigger, independent overview/trailer fill, YouTube-only guard). Docs updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c55acfb1d9
commit
dae6beea88
4 files changed
+101
-28
No files matched your search
@@ -139,13 +139,15 @@ The `language` param derives from the app language setting
|
||||
(`Language` enum → TMDB code, e.g. `de` → `de-DE`); cache rows are keyed per
|
||||
language, so switching the app language re-fetches localized metadata.
|
||||
|
||||
TMDB does NOT fall back on missing translations — a Russian-only series
|
||||
returns empty overviews for `en-US`. When the app-language payload has no
|
||||
overview, the enrichment refetches once in the content's
|
||||
`original_language` and fills only the missing text
|
||||
(`tmdb-language-fallback.ts`): the details overview, and — via the same
|
||||
rule in `TmdbSeasonService` when a season payload carries no usable text —
|
||||
the season overview and per-episode names/overviews. Genres, credits and
|
||||
TMDB language-filters both text AND videos — a Russian-only title returns
|
||||
an empty overview and no trailer for `en-US` (its trailer is tagged
|
||||
`iso_639_1=ru`). When the app-language payload is missing either, the
|
||||
enrichment refetches once in the content's `original_language` and fills
|
||||
only the missing fields (`tmdb-language-fallback.ts`): the details
|
||||
overview and/or trailer (each independently, so a present app-language
|
||||
overview is kept while the trailer is filled), and — via the same rule in
|
||||
`TmdbSeasonService` when a season payload carries no usable text — the
|
||||
season overview and per-episode names/overviews. Genres, credits and
|
||||
artwork stay in the app language; both language rows land in the cache.
|
||||
|
||||
Trailers embed via `https://www.youtube-nocookie.com/embed/…`. YouTube
|
||||
|
||||
Reference in new issue
Block a user