aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-17 08:46:43 -0800
committerFuwn <[email protected]>2023-12-17 08:46:43 -0800
commita899f9fa0394e2d10aff5accee18755436a5204d (patch)
treeca6536296dc7b810b87fd4a6f21743fe4189c41d /src/lib
parentrefactor(airing): move set to inject + debug (diff)
downloaddue.moe-a899f9fa0394e2d10aff5accee18755436a5204d.tar.xz
due.moe-a899f9fa0394e2d10aff5accee18755436a5204d.zip
fix(airing): both current and new sub episode
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/List/Anime/UpcomingAnimeList.svelte6
-rw-r--r--src/lib/Media/Anime/airing.ts31
2 files changed, 23 insertions, 14 deletions
diff --git a/src/lib/List/Anime/UpcomingAnimeList.svelte b/src/lib/List/Anime/UpcomingAnimeList.svelte
index 3f4bfd06..c8195ecc 100644
--- a/src/lib/List/Anime/UpcomingAnimeList.svelte
+++ b/src/lib/List/Anime/UpcomingAnimeList.svelte
@@ -30,7 +30,11 @@
const filterAnime = (status: 'RELEASING' | 'NOT_YET_RELEASED') =>
anime
- .filter((media: Media) => media.status === status && media.nextAiringEpisode !== null)
+ .filter(
+ (media: Media) =>
+ // airedButNotSubtitled(injectAiringTime(media, subsPlease)) ||
+ media.status === status && media.nextAiringEpisode !== null
+ )
.filter(
(media: Media) =>
// Outdated media
diff --git a/src/lib/Media/Anime/airing.ts b/src/lib/Media/Anime/airing.ts
index 3493355c..6d29d122 100644
--- a/src/lib/Media/Anime/airing.ts
+++ b/src/lib/Media/Anime/airing.ts
@@ -13,11 +13,11 @@ interface Time {
}
export const airedButNotSubtitled = (anime: Media) =>
- anime.nextAiringEpisode &&
- anime.nextAiringEpisode.nativeAiringAt &&
- anime.nextAiringEpisode.nativeAiringAt * 1000 < Date.now() &&
- anime.nextAiringEpisode.airingAt &&
- anime.nextAiringEpisode.airingAt * 1000 > Date.now();
+ anime.nextAiringEpisode?.airingAt &&
+ anime.nextAiringEpisode?.nativeAiringAt &&
+ new Date(anime.nextAiringEpisode.airingAt * 1000).getTime() > Date.now() &&
+ new Date(anime.nextAiringEpisode.nativeAiringAt * 1000).getTime() - Date.now() >
+ 4 * 24 * 60 * 60 * 1000;
const secondsUntil = (targetTime: string, targetDay: string) => {
const now = new Date();
@@ -74,6 +74,7 @@ export const injectAiringTime = (anime: Media, subsPlease: SubsPlease | null) =>
const nativeTime = new Date(airingAt ? airingAt * 1000 : 0);
let untilAiring;
let time = new Date(airingAt ? airingAt * 1000 : 0);
+ let nextEpisode = anime.nextAiringEpisode?.episode || 0;
if (
!(
@@ -105,20 +106,24 @@ export const injectAiringTime = (anime: Media, subsPlease: SubsPlease | null) =>
untilAiring = secondsUntil((foundTime as Time).time, (foundTime as Time).day);
time = new Date(Date.now() + untilAiring * 1000);
}
-
- // if (anime.title.english?.toLowerCase().includes('really')) {
- // untilAiring = 2 * 60;
- // time = new Date(Date.now() + untilAiring * 1000);
- // nativeTime = new Date(Date.now() - untilAiring * 1000);
- // }
}
- if (airedButNotSubtitled(anime) && anime.nextAiringEpisode) anime.nextAiringEpisode.episode -= 1;
+ if (
+ // This was an insane debugging session .... What, like eight hours? ...
+ airedButNotSubtitled({
+ nextAiringEpisode: {
+ ...anime.nextAiringEpisode,
+ airingAt: time.getTime() / 1000,
+ nativeAiringAt: nativeTime.getTime() / 1000
+ }
+ } as Media)
+ )
+ nextEpisode -= 1;
return {
...anime,
nextAiringEpisode: {
- ...anime.nextAiringEpisode,
+ episode: nextEpisode,
airingAt: time.getTime() / 1000,
nativeAiringAt: nativeTime.getTime() / 1000
}