diff options
| -rw-r--r-- | src/lib/List/Anime/AnimeListTemplate.svelte | 3 | ||||
| -rw-r--r-- | src/lib/List/Manga/CleanMangaList.svelte | 3 | ||||
| -rw-r--r-- | src/lib/Settings/Attributions.svelte | 12 | ||||
| -rw-r--r-- | src/lib/Settings/Verbiage.svelte | 28 | ||||
| -rw-r--r-- | src/lib/Tools/Picker.svelte | 3 | ||||
| -rw-r--r-- | src/lib/Tools/Schedule/Tool.svelte | 5 | ||||
| -rw-r--r-- | src/routes/+layout.svelte | 20 | ||||
| -rw-r--r-- | src/routes/tools/+page.svelte | 3 | ||||
| -rw-r--r-- | src/routes/tools/[tool]/+page.svelte | 5 | ||||
| -rw-r--r-- | src/routes/updates/+page.svelte | 5 | ||||
| -rw-r--r-- | src/routes/user/+page.svelte | 3 | ||||
| -rw-r--r-- | src/routes/user/[user]/+page.svelte | 5 | ||||
| -rw-r--r-- | src/routes/user/[user]/badges/+page.svelte | 7 |
13 files changed, 62 insertions, 40 deletions
diff --git a/src/lib/List/Anime/AnimeListTemplate.svelte b/src/lib/List/Anime/AnimeListTemplate.svelte index a5ed68db..f2630853 100644 --- a/src/lib/List/Anime/AnimeListTemplate.svelte +++ b/src/lib/List/Anime/AnimeListTemplate.svelte @@ -8,6 +8,7 @@ import CleanAnimeList from './CleanAnimeList.svelte'; import ListTitle from '../ListTitle.svelte'; import type { SubsPlease } from '$lib/Media/Anime/Airing/Subtitled/subsPlease'; + import root from '$lib/Utility/root'; export let endTime: number; export let cleanMedia: ( @@ -28,7 +29,7 @@ let pendingUpdate: number | null = null; </script> -{#await fetch(`/api/subsplease?tz=${Intl.DateTimeFormat().resolvedOptions().timeZone}`).then( (r) => r.json() )} +{#await fetch(root(`/api/subsplease?tz=${Intl.DateTimeFormat().resolvedOptions().timeZone}`)).then( (r) => r.json() )} <ListTitle custom={title} /> <ul><li>Subtitle release data ... 33%</li></ul> diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte index e712ef30..aa996547 100644 --- a/src/lib/List/Manga/CleanMangaList.svelte +++ b/src/lib/List/Manga/CleanMangaList.svelte @@ -16,6 +16,7 @@ import { onMount } from 'svelte'; import proxy from '$lib/Utility/proxy'; import Loading from '$lib/Utility/Loading.svelte'; + import root from '$lib/Utility/root'; export let media: Media[]; export let cleanCache: () => void; @@ -87,7 +88,7 @@ on:click={() => ($settings.disableManga = true)} data-umami-event="Disable No Manga">Hide the manga panel</button > - You can re-enable it later in the <a href="/settings">Settings</a>. + You can re-enable it later in the <a href={root('/settings')}>Settings</a>. </span> {/if} diff --git a/src/lib/Settings/Attributions.svelte b/src/lib/Settings/Attributions.svelte index 0a0d2d38..dad576e4 100644 --- a/src/lib/Settings/Attributions.svelte +++ b/src/lib/Settings/Attributions.svelte @@ -1,3 +1,7 @@ +<script> + import root from '$lib/Utility/root'; +</script> + <ul> <li> <a href="https://anilist.co/" target="_blank">AniList</a>: all data not explicity attributed @@ -31,17 +35,17 @@ <summary>Outbound Link Disclaimer</summary> <ol> <li> - <a href="/">due.moe</a> + <a href={root('/')}>due.moe</a> does not host or directly link to any less-than-legal anime or manga material and/or distribution platforms. </li> <li> - <a href="/">due.moe</a> + <a href={root('/')}>due.moe</a> is not affiliated with any of the above or below sites and services. </li> <li> - At the moment, <a href="/">due.moe</a> only ever contains outbound links to the following - sites and services: + At the moment, <a href={root('/')}>due.moe</a> only ever contains outbound links to the + following sites and services: <ul> <li><a href="https://anilist.co/">AniList.co</a></li> diff --git a/src/lib/Settings/Verbiage.svelte b/src/lib/Settings/Verbiage.svelte index 580b7e61..c355a692 100644 --- a/src/lib/Settings/Verbiage.svelte +++ b/src/lib/Settings/Verbiage.svelte @@ -1,30 +1,34 @@ +<script> + import root from '$lib/Utility/root'; +</script> + <details open={false}> <summary>Verbiage</summary> <ul> <li> - <a href="/">Home</a>, Upcoming Episodes: Anime which you have seen all episodes of thus far, - and have a scheduled next episode(s) release date + <a href={root('/')}>Home</a>, Upcoming Episodes: Anime which you have seen all episodes of + thus far, and have a scheduled next episode(s) release date </li> <li> - <a href="/">Home</a>, Not Yet Released: Anime which have not yet aired their first episode, - and have a scheduled next episode(s) release date + <a href={root('/')}>Home</a>, Not Yet Released: Anime which have not yet aired their first + episode, and have a scheduled next episode(s) release date </li> <li> - <a href="/">Home</a>, Anime: Anime which you have not seen all episodes of thus far, and have - a scheduled next episode release date + <a href={root('/')}>Home</a>, Anime: Anime which you have not seen all episodes of thus far, + and have a scheduled next episode release date </li> <li> - <a href="/">Home</a>, Manga: Manga which you have not read all chapters of thus far, and have - an available next chapter(s) + <a href={root('/')}>Home</a>, Manga: Manga which you have not read all chapters of thus far, + and have an available next chapter(s) </li> <li> - <a href="/completed">Completed</a>, Anime: Anime which you have not seen all episodes of thus - far, and have concluded airing + <a href={root('/completed')}>Completed</a>, Anime: Anime which you have not seen all episodes + of thus far, and have concluded airing </li> <li> - <a href="/completed">Completed</a>, Manga: Manga which you have not read all chapters of thus - far, and have concluded publishing + <a href={root('/completed')}>Completed</a>, Manga: Manga which you have not read all chapters + of thus far, and have concluded publishing </li> </ul> </details> diff --git a/src/lib/Tools/Picker.svelte b/src/lib/Tools/Picker.svelte index 5276e023..b60a7039 100644 --- a/src/lib/Tools/Picker.svelte +++ b/src/lib/Tools/Picker.svelte @@ -1,6 +1,7 @@ <script lang="ts"> import { browser } from '$app/environment'; import { goto } from '$app/navigation'; + import root from '$lib/Utility/root'; export let tool: string; </script> @@ -9,7 +10,7 @@ <select bind:value={tool} on:change={() => { - if (browser) goto(`/tools/${tool}`); + if (browser) goto(root(`/tools/${tool}`)); }} > <option value="default" selected disabled hidden>Select a tool to continue</option> diff --git a/src/lib/Tools/Schedule/Tool.svelte b/src/lib/Tools/Schedule/Tool.svelte index 6b3a6a0c..2fe9a275 100644 --- a/src/lib/Tools/Schedule/Tool.svelte +++ b/src/lib/Tools/Schedule/Tool.svelte @@ -13,6 +13,7 @@ import './container.css'; import Days from './Days.svelte'; import settings from '$stores/settings'; + import root from '$lib/Utility/root'; let subsPleasePromise: Promise<SubsPlease>; let scheduledMediaPromise: Promise<Partial<Media[]>>; @@ -26,7 +27,7 @@ let forceListMode = parseOrDefault(urlParameters, 'list', false); onMount(async () => { - subsPleasePromise = fetch(`/api/subsplease?tz=${timeZone}`).then((r) => r.json()); + subsPleasePromise = fetch(root(`/api/subsplease?tz=${timeZone}`)).then((r) => r.json()); scheduledMediaPromise = scheduleMediaListCollection(new Date().getFullYear(), season(), true); }); </script> @@ -37,7 +38,7 @@ <select bind:value={timeZone} on:change={() => - (subsPleasePromise = fetch(`/api/subsplease?tz=${timeZone}`).then((r) => r.json()))} + (subsPleasePromise = fetch(root(`/api/subsplease?tz=${timeZone}`)).then((r) => r.json()))} > {#each Intl.supportedValuesOf('timeZone') as zone} <option value={zone}> diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 88f1d268..1118ebcf 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -12,6 +12,7 @@ import Notifications from 'svelte-notifications'; import Notification from '$lib/Notification/Notification.svelte'; import Root from '$lib/Home/Root.svelte'; + import root from '$lib/Utility/root'; export let data; @@ -62,16 +63,19 @@ <div id="container"> <div id="header" class="card card-centered"> <div> - <a href="/" class="header-item">Home</a><a href="/completed" class="header-item">Completed</a> - <a href="/schedule" class="header-item">Subtitle Schedule</a> - <a href="/updates" class="header-item">New Releases</a> - <a href="/tools" class="header-item">Tools</a> - <a href="/settings" class="header-item">Settings</a> + <a href={root('/')} class="header-item">Home</a><a + href={root('/completed')} + class="header-item">Completed</a + > + <a href={root('/schedule')} class="header-item">Subtitle Schedule</a> + <a href={root('/updates')} class="header-item">New Releases</a> + <a href={root('/tools')} class="header-item">Tools</a> + <a href={root('/settings')} class="header-item">Settings</a> <span style="opacity: 50%;" class="header-item">|</span> {#if data.user} - <a href={`/user/${currentUserIdentity.name}`} class="header-item">Profile</a> + <a href={root(`/user/${currentUserIdentity.name}`)} class="header-item">Profile</a> {/if} {#if data.user === undefined} @@ -88,9 +92,9 @@ Log in with AniList </a> {:else} - <a href="/api/authentication/log-out" class="header-item">Log out </a> + <a href={root('/api/authentication/log-out')} class="header-item">Log out </a> {#if data.user} - <a href={`/user/${currentUserIdentity.name}`} class="header-item"> + <a href={root(`/user/${currentUserIdentity.name}`)} class="header-item"> <img id="avatar" src={currentUserIdentity.avatar} alt="Avatar" /> </a> {/if} diff --git a/src/routes/tools/+page.svelte b/src/routes/tools/+page.svelte index f5cbe36a..edc18410 100644 --- a/src/routes/tools/+page.svelte +++ b/src/routes/tools/+page.svelte @@ -2,6 +2,7 @@ import HeadTitle from '$lib/Home/HeadTitle.svelte'; import Picker from '$lib/Tools/Picker.svelte'; import { tools } from '$lib/Tools/tools.js'; + import root from '$lib/Utility/root'; let tool = 'default'; </script> @@ -17,7 +18,7 @@ {#each Object.keys(tools) as t} {#if t !== 'default'} <li> - <a href={`/tools/${tools[t].id}`} on:click={() => (tool = t)}>{tools[t].name}</a> + <a href={root(`/tools/${tools[t].id}`)} on:click={() => (tool = t)}>{tools[t].name}</a> {#if tools[t].description} <blockquote>{tools[t].description}</blockquote> {/if} diff --git a/src/routes/tools/[tool]/+page.svelte b/src/routes/tools/[tool]/+page.svelte index adcd6442..945acbd4 100644 --- a/src/routes/tools/[tool]/+page.svelte +++ b/src/routes/tools/[tool]/+page.svelte @@ -13,13 +13,14 @@ import { goto } from '$app/navigation'; import Picker from '$lib/Tools/Picker.svelte'; import Likes from '$lib/Tools/Likes.svelte'; + import root from '$lib/Utility/root.js'; export let data; let tool = data.tool ?? 'default'; onMount(() => { - if (tool === 'default') goto('/tools'); + if (tool === 'default') goto(root('/tools')); }); $: suggestion = closest(tool, Object.keys(tools)); @@ -35,7 +36,7 @@ <blockquote style="margin: 0 0 0 1.5rem;"> Did you mean "<a - href={`/tools/${tools[suggestion].id}`} + href={root(`/tools/${tools[suggestion].id}`)} on:click={() => (tool = suggestion)} style={suggestion === '...' ? 'pointer-events: none; color: inherit;' : ''} > diff --git a/src/routes/updates/+page.svelte b/src/routes/updates/+page.svelte index ada0142f..652b3901 100644 --- a/src/routes/updates/+page.svelte +++ b/src/routes/updates/+page.svelte @@ -4,6 +4,7 @@ import { browser } from '$app/environment'; import HeadTitle from '$lib/Home/HeadTitle.svelte'; import { createHeightObserver } from '$lib/Utility/html'; + import root from '$lib/Utility/root'; import { onMount } from 'svelte'; let feed: { items: { title: string; link: string; content: string }[] } | null | undefined = @@ -24,10 +25,10 @@ createHeightObserver(); startTime = performance.now(); - novelFeed = await (await fetch('/api/updates/all-novels')).json(); + novelFeed = await (await fetch(root('/api/updates/all-novels'))).json(); novelEndTime = performance.now() - startTime; startTime = performance.now(); - feed = await (await fetch('/api/updates/manga')).json(); + feed = await (await fetch(root('/api/updates/manga'))).json(); mangaEndTime = performance.now() - startTime; }); diff --git a/src/routes/user/+page.svelte b/src/routes/user/+page.svelte index 2edc85d2..5ffccddd 100644 --- a/src/routes/user/+page.svelte +++ b/src/routes/user/+page.svelte @@ -5,6 +5,7 @@ import { onMount } from 'svelte'; import { env } from '$env/dynamic/public'; import HeadTitle from '$lib/Home/HeadTitle.svelte'; + import root from '$lib/Utility/root'; const user = browser && localStorage.getItem('userIdentity') @@ -13,7 +14,7 @@ onMount(() => { if (user) { - goto(`/user/${user}`); + goto(root(`/user/${user}`)); } else { goto( `https://anilist.co/api/v2/oauth/authorize?client_id=${env.PUBLIC_ANILIST_CLIENT_ID}&redirect_uri=${env.PUBLIC_ANILIST_REDIRECT_URI}&response_type=code` diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte index 5adbeaaa..4637234a 100644 --- a/src/routes/user/[user]/+page.svelte +++ b/src/routes/user/[user]/+page.svelte @@ -2,6 +2,7 @@ import { user, type User } from '$lib/AniList/user'; import HeadTitle from '$lib/Home/HeadTitle.svelte'; import { estimatedDayReading } from '$lib/Media/Manga/time'; + import root from '$lib/Utility/root.js'; import { onMount } from 'svelte'; export let data; @@ -60,7 +61,7 @@ title={String(userData.id)}>@{userData.name}</a > <span class="click-item">•</span> - <a href={`/user/${userData.name}/badges`}>Badge Wall</a> + <a href={root(`/user/${userData.name}/badges`)}>Badge Wall</a> </p> {data.username} has watched {(userData.statistics.anime.minutesWatched / 60 / 24).toFixed( @@ -70,7 +71,7 @@ <p /> - {data.username} has collected {#await fetch(`/api/badges?id=${userData.id}`)} + {data.username} has collected {#await fetch(root(`/api/badges?id=${userData.id}`))} ... {:then badges} {#await badges.json()} diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index aff9afff..f5b13f3f 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -8,6 +8,7 @@ import HeadTitle from '$lib/Home/HeadTitle.svelte'; import { databaseTimeToDate, dateToDatabaseTime } from '$lib/Utility/time'; import Loading from '$lib/Utility/Loading.svelte'; + import root from '$lib/Utility/root.js'; // import { io } from 'socket.io-client'; export let data; @@ -39,7 +40,7 @@ return; } - badgesPromise = fetch(`/api/badges?id=${badger.id}`); + badgesPromise = fetch(root(`/api/badges?id=${badger.id}`)); if (data.user) { currentUserIdentity = userIdentity(data.user); @@ -118,7 +119,7 @@ (document.querySelector(`#badge-${badge.id}`) as HTMLAnchorElement).style.display = 'none'; selectedBadge = undefined; - badgesPromise = fetch(`/api/badges?id=${badge.id}`, { + badgesPromise = fetch(root(`/api/badges?id=${badge.id}`), { method: 'DELETE' }); }; @@ -212,7 +213,7 @@ {#if isOwner} <div class="card"> - <a href={`/user/${data.username}`}>Back to Profile</a> + <a href={root(`/user/${data.username}`)}>Back to Profile</a> • <button on:click={() => { |