diff --git a/src/lib/apis/jellyfin/jellyfinApi.ts b/src/lib/apis/jellyfin/jellyfinApi.ts index 31ec068..e3dd571 100644 --- a/src/lib/apis/jellyfin/jellyfinApi.ts +++ b/src/lib/apis/jellyfin/jellyfinApi.ts @@ -59,7 +59,7 @@ export const getJellyfinItems = () => // } // }).then((r) => r.data?.Items || []); -export const getJellyfinEpisodes = (seriesId: string) => +export const getJellyfinEpisodes = () => JellyfinApi.get('/Users/{userId}/Items', { params: { path: { @@ -73,7 +73,10 @@ export const getJellyfinEpisodes = (seriesId: string) => headers: { 'cache-control': 'max-age=10' } - }).then((r) => r.data?.Items?.filter((i) => i.SeriesId === seriesId) || []); + }).then((r) => r.data?.Items || []); + +export const getJellyfinEpisodesBySeries = (seriesId: string) => + getJellyfinEpisodes().then((items) => items.filter((i) => i.SeriesId === seriesId) || []); export const getJellyfinItemByTmdbId = (tmdbId: string) => getJellyfinItems().then((items) => items.find((i) => i.ProviderIds?.Tmdb == tmdbId)); diff --git a/src/lib/apis/tmdb/tmdbApi.ts b/src/lib/apis/tmdb/tmdbApi.ts index 0b8c216..d4ad83e 100644 --- a/src/lib/apis/tmdb/tmdbApi.ts +++ b/src/lib/apis/tmdb/tmdbApi.ts @@ -20,6 +20,7 @@ export interface TmdbMovieFull2 extends TmdbMovie2 { videos: operations['movie-videos']['responses']['200']['content']['application/json']; credits: operations['movie-credits']['responses']['200']['content']['application/json']; external_ids: operations['movie-external-ids']['responses']['200']['content']['application/json']; + images: operations['movie-images']['responses']['200']['content']['application/json']; } export interface TmdbSeriesFull2 extends TmdbSeries2 { @@ -43,7 +44,8 @@ export const getTmdbMovie = async (tmdbId: number) => movie_id: tmdbId }, query: { - append_to_response: 'videos,credits,external_ids' + append_to_response: 'videos,credits,external_ids,images', + ...({ include_image_language: get(settings).language + ',en,null' } as any) } } }).then((res) => res.data as TmdbMovieFull2 | undefined); diff --git a/src/lib/components/EpisodeCard/EpisodeCard.svelte b/src/lib/components/EpisodeCard/EpisodeCard.svelte index cc78d6d..f846786 100644 --- a/src/lib/components/EpisodeCard/EpisodeCard.svelte +++ b/src/lib/components/EpisodeCard/EpisodeCard.svelte @@ -6,11 +6,13 @@ import { fade } from 'svelte/transition'; export let backdropPath: string; - export let title: string; - export let subtitle: string; + + export let title = ''; + export let subtitle = ''; export let episodeNumber: string | undefined = undefined; - export let runtime: number; + export let runtime = 0; export let progress = 0; + export let handlePlay: (() => void) | undefined = undefined; export let size: 'md' | 'dynamic' = 'md'; @@ -31,36 +33,49 @@ transition:fade|global >
{episodeNumber}
+ {/if}+ {runtime} min +
+ {/if}2014
+{new Date(series?.first_air_date || Date.now()).getFullYear()}
+{series?.status}
{series?.genres?.map((g) => g.name).join(', ')}
{series?.overview}
Directed By
+Created By
First Air Date
+Next Air Date
+Last Air Date
+Networks
+Episode Run Time
+Spoken Languages
+