diff --git a/server/lib/availabilitySync.ts b/server/lib/availabilitySync.ts index 9bdf51c4..bd01b457 100644 --- a/server/lib/availabilitySync.ts +++ b/server/lib/availabilitySync.ts @@ -300,7 +300,6 @@ class AvailabilitySync { // Sonarr finds that season, we will change the final seasons value // to true. const filteredSeasonsMap: Map = new Map(); - media.seasons .filter( (season) => @@ -311,48 +310,7 @@ class AvailabilitySync { filteredSeasonsMap.set(season.seasonNumber, false) ); - // non-4k - const finalSeasons: Map = new Map(); - - if (mediaServerType === MediaServerType.PLEX) { - plexSeasonsMap.forEach((value, key) => { - finalSeasons.set(key, value); - }); - - filteredSeasonsMap.forEach((value, key) => { - if (!finalSeasons.has(key)) { - finalSeasons.set(key, value); - } - }); - - sonarrSeasonsMap.forEach((value, key) => { - if (!finalSeasons.has(key)) { - finalSeasons.set(key, value); - } - }); - } else if ( - mediaServerType === MediaServerType.JELLYFIN || - mediaServerType === MediaServerType.EMBY - ) { - jellyfinSeasonsMap.forEach((value, key) => { - finalSeasons.set(key, value); - }); - - filteredSeasonsMap.forEach((value, key) => { - if (!finalSeasons.has(key)) { - finalSeasons.set(key, value); - } - }); - - sonarrSeasonsMap.forEach((value, key) => { - if (!finalSeasons.has(key)) { - finalSeasons.set(key, value); - } - }); - } - const filteredSeasonsMap4k: Map = new Map(); - media.seasons .filter( (season) => @@ -363,44 +321,32 @@ class AvailabilitySync { filteredSeasonsMap4k.set(season.seasonNumber, false) ); - // 4k - const finalSeasons4k: Map = new Map(); + let finalSeasons: Map; + let finalSeasons4k: Map; if (mediaServerType === MediaServerType.PLEX) { - plexSeasonsMap4k.forEach((value, key) => { - finalSeasons4k.set(key, value); - }); - - filteredSeasonsMap4k.forEach((value, key) => { - if (!finalSeasons4k.has(key)) { - finalSeasons4k.set(key, value); - } - }); - - sonarrSeasonsMap4k.forEach((value, key) => { - if (!finalSeasons4k.has(key)) { - finalSeasons4k.set(key, value); - } - }); - } else if ( - mediaServerType === MediaServerType.JELLYFIN || - mediaServerType === MediaServerType.EMBY - ) { - jellyfinSeasonsMap4k.forEach((value, key) => { - finalSeasons4k.set(key, value); - }); - - filteredSeasonsMap4k.forEach((value, key) => { - if (!finalSeasons4k.has(key)) { - finalSeasons4k.set(key, value); - } - }); - - sonarrSeasonsMap4k.forEach((value, key) => { - if (!finalSeasons4k.has(key)) { - finalSeasons4k.set(key, value); - } - }); + finalSeasons = new Map([ + ...filteredSeasonsMap, + ...plexSeasonsMap, + ...sonarrSeasonsMap, + ]); + finalSeasons4k = new Map([ + ...filteredSeasonsMap4k, + ...plexSeasonsMap4k, + ...sonarrSeasonsMap4k, + ]); + } else { + // Jellyfin/Emby + finalSeasons = new Map([ + ...filteredSeasonsMap, + ...jellyfinSeasonsMap, + ...sonarrSeasonsMap, + ]); + finalSeasons4k = new Map([ + ...filteredSeasonsMap4k, + ...jellyfinSeasonsMap4k, + ...sonarrSeasonsMap4k, + ]); } if ( @@ -993,8 +939,8 @@ class AvailabilitySync { existsInJellyfin = true; } } catch (ex) { - if (!ex.message.includes('404' || '500')) { - existsInJellyfin = false; + if (!ex.message.includes('404') && !ex.message.includes('500')) { + existsInJellyfin = true; preventSeasonSearch = true; logger.debug( `Failure retrieving the ${is4k ? '4K' : 'non-4K'} ${