feat: re-introduce airdate based episode limiting
Some checks are pending
Check / check (push) Waiting to run

This commit is contained in:
ThaUnknown 2025-07-17 18:43:07 +02:00
parent 3ad8d5039e
commit 39aed8afb8
No known key found for this signature in database
2 changed files with 8 additions and 5 deletions

View file

@ -1,6 +1,6 @@
{
"name": "ui",
"version": "6.4.51",
"version": "6.4.52",
"license": "BUSL-1.1",
"private": true,
"packageManager": "pnpm@9.15.5",

View file

@ -75,11 +75,14 @@ export function makeEpisodeList (count: number, media: Media, episodesRes?: Epis
const hasCountMatch = (episodes(media) ?? 0) === (episodesRes?.episodeCount ?? 0)
const needsValidation = !(!hasSpecial || (hasEpisode && hasCountMatch))
// handle special cases where anilist reports that 3 episodes aired at the same time because of pre-releases, simply don't allow the same episode to be re-used
// TODO: this needs to be improved so it doesnt walk backwards
// const filtered = Object.fromEntries(Object.entries(episodesRes?.episodes ?? {}).filter(([_, ep]) => !episodeList.some(e => e.anidbEid === ep.anidbEid && ep.anidbEid != null)))
// handle special cases where anilist reports that 3 episodes aired at the same time because of pre-releases, simply don't allow the same episode to be re-used, but only walk forwards in dates
const filtered = Object.fromEntries(Object.entries(episodesRes?.episodes ?? {}).filter(([_, ep]) => !episodeList.some(e => {
if (ep.anidbEid != null && e.anidbEid === ep.anidbEid) return true
if (ep.airdate != null && new Date(ep.airdate) < new Date(e.airdate ?? Date.now())) return true
return false
})))
const { image, summary, overview, rating, title, length, airdate, anidbEid } = (needsValidation ? episodeByAirDate(airingAt, episodesRes?.episodes ?? {}, episode) : episodesRes?.episodes?.[Number(episode)]) ?? {}
const { image, summary, overview, rating, title, length, airdate, anidbEid } = (needsValidation ? episodeByAirDate(airingAt, filtered, episode) : episodesRes?.episodes?.[Number(episode)]) ?? {}
const res = {
episode, image, summary: summary ?? overview, rating, title, length, airdate, airingAt, filler: !!fillerEpisodes[media.id]?.includes(i + 1), anidbEid
}