Browse Source

use external ids endpoint for imdb ids

pull/328/head
castdrian 2 years ago committed by Adrian Castro
parent
commit
205248a376
  1. 6
      src/backend/metadata/getmeta.ts
  2. 25
      src/backend/metadata/tmdb.ts
  3. 24
      src/backend/metadata/types.ts

6
src/backend/metadata/getmeta.ts

@ -87,10 +87,8 @@ export async function getMetaFromId( @@ -87,10 +87,8 @@ export async function getMetaFromId(
if (!details) return null;
let imdbId;
if (type === MWMediaType.MOVIE) {
imdbId = (details as TMDBMovieData).imdb_id ?? undefined;
}
const externalIds = await Tmdb.getExternalIds(id, mediaTypeToTMDB(type));
const imdbId = externalIds.imdb_id ?? undefined;
let seasonData: TMDBSeasonMetaResult | undefined;

25
src/backend/metadata/tmdb.ts

@ -6,15 +6,18 @@ import { @@ -6,15 +6,18 @@ import {
MWSeasonMeta,
TMDBContentTypes,
TMDBEpisodeShort,
TMDBExternalIds,
TMDBMediaResult,
TMDBMediaStatic,
TMDBMovieData,
TMDBMovieExternalIds,
TMDBMovieResponse,
TMDBMovieResult,
TMDBSearchResultStatic,
TMDBSeason,
TMDBSeasonMetaResult,
TMDBShowData,
TMDBShowExternalIds,
TMDBShowResponse,
TMDBShowResult,
} from "./types";
@ -170,6 +173,28 @@ export abstract class Tmdb { @@ -170,6 +173,28 @@ export abstract class Tmdb {
title: e.name,
}));
}
public static async getExternalIds(
id: string,
type: TMDBContentTypes
): Promise<TMDBExternalIds> {
let data;
switch (type) {
case "movie":
data = await Tmdb.get<TMDBMovieExternalIds>(
`/movie/${id}/external_ids`
);
break;
case "show":
data = await Tmdb.get<TMDBShowExternalIds>(`/tv/${id}/external_ids`);
break;
default:
throw new Error("Invalid media type");
}
return data;
}
}
export async function formatTMDBSearchResult(

24
src/backend/metadata/types.ts

@ -379,3 +379,27 @@ export interface TMDBSeason { @@ -379,3 +379,27 @@ export interface TMDBSeason {
poster_path: string | null;
season_number: number;
}
export interface TMDBShowExternalIds {
id: number;
imdb_id: null | string;
freebase_mid: null | string;
freebase_id: null | string;
tvdb_id: number;
tvrage_id: null | string;
wikidata_id: null | string;
facebook_id: null | string;
instagram_id: null | string;
twitter_id: null | string;
}
export interface TMDBMovieExternalIds {
id: number;
imdb_id: null | string;
wikidata_id: null | string;
facebook_id: null | string;
instagram_id: null | string;
twitter_id: null | string;
}
export type TMDBExternalIds = TMDBShowExternalIds | TMDBMovieExternalIds;

Loading…
Cancel
Save