Skip to content

Commit

Permalink
fix(sync): do not update series status if already available and no ne…
Browse files Browse the repository at this point in the history
…w seasons

fixes #777
  • Loading branch information
sct committed Jan 30, 2021
1 parent f1dd5e7 commit 136d874
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 13 deletions.
30 changes: 22 additions & 8 deletions server/job/plexsync/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -626,15 +626,29 @@ class JobPlexSync {
media.mediaAddedAt = new Date(plexitem.addedAt * 1000);
}

media.status = isAllStandardSeasons
? MediaStatus.AVAILABLE
: media.seasons.some(
(season) => season.status !== MediaStatus.UNKNOWN
)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN;
// If the show is already available, and there are no new seasons, dont adjust
// the status
const shouldStayAvailable =
media.status === MediaStatus.AVAILABLE &&
newSeasons.filter(
(season) => season.status !== MediaStatus.UNKNOWN
).length === 0;
const shouldStayAvailable4k =
media.status4k === MediaStatus.AVAILABLE &&
newSeasons.filter(
(season) => season.status4k !== MediaStatus.UNKNOWN
).length === 0;

media.status =
isAllStandardSeasons || shouldStayAvailable
? MediaStatus.AVAILABLE
: media.seasons.some(
(season) => season.status !== MediaStatus.UNKNOWN
)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN;
media.status4k =
isAll4kSeasons && this.enable4kShow
(isAll4kSeasons || shouldStayAvailable4k) && this.enable4kShow
? MediaStatus.AVAILABLE
: this.enable4kShow &&
media.seasons.some(
Expand Down
22 changes: 17 additions & 5 deletions server/job/sonarrsync/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -229,11 +229,23 @@ class JobSonarrSync {
);
}

media[server4k ? 'status4k' : 'status'] = isAllSeasons
? MediaStatus.AVAILABLE
: media.seasons.some((season) => season.status !== MediaStatus.UNKNOWN)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN;
// If the show is already available, and there are no new seasons, dont adjust
// the status
const shouldStayAvailable =
media.status === MediaStatus.AVAILABLE &&
newSeasons.filter(
(season) =>
season[server4k ? 'status4k' : 'status'] !== MediaStatus.UNKNOWN
).length === 0;

media[server4k ? 'status4k' : 'status'] =
isAllSeasons || shouldStayAvailable
? MediaStatus.AVAILABLE
: media.seasons.some(
(season) => season.status !== MediaStatus.UNKNOWN
)
? MediaStatus.PARTIALLY_AVAILABLE
: MediaStatus.UNKNOWN;

await mediaRepository.save(media);
} else {
Expand Down

0 comments on commit 136d874

Please sign in to comment.