diff options
| author | Fuwn <[email protected]> | 2024-01-21 17:51:59 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-21 17:51:59 -0800 |
| commit | 5093d2fea38a6b781ead5d8f0ddb90260ed3e62c (patch) | |
| tree | 93df20f963af92ee5de48ec9bc5291b02a32d771 /src/lib | |
| parent | feat(badges): awc integration (diff) | |
| download | due.moe-5093d2fea38a6b781ead5d8f0ddb90260ed3e62c.tar.xz due.moe-5093d2fea38a6b781ead5d8f0ddb90260ed3e62c.zip | |
refactor(schedule): move top-level tool to route
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/Tools/Schedule/Tool.svelte | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/lib/Tools/Schedule/Tool.svelte b/src/lib/Tools/Schedule/Tool.svelte deleted file mode 100644 index 2fe9a275..00000000 --- a/src/lib/Tools/Schedule/Tool.svelte +++ /dev/null @@ -1,93 +0,0 @@ -<script lang="ts"> - import Error from '$lib/Error/RateLimited.svelte'; - import type { SubsPlease } from '$lib/Media/Anime/Airing/Subtitled/subsPlease'; - import { onMount } from 'svelte'; - import { parseOrDefault } from '$lib/Utility/parameters'; - import { browser } from '$app/environment'; - import type { Media } from '$lib/AniList/media'; - import { scheduleMediaListCollection } from '$lib/AniList/schedule'; - import { season } from '$lib/Media/Anime/season'; - import HeadTitle from '$lib/Home/HeadTitle.svelte'; - import Crunchyroll from '$lib/Tools/Schedule/Crunchyroll.svelte'; - import Loading from '$lib/Utility/Loading.svelte'; - 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[]>>; - const urlParameters = browser ? new URLSearchParams(window.location.search) : null; - let timeZone = parseOrDefault( - urlParameters, - 'tz', - Intl.DateTimeFormat().resolvedOptions().timeZone - ); - let crunchyrollExpanded = false; - let forceListMode = parseOrDefault(urlParameters, 'list', false); - - onMount(async () => { - subsPleasePromise = fetch(root(`/api/subsplease?tz=${timeZone}`)).then((r) => r.json()); - scheduledMediaPromise = scheduleMediaListCollection(new Date().getFullYear(), season(), true); - }); -</script> - -<HeadTitle route="Schedule" path="/schedule" /> - -<blockquote> - <select - bind:value={timeZone} - on:change={() => - (subsPleasePromise = fetch(root(`/api/subsplease?tz=${timeZone}`)).then((r) => r.json()))} - > - {#each Intl.supportedValuesOf('timeZone') as zone} - <option value={zone}> - {zone.split('/').reverse().join(', ').replace(/_/g, ' ')} - </option> - {/each} - </select> -</blockquote> - -<details bind:open={crunchyrollExpanded}> - <summary - >Crunchyroll Release Calender (Click to {crunchyrollExpanded ? 'collapse' : 'expand'})</summary - > - - <p /> - - <Crunchyroll /> -</details> - -<p /> - -{#await subsPleasePromise} - <Loading type="subtitle release data" percent={49.5} /> -{:then subsPlease} - {#if subsPlease} - {#await scheduledMediaPromise} - <Loading type="anime schedule" percent={82.5} /> - {:then scheduledMedia} - {#if scheduledMedia} - {@const columnCount = Math.ceil(Object.keys(subsPlease.schedule).length / 2)} - - <div - class="list-container" - id="schedule" - style={`column-count: ${ - columnCount / ($settings.displayScheduleListMode || forceListMode ? 1 : 2) - }`} - > - <Days {subsPlease} {scheduledMedia} {forceListMode} /> - </div> - {:else} - <Loading type="anime schedule" percent={66} /> - {/if} - {:catch} - <Error type="Media" loginSessionError={false} card /> - {/await} - {:else} - <Loading type="subtitle release data" percent={33} /> - {/if} -{:catch} - <Error type="Schedule" loginSessionError={false} card /> -{/await} |