fix: correct specials affecting availability status (#4092)

* fix: remove specials affecting availability status

* refactor: add comments for scanner
This commit is contained in:
Brandon Cohen
2025-04-02 19:02:44 -05:00
committed by GitHub
parent 46a9b244ef
commit c9f52afe0f

View File

@@ -324,19 +324,25 @@ class BaseScanner<T> {
}
}
// We want to skip specials when checking if a show is available
const isAllStandardSeasons =
seasons.length &&
seasons.every(
(season) =>
season.episodes === season.totalEpisodes && season.episodes > 0
);
seasons
.filter((season) => season.seasonNumber !== 0)
.every(
(season) =>
season.episodes === season.totalEpisodes && season.episodes > 0
);
const isAll4kSeasons =
seasons.length &&
seasons.every(
(season) =>
season.episodes4k === season.totalEpisodes && season.episodes4k > 0
);
seasons
.filter((season) => season.seasonNumber !== 0)
.every(
(season) =>
season.episodes4k === season.totalEpisodes &&
season.episodes4k > 0
);
if (media) {
media.seasons = [...media.seasons, ...newSeasons];
@@ -398,15 +404,20 @@ class BaseScanner<T> {
}
// If the show is already available, and there are no new seasons, dont adjust
// the status
// the status. Skip specials when performing availability check
const shouldStayAvailable =
media.status === MediaStatus.AVAILABLE &&
newSeasons.filter((season) => season.status !== MediaStatus.UNKNOWN)
.length === 0;
newSeasons.filter(
(season) =>
season.status !== MediaStatus.UNKNOWN && season.seasonNumber !== 0
).length === 0;
const shouldStayAvailable4k =
media.status4k === MediaStatus.AVAILABLE &&
newSeasons.filter((season) => season.status4k !== MediaStatus.UNKNOWN)
.length === 0;
newSeasons.filter(
(season) =>
season.status4k !== MediaStatus.UNKNOWN &&
season.seasonNumber !== 0
).length === 0;
media.status =
isAllStandardSeasons || shouldStayAvailable