Skip to content

Commit c9f52af

Browse files
authored
fix: correct specials affecting availability status (#4092)
* fix: remove specials affecting availability status * refactor: add comments for scanner
1 parent 46a9b24 commit c9f52af

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

server/lib/scanners/baseScanner.ts

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -324,19 +324,25 @@ class BaseScanner<T> {
324324
}
325325
}
326326

327+
// We want to skip specials when checking if a show is available
327328
const isAllStandardSeasons =
328329
seasons.length &&
329-
seasons.every(
330-
(season) =>
331-
season.episodes === season.totalEpisodes && season.episodes > 0
332-
);
330+
seasons
331+
.filter((season) => season.seasonNumber !== 0)
332+
.every(
333+
(season) =>
334+
season.episodes === season.totalEpisodes && season.episodes > 0
335+
);
333336

334337
const isAll4kSeasons =
335338
seasons.length &&
336-
seasons.every(
337-
(season) =>
338-
season.episodes4k === season.totalEpisodes && season.episodes4k > 0
339-
);
339+
seasons
340+
.filter((season) => season.seasonNumber !== 0)
341+
.every(
342+
(season) =>
343+
season.episodes4k === season.totalEpisodes &&
344+
season.episodes4k > 0
345+
);
340346

341347
if (media) {
342348
media.seasons = [...media.seasons, ...newSeasons];
@@ -398,15 +404,20 @@ class BaseScanner<T> {
398404
}
399405

400406
// If the show is already available, and there are no new seasons, dont adjust
401-
// the status
407+
// the status. Skip specials when performing availability check
402408
const shouldStayAvailable =
403409
media.status === MediaStatus.AVAILABLE &&
404-
newSeasons.filter((season) => season.status !== MediaStatus.UNKNOWN)
405-
.length === 0;
410+
newSeasons.filter(
411+
(season) =>
412+
season.status !== MediaStatus.UNKNOWN && season.seasonNumber !== 0
413+
).length === 0;
406414
const shouldStayAvailable4k =
407415
media.status4k === MediaStatus.AVAILABLE &&
408-
newSeasons.filter((season) => season.status4k !== MediaStatus.UNKNOWN)
409-
.length === 0;
416+
newSeasons.filter(
417+
(season) =>
418+
season.status4k !== MediaStatus.UNKNOWN &&
419+
season.seasonNumber !== 0
420+
).length === 0;
410421

411422
media.status =
412423
isAllStandardSeasons || shouldStayAvailable

0 commit comments

Comments
 (0)