aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/List/Anime/AnimeListTemplate.svelte3
-rw-r--r--src/lib/List/Manga/CleanMangaList.svelte3
-rw-r--r--src/lib/Settings/Attributions.svelte12
-rw-r--r--src/lib/Settings/Verbiage.svelte28
-rw-r--r--src/lib/Tools/Picker.svelte3
-rw-r--r--src/lib/Tools/Schedule/Tool.svelte5
-rw-r--r--src/routes/+layout.svelte20
-rw-r--r--src/routes/tools/+page.svelte3
-rw-r--r--src/routes/tools/[tool]/+page.svelte5
-rw-r--r--src/routes/updates/+page.svelte5
-rw-r--r--src/routes/user/+page.svelte3
-rw-r--r--src/routes/user/[user]/+page.svelte5
-rw-r--r--src/routes/user/[user]/badges/+page.svelte7
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={() => {