mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
feat(frontend/api): tv details page
This commit is contained in:
@@ -1,31 +1,13 @@
|
||||
import {
|
||||
TmdbMovieDetails,
|
||||
TmdbCreditCast,
|
||||
TmdbCreditCrew,
|
||||
} from '../api/themoviedb';
|
||||
import { TmdbMovieDetails } from '../api/themoviedb';
|
||||
import { MediaRequest } from '../entity/MediaRequest';
|
||||
import { ProductionCompany, Genre } from './common';
|
||||
|
||||
export interface Cast {
|
||||
id: number;
|
||||
castId: number;
|
||||
character: string;
|
||||
creditId: string;
|
||||
gender?: number;
|
||||
name: string;
|
||||
order: number;
|
||||
profilePath?: string;
|
||||
}
|
||||
|
||||
export interface Crew {
|
||||
id: number;
|
||||
creditId: string;
|
||||
department: string;
|
||||
gender?: number;
|
||||
job: string;
|
||||
name: string;
|
||||
profilePath?: string;
|
||||
}
|
||||
import {
|
||||
ProductionCompany,
|
||||
Genre,
|
||||
Cast,
|
||||
Crew,
|
||||
mapCast,
|
||||
mapCrew,
|
||||
} from './common';
|
||||
|
||||
export interface MovieDetails {
|
||||
id: number;
|
||||
@@ -65,27 +47,6 @@ export interface MovieDetails {
|
||||
request?: MediaRequest;
|
||||
}
|
||||
|
||||
const mapCast = (person: TmdbCreditCast): Cast => ({
|
||||
castId: person.cast_id,
|
||||
character: person.character,
|
||||
creditId: person.credit_id,
|
||||
id: person.id,
|
||||
name: person.name,
|
||||
order: person.order,
|
||||
gender: person.gender,
|
||||
profilePath: person.profile_path,
|
||||
});
|
||||
|
||||
const mapCrew = (person: TmdbCreditCrew): Crew => ({
|
||||
creditId: person.credit_id,
|
||||
department: person.department,
|
||||
id: person.id,
|
||||
job: person.job,
|
||||
name: person.name,
|
||||
gender: person.gender,
|
||||
profilePath: person.profile_path,
|
||||
});
|
||||
|
||||
export const mapMovieDetails = (
|
||||
movie: TmdbMovieDetails,
|
||||
request?: MediaRequest
|
||||
|
@@ -1,4 +1,11 @@
|
||||
import { Genre, ProductionCompany } from './common';
|
||||
import {
|
||||
Genre,
|
||||
ProductionCompany,
|
||||
Cast,
|
||||
Crew,
|
||||
mapCast,
|
||||
mapCrew,
|
||||
} from './common';
|
||||
import { MediaRequest } from '../entity/MediaRequest';
|
||||
import {
|
||||
TmdbTvEpisodeDetails,
|
||||
@@ -64,6 +71,10 @@ export interface TvDetails {
|
||||
type: string;
|
||||
voteAverage: number;
|
||||
voteCount: number;
|
||||
credits: {
|
||||
cast: Cast[];
|
||||
crew: Crew[];
|
||||
};
|
||||
request?: MediaRequest;
|
||||
}
|
||||
|
||||
@@ -140,5 +151,9 @@ export const mapTvDetails = (
|
||||
? mapEpisodeDetails(show.next_episode_to_air)
|
||||
: undefined,
|
||||
posterPath: show.poster_path,
|
||||
credits: {
|
||||
cast: show.credits.cast.map(mapCast),
|
||||
crew: show.credits.crew.map(mapCrew),
|
||||
},
|
||||
request,
|
||||
});
|
||||
|
@@ -1,3 +1,5 @@
|
||||
import { TmdbCreditCast, TmdbCreditCrew } from '../api/themoviedb';
|
||||
|
||||
export interface ProductionCompany {
|
||||
id: number;
|
||||
logoPath?: string;
|
||||
@@ -9,3 +11,45 @@ export interface Genre {
|
||||
id: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface Cast {
|
||||
id: number;
|
||||
castId: number;
|
||||
character: string;
|
||||
creditId: string;
|
||||
gender?: number;
|
||||
name: string;
|
||||
order: number;
|
||||
profilePath?: string;
|
||||
}
|
||||
|
||||
export interface Crew {
|
||||
id: number;
|
||||
creditId: string;
|
||||
department: string;
|
||||
gender?: number;
|
||||
job: string;
|
||||
name: string;
|
||||
profilePath?: string;
|
||||
}
|
||||
|
||||
export const mapCast = (person: TmdbCreditCast): Cast => ({
|
||||
castId: person.cast_id,
|
||||
character: person.character,
|
||||
creditId: person.credit_id,
|
||||
id: person.id,
|
||||
name: person.name,
|
||||
order: person.order,
|
||||
gender: person.gender,
|
||||
profilePath: person.profile_path,
|
||||
});
|
||||
|
||||
export const mapCrew = (person: TmdbCreditCrew): Crew => ({
|
||||
creditId: person.credit_id,
|
||||
department: person.department,
|
||||
id: person.id,
|
||||
job: person.job,
|
||||
name: person.name,
|
||||
gender: person.gender,
|
||||
profilePath: person.profile_path,
|
||||
});
|
||||
|
Reference in New Issue
Block a user