mirror of
https://github.com/movie-web/native-app.git
synced 2025-09-13 18:13:25 +00:00
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import type { AppendToResponse, MovieDetails, TvShowDetails } from "tmdb-ts";
|
|
|
|
import type { ScrapeMedia } from "@movie-web/providers";
|
|
|
|
export function transformSearchResultToScrapeMedia(
|
|
type: "tv" | "movie",
|
|
result: TvShowDetails | MovieDetails,
|
|
season?: number,
|
|
episode?: number,
|
|
): ScrapeMedia {
|
|
if (type === "tv") {
|
|
const tvResult = result as AppendToResponse<
|
|
TvShowDetails,
|
|
"external_ids"[],
|
|
"tvShow"
|
|
>;
|
|
return {
|
|
type: "show",
|
|
tmdbId: tvResult.id.toString(),
|
|
imdbId: tvResult.external_ids.imdb_id,
|
|
title: tvResult.name,
|
|
releaseYear: new Date(tvResult.first_air_date).getFullYear(),
|
|
season: {
|
|
number: season ?? tvResult.seasons[0]?.season_number ?? 1,
|
|
tmdbId: season
|
|
? tvResult.seasons
|
|
.find((s) => s.season_number === season)
|
|
?.id.toString() ?? ""
|
|
: tvResult.seasons[0]?.id.toString() ?? "",
|
|
},
|
|
episode: {
|
|
number: episode ?? 1,
|
|
tmdbId: "",
|
|
},
|
|
};
|
|
}
|
|
if (type === "movie") {
|
|
const movieResult = result as AppendToResponse<
|
|
MovieDetails,
|
|
"external_ids"[],
|
|
"movie"
|
|
>;
|
|
return {
|
|
type: "movie",
|
|
tmdbId: movieResult.id.toString(),
|
|
imdbId: movieResult.external_ids.imdb_id,
|
|
title: movieResult.title,
|
|
releaseYear: new Date(movieResult.release_date).getFullYear(),
|
|
};
|
|
}
|
|
|
|
throw new Error("Invalid type parameter");
|
|
}
|