mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-15 13:46:16 -08:00
The series view re-normalizes the selected item through createStalkerInfo() on every render, and that mapping carried only seven hand-picked tmdb_* fields. tmdb_genres, tmdb_countries, tmdb_media_type and tmdb_supplied_release_date were dropped right after enrichment, so the clickable Discover chips never appeared on Stalker series. The carried keys now come from a Record over StalkerVodInfo's tmdb_* keys, so a new enrichment field fails to compile until it is listed. Saved Stalker entries now also keep tmdb_supplied_release_date, and the recommendations exclusion index (trustedReleaseYear) skips a date TMDB supplied, as the flag's contract requires. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
70 lines
2.4 KiB
TypeScript
70 lines
2.4 KiB
TypeScript
import {
|
|
TmdbCountryFacet,
|
|
TmdbEnrichedCastMember,
|
|
TmdbGenreFacet,
|
|
TmdbMediaType,
|
|
TmdbRecommendation,
|
|
TmdbSeriesStatus,
|
|
} from './tmdb.interface';
|
|
|
|
/**
|
|
* Stalker portal VOD details response structure.
|
|
* Contains movie metadata from Stalker/Ministra portals.
|
|
*/
|
|
export interface StalkerVodDetails {
|
|
/** Unique identifier for the VOD item */
|
|
id: string;
|
|
/** Command string used to play the stream (e.g., "/media/file_123.mpg") */
|
|
cmd: string;
|
|
/** VOD metadata */
|
|
info: StalkerVodInfo;
|
|
}
|
|
|
|
export interface StalkerVodInfo {
|
|
/** Poster/cover image URL */
|
|
movie_image: string;
|
|
/** Plot description */
|
|
description: string;
|
|
/** Formatted/system title (often generic like "video_name_format") */
|
|
name: string;
|
|
/** Original title (preferred, more descriptive) */
|
|
o_name?: string;
|
|
/** Comma-separated list of actors */
|
|
actors: string;
|
|
/** Director name */
|
|
director: string;
|
|
/** Release date (format varies) */
|
|
releasedate: string;
|
|
/** Genre(s) */
|
|
genre: string;
|
|
/** IMDB rating as string */
|
|
rating_imdb: string;
|
|
/** Kinopoisk rating as string */
|
|
rating_kinopoisk: string;
|
|
/** Populated by TMDB enrichment; absent in raw portal responses */
|
|
tmdb_cast?: TmdbEnrichedCastMember[];
|
|
/** Directors (movies) / creators (series) as clickable person chips */
|
|
tmdb_directors?: TmdbEnrichedCastMember[];
|
|
/** Series production status (token, never a raw TMDB string) */
|
|
tmdb_status?: TmdbSeriesStatus;
|
|
/** TMDB backdrop URL — Stalker portals never provide one themselves */
|
|
tmdb_backdrop?: string;
|
|
/** YouTube trailer key from TMDB — Stalker portals provide no trailers */
|
|
tmdb_trailer?: string;
|
|
/** Populated by TMDB enrichment */
|
|
tmdb_recommendations?: TmdbRecommendation[];
|
|
/** Matched TMDB id — enables lazy season/episode enrichment */
|
|
tmdb_id?: number;
|
|
/** Populated by TMDB enrichment; per-entry clickable Discover chips */
|
|
tmdb_genres?: TmdbGenreFacet[];
|
|
tmdb_countries?: TmdbCountryFacet[];
|
|
/**
|
|
* Media type the enrichment matched this item as. Stalker embedded-VOD
|
|
* series route as movies structurally, so the shared detail view needs
|
|
* this to send Discover clicks to the right media type.
|
|
*/
|
|
tmdb_media_type?: TmdbMediaType;
|
|
/** See `XtreamVodInfo.tmdb_supplied_release_date` — same contract */
|
|
tmdb_supplied_release_date?: boolean;
|
|
}
|