diff options
| author | Fuwn <[email protected]> | 2023-12-17 06:53:58 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-12-17 06:53:58 -0800 |
| commit | dedfb2a31725b8299515686a70b711fda04c134a (patch) | |
| tree | 44553f12fb543b8fb09eb4e731c0c66122a5b504 /src/lib | |
| parent | refactor(airing): airing time via injection (diff) | |
| download | due.moe-dedfb2a31725b8299515686a70b711fda04c134a.tar.xz due.moe-dedfb2a31725b8299515686a70b711fda04c134a.zip | |
fix(anime): position of subbed release
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/List/Anime/AnimeListTemplate.svelte | 28 | ||||
| -rw-r--r-- | src/lib/List/Anime/DueAnimeList.svelte | 11 | ||||
| -rw-r--r-- | src/lib/List/Anime/UpcomingAnimeList.svelte | 8 | ||||
| -rw-r--r-- | src/lib/Media/Anime/airing.ts | 11 |
4 files changed, 37 insertions, 21 deletions
diff --git a/src/lib/List/Anime/AnimeListTemplate.svelte b/src/lib/List/Anime/AnimeListTemplate.svelte index d325895a..554897ba 100644 --- a/src/lib/List/Anime/AnimeListTemplate.svelte +++ b/src/lib/List/Anime/AnimeListTemplate.svelte @@ -7,11 +7,13 @@ import settings from '../../../stores/settings'; import CleanAnimeList from './CleanAnimeList.svelte'; import ListTitle from '../ListTitle.svelte'; + import type { SubsPlease } from '$lib/subsPlease'; export let endTime: number; export let cleanMedia: ( media: Media[], displayUnresolved: boolean, + subsPlease: SubsPlease | null, plannedOnly?: boolean ) => Media[]; export let animeLists: Promise<Media[]>; @@ -46,18 +48,20 @@ <ul><li>Loading ...</li></ul> {/if} {:then media} - <CleanAnimeList - media={cleanMedia(media, $settings.displayUnresolved, plannedOnly)} - {title} - bind:animeLists - {user} - {identity} - {endTime} - bind:lastUpdatedMedia - {completed} - bind:previousAnimeList - bind:pendingUpdate - /> + {#await fetch(`/api/subsplease?tz=${Intl.DateTimeFormat().resolvedOptions().timeZone}`).then( (r) => r.json() ) then subsPlease} + <CleanAnimeList + media={cleanMedia(media, $settings.displayUnresolved, subsPlease, plannedOnly)} + {title} + bind:animeLists + {user} + {identity} + {endTime} + bind:lastUpdatedMedia + {completed} + bind:previousAnimeList + bind:pendingUpdate + /> + {/await} {:catch} <ListTitle time={0} count={-1337} custom={title} /> diff --git a/src/lib/List/Anime/DueAnimeList.svelte b/src/lib/List/Anime/DueAnimeList.svelte index 270fc4ae..6bb3ea4f 100644 --- a/src/lib/List/Anime/DueAnimeList.svelte +++ b/src/lib/List/Anime/DueAnimeList.svelte @@ -6,6 +6,8 @@ import settings from '../../../stores/settings'; import lastPruneTimes from '../../../stores/lastPruneTimes'; import AnimeList from './AnimeListTemplate.svelte'; + import type { SubsPlease } from '$lib/subsPlease'; + import { injectAiringTime } from '$lib/Media/Anime/airing'; export let user: AniListAuthorisation; export let identity: UserIdentity; @@ -34,7 +36,11 @@ onDestroy(() => clearInterval(keyCacher)); - const cleanMedia = (anime: Media[], displayUnresolved: boolean) => { + const cleanMedia = ( + anime: Media[], + displayUnresolved: boolean, + subsPlease: SubsPlease | null + ) => { if (anime === undefined) return []; let dueAnime = anime @@ -58,7 +64,8 @@ media.nextAiringEpisode = { episode: -1 }; return media; - }); + }) + .map((media) => injectAiringTime(media, subsPlease)); if (!displayUnresolved) dueAnime = dueAnime.filter((media: Media) => media.nextAiringEpisode?.episode !== -1); diff --git a/src/lib/List/Anime/UpcomingAnimeList.svelte b/src/lib/List/Anime/UpcomingAnimeList.svelte index 3c180fd5..3f4bfd06 100644 --- a/src/lib/List/Anime/UpcomingAnimeList.svelte +++ b/src/lib/List/Anime/UpcomingAnimeList.svelte @@ -6,6 +6,7 @@ import lastPruneTimes from '../../../stores/lastPruneTimes'; import AnimeList from './AnimeListTemplate.svelte'; import settings from '../../../stores/settings'; + import type { SubsPlease } from '$lib/subsPlease'; export let user: AniListAuthorisation; export let identity: UserIdentity; @@ -19,7 +20,12 @@ animeLists = mediaListCollection(user, identity, Type.Anime, $anime, $lastPruneTimes.anime); }); - const cleanMedia = (anime: Media[], displayUnresolved: boolean, plannedOnly = true) => { + const cleanMedia = ( + anime: Media[], + displayUnresolved: boolean, + _subsPlease: SubsPlease | null, + plannedOnly = true + ) => { if (anime === undefined) return []; const filterAnime = (status: 'RELEASING' | 'NOT_YET_RELEASED') => diff --git a/src/lib/Media/Anime/airing.ts b/src/lib/Media/Anime/airing.ts index c7d4a4ea..b6369fdc 100644 --- a/src/lib/Media/Anime/airing.ts +++ b/src/lib/Media/Anime/airing.ts @@ -61,17 +61,16 @@ const findClosestMatch = (times: Time[], titles: string[]) => { export const injectAiringTime = (anime: Media, subsPlease: SubsPlease | null) => { const airingAt = anime.nextAiringEpisode?.airingAt; - const nativeUntilAiring = airingAt - ? Math.round((airingAt - Date.now() / 1000) * 100) / 100 - : undefined; + // const nativeUntilAiring = airingAt + // ? Math.round((airingAt - Date.now() / 1000) * 100) / 100 + // : undefined; let untilAiring; let time = new Date(airingAt ? airingAt * 1000 : 0); if ( !( - get(settings).displayNativeCountdown || - !subsPlease || - !(nativeUntilAiring !== undefined && nativeUntilAiring < 24 * 60 * 60) + (get(settings).displayNativeCountdown || !subsPlease) + // || !(nativeUntilAiring !== undefined && nativeUntilAiring < 24 * 60 * 60) ) ) { const times: Time[] = []; |