feat: allow itemdata to hold season and episode numbers

This commit is contained in:
Adrian Castro
2024-04-08 18:36:44 +02:00
parent 8b7bf5da6d
commit ae5505da7f
3 changed files with 16 additions and 4 deletions

View File

@@ -14,6 +14,8 @@ export interface ItemData {
id: string; id: string;
title: string; title: string;
type: "movie" | "tv"; type: "movie" | "tv";
season?: number;
episode?: number;
year: number; year: number;
release_date?: Date; release_date?: Date;
posterUrl: string; posterUrl: string;

View File

@@ -60,7 +60,12 @@ export const ScraperProcess = ({
let meta: PlayerMeta | undefined = undefined; let meta: PlayerMeta | undefined = undefined;
if (!media && data?.id && data.type) { if (!media && data?.id && data.type) {
meta = await convertIdToMeta(data.id, data.type); meta = await convertIdToMeta(
data.id,
data.type,
data.season,
data.episode,
);
if (!meta) return router.back(); if (!meta) return router.back();
} }

View File

@@ -10,14 +10,19 @@ export const useMeta = () => {
const setMeta = usePlayerStore((state) => state.setMeta); const setMeta = usePlayerStore((state) => state.setMeta);
const convertIdToMeta = useCallback( const convertIdToMeta = useCallback(
async (id: string, type: "movie" | "tv") => { async (
id: string,
type: "movie" | "tv",
season?: number,
episode?: number,
) => {
const media = await fetchMediaDetails(id, type); const media = await fetchMediaDetails(id, type);
if (!media) return; if (!media) return;
const scrapeMedia = transformSearchResultToScrapeMedia( const scrapeMedia = transformSearchResultToScrapeMedia(
media.type, media.type,
media.result, media.result,
meta?.season?.number, season ?? meta?.season?.number,
meta?.episode?.number, episode ?? meta?.episode?.number,
); );
let seasonData = null; let seasonData = null;
if (scrapeMedia.type === "show") { if (scrapeMedia.type === "show") {