diff --git a/media_manager/metadataProvider/tvdb.py b/media_manager/metadataProvider/tvdb.py index a87e732..c4f9091 100644 --- a/media_manager/metadataProvider/tvdb.py +++ b/media_manager/metadataProvider/tvdb.py @@ -103,7 +103,7 @@ class TvdbMetadataProvider(AbstractMetadataProvider): ) return show - + # TODO: fuck this mess def search_show( self, query: str | None = None ) -> list[MetaDataProviderSearchResult]: diff --git a/web/src/lib/components/add-show-card.svelte b/web/src/lib/components/add-show-card.svelte index 5805ce2..352ea50 100644 --- a/web/src/lib/components/add-show-card.svelte +++ b/web/src/lib/components/add-show-card.svelte @@ -33,7 +33,7 @@ } - + {result.name} @@ -45,10 +45,10 @@ >{result.overview !== '' ? result.overview : 'No overview available'} - + {#if result.poster_path != null} {result.name}'s Poster Image diff --git a/web/src/lib/components/recommended-shows-carousel.svelte b/web/src/lib/components/recommended-shows-carousel.svelte index 5b74371..729d78c 100644 --- a/web/src/lib/components/recommended-shows-carousel.svelte +++ b/web/src/lib/components/recommended-shows-carousel.svelte @@ -12,21 +12,22 @@ align: 'start', loop: true }} + class="max-w-[80vw]" plugins={[ Autoplay({ - delay: 4000, + delay: 5000, stopOnInteraction: false, stopOnMouseEnter: true, - playOnInit: true + playOnInit: true, + stopOnFocusIn: true }) ]} > - + + {#each shows as show} - -
- -
+ + {/each}
diff --git a/web/src/routes/dashboard/+page.svelte b/web/src/routes/dashboard/+page.svelte index 66b562e..933ac90 100644 --- a/web/src/routes/dashboard/+page.svelte +++ b/web/src/routes/dashboard/+page.svelte @@ -7,8 +7,26 @@ import {base} from '$app/paths'; import {page} from '$app/state'; import type {MetaDataProviderShowSearchResult} from '$lib/types'; + import {onMount} from 'svelte'; + import {env} from "$env/dynamic/public"; + + const apiUrl = env.PUBLIC_API_URL; + let recommendedShows: any[] = []; + let loading = true; + + onMount(async () => { + const res = await fetch(apiUrl + '/tv/recommended', { + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + credentials: 'include', + method: 'GET' + }); + recommendedShows = await res.json(); + loading = false; + }); - let recommendedShows: Promise = page.data.tvRecommendations;
@@ -34,16 +52,17 @@
-

+

Trending Shows

- {#await recommendedShows} - - {:then recommendations} - - {/await} + {#if loading} + + {:else} + + + {/if}
diff --git a/web/src/routes/dashboard/+page.ts b/web/src/routes/dashboard/+page.ts deleted file mode 100644 index d2e7371..0000000 --- a/web/src/routes/dashboard/+page.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {env} from '$env/dynamic/public'; -import type {PageLoad} from './$types'; - -const apiUrl = env.PUBLIC_API_URL; - -export const load: PageLoad = async ({fetch}) => { - const response = await fetch(apiUrl + '/tv/recommended', { - method: 'GET', - headers: { - 'Content-Type': 'application/json' - }, - credentials: 'include' - }); - - return {tvRecommendations: await response.json()}; -};