aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-17 06:53:58 -0800
committerFuwn <[email protected]>2023-12-17 06:53:58 -0800
commitdedfb2a31725b8299515686a70b711fda04c134a (patch)
tree44553f12fb543b8fb09eb4e731c0c66122a5b504 /src/lib
parentrefactor(airing): airing time via injection (diff)
downloaddue.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.svelte28
-rw-r--r--src/lib/List/Anime/DueAnimeList.svelte11
-rw-r--r--src/lib/List/Anime/UpcomingAnimeList.svelte8
-rw-r--r--src/lib/Media/Anime/airing.ts11
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[] = [];