diff --git a/media_manager/main.py b/media_manager/main.py index b5aef18..c9555f1 100644 --- a/media_manager/main.py +++ b/media_manager/main.py @@ -146,6 +146,7 @@ async def lifespan(app: FastAPI): yield scheduler.shutdown() + BASE_PATH = os.getenv("BASE_PATH", "") FRONTEND_FILES_DIR = os.getenv("FRONTEND_FILES_DIR") app = FastAPI(lifespan=lifespan, root_path=BASE_PATH) @@ -246,9 +247,12 @@ app.add_exception_handler(NotFoundError, not_found_error_exception_handler) app.add_exception_handler(MediaAlreadyExists, media_already_exists_exception_handler) app.add_exception_handler(InvalidConfigError, invalid_config_error_exception_handler) + @app.exception_handler(404) async def not_found_handler(request, exc): return FileResponse(f"{FRONTEND_FILES_DIR}/404.html") + + # ---------------------------- # Hello World # ---------------------------- diff --git a/web/src/lib/components/app-sidebar.svelte b/web/src/lib/components/app-sidebar.svelte index 2e36e48..61bc10b 100644 --- a/web/src/lib/components/app-sidebar.svelte +++ b/web/src/lib/components/app-sidebar.svelte @@ -17,47 +17,47 @@ navMain: [ { title: 'Dashboard', - url: base+'/dashboard', + url: base + '/dashboard', icon: Home, isActive: true }, { title: 'TV', - url: base+'/dashboard/tv', + url: base + '/dashboard/tv', icon: TvIcon, isActive: true, items: [ { title: 'Add a show', - url: base+'/dashboard/tv/add-show' + url: base + '/dashboard/tv/add-show' }, { title: 'Torrents', - url: base+'/dashboard/tv/torrents' + url: base + '/dashboard/tv/torrents' }, { title: 'Requests', - url: base+'/dashboard/tv/requests' + url: base + '/dashboard/tv/requests' } ] }, { title: 'Movies', - url: base+'/dashboard/movies', + url: base + '/dashboard/movies', icon: Clapperboard, isActive: true, items: [ { title: 'Add a movie', - url: base+'/dashboard/movies/add-movie' + url: base + '/dashboard/movies/add-movie' }, { title: 'Torrents', - url: base+'/dashboard/movies/torrents' + url: base + '/dashboard/movies/torrents' }, { title: 'Requests', - url: base+'/dashboard/movies/requests' + url: base + '/dashboard/movies/requests' } ] } @@ -65,12 +65,12 @@ navSecondary: [ { title: 'Notifications', - url: base+'/dashboard/notifications', + url: base + '/dashboard/notifications', icon: Bell }, { title: 'Settings', - url: base+'/dashboard/settings', + url: base + '/dashboard/settings', icon: Settings }, { @@ -85,7 +85,7 @@ }, { title: 'About', - url: base+'/dashboard/about', + url: base + '/dashboard/about', icon: Info } ] diff --git a/web/src/routes/dashboard/about/+page.svelte b/web/src/routes/dashboard/about/+page.svelte index 39ffaaa..1520452 100644 --- a/web/src/routes/dashboard/about/+page.svelte +++ b/web/src/routes/dashboard/about/+page.svelte @@ -5,7 +5,6 @@ import { base } from '$app/paths'; import logo from '$lib/images/logo.svg'; import { PUBLIC_VERSION } from '$env/static/public'; - diff --git a/web/src/routes/dashboard/movies/+page.svelte b/web/src/routes/dashboard/movies/+page.svelte index 90eaf20..5e290fd 100644 --- a/web/src/routes/dashboard/movies/+page.svelte +++ b/web/src/routes/dashboard/movies/+page.svelte @@ -82,7 +82,7 @@ {@render loadingbar()} {:else} {#each movies as movie} - + {getFullyQualifiedMediaName(movie)} diff --git a/web/src/routes/dashboard/tv/+page.svelte b/web/src/routes/dashboard/tv/+page.svelte index 42ec0c3..3873a1a 100644 --- a/web/src/routes/dashboard/tv/+page.svelte +++ b/web/src/routes/dashboard/tv/+page.svelte @@ -65,7 +65,7 @@ {@render loadingbar()} {:then tvShows} {#each tvShows as show} - + {getFullyQualifiedMediaName(show)} diff --git a/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte b/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte index 28e7f9a..cf1ccd8 100644 --- a/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte +++ b/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte @@ -149,7 +149,7 @@ {#each show().seasons as season (season.id)} goto(base+'/dashboard/tv/' + show().id + '/' + season.id)} + onclick={() => goto(base + '/dashboard/tv/' + show().id + '/' + season.id)} > {season.number} diff --git a/web/src/routes/login/reset-password/+page.svelte b/web/src/routes/login/reset-password/+page.svelte index 12e51a7..b5b9d7f 100644 --- a/web/src/routes/login/reset-password/+page.svelte +++ b/web/src/routes/login/reset-password/+page.svelte @@ -27,7 +27,7 @@ onMount(() => { if (!resetToken) { toast.error('Invalid or missing reset token.'); - goto(base+'/login'); + goto(base + '/login'); } }); @@ -56,7 +56,7 @@ if (response.ok) { toast.success('Password reset successfully! You can now log in with your new password.'); - goto(base+'/login'); + goto(base + '/login'); } else { const errorText = await response.text(); toast.error(`Failed to reset password: ${errorText}`); diff --git a/web/svelte.config.js b/web/svelte.config.js index 0b243c3..6a0b79b 100644 --- a/web/svelte.config.js +++ b/web/svelte.config.js @@ -13,7 +13,7 @@ const config = { // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. // If your environment is not supported, or you settled on a specific environment, switch out the adapter. // See https://svelte.dev/docs/kit/adapters for more information about adapters. - adapter: adapter({fallback: '404.html'}), + adapter: adapter({ fallback: '404.html' }), paths: { base: base }