diff options
Diffstat (limited to 'src/routes/updates/+page.svelte')
| -rw-r--r-- | src/routes/updates/+page.svelte | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/routes/updates/+page.svelte b/src/routes/updates/+page.svelte index 357a5906..bbcb087d 100644 --- a/src/routes/updates/+page.svelte +++ b/src/routes/updates/+page.svelte @@ -5,6 +5,7 @@ import HeadTitle from "$lib/Home/HeadTitle.svelte"; import Skeleton from "$lib/Loading/Skeleton.svelte"; import { createHeightObserver } from "$lib/Utility/html"; import root from "$lib/Utility/root"; +import { sanitizeFeedHtml } from "$lib/Utility/sanitizeHtml"; import locale from "$stores/locale"; let feed: @@ -22,6 +23,7 @@ let novelFeed: }[]; }; } + | null | undefined; let startTime: number; let mangaEndTime: number; @@ -31,14 +33,42 @@ let directLink = browser : false; let removeHeightObserver: (() => void) | undefined; +const fetchJson = async (path: string) => { + try { + const response = await fetch(root(path)); + + return response.ok ? await response.json() : null; + } catch { + return null; + } +}; + onMount(async () => { removeHeightObserver = createHeightObserver(false); startTime = performance.now(); - novelFeed = await (await fetch(root("/api/updates/all-novels"))).json(); + + const allNovels = await fetchJson("/api/updates/all-novels"); + + if (allNovels?.data?.items) + for (const item of allNovels.data.items) { + if (item.postfix) item.postfix = sanitizeFeedHtml(item.postfix); + if (item.series) item.series.name = sanitizeFeedHtml(item.series.name); + } + + novelFeed = allNovels?.data?.items ? allNovels : null; novelEndTime = performance.now() - startTime; startTime = performance.now(); - feed = await (await fetch(root("/api/updates/manga"))).json(); + + const mangaFeed = await fetchJson("/api/updates/manga"); + + if (mangaFeed?.items) + for (const item of mangaFeed.items) { + item.title = sanitizeFeedHtml(item.title); + item.content = sanitizeFeedHtml(item.content); + } + + feed = mangaFeed?.items ? mangaFeed : null; mangaEndTime = performance.now() - startTime; }); |