@@ -14,7 +14,7 @@ import MediaRequest from '@server/entity/MediaRequest';
1414import type Season from '@server/entity/Season' ;
1515import { User } from '@server/entity/User' ;
1616import type { RadarrSettings , SonarrSettings } from '@server/lib/settings' ;
17- import { getSettings } from '@server/lib/settings' ;
17+ import { getSettings , MetadataProviderType } from '@server/lib/settings' ;
1818import logger from '@server/logger' ;
1919import { getHostname } from '@server/utils/getHostname' ;
2020
@@ -807,6 +807,12 @@ class AvailabilitySync {
807807 let seasonExists = false ;
808808 const episodeRepository = getRepository ( Episode ) ;
809809
810+ const settings = getSettings ( ) ;
811+ const shouldTrackEpisodes =
812+ settings . main . enableEpisodeAvailability &&
813+ ( settings . metadataSettings . tv === MetadataProviderType . TVDB ||
814+ settings . metadataSettings . anime === MetadataProviderType . TVDB ) ;
815+
810816 // Check each sonarr instance to see if the media still exists
811817 // If found, we will assume the media exists and prevent removal
812818 // We can use the cache we built when we fetched the series with mediaExistsInSonarr
@@ -855,48 +861,50 @@ class AvailabilitySync {
855861 return seasonExists ;
856862 }
857863
858- const episodes = await sonarrApi . getEpisodesBySeriesId ( serviceId ) ;
864+ if ( shouldTrackEpisodes ) {
865+ const episodes = await sonarrApi . getEpisodesBySeriesId ( serviceId ) ;
859866
860- for ( const ep of episodes ) {
861- if ( ep . seasonNumber === season . seasonNumber ) {
862- const existingEpisode = await episodeRepository . findOne ( {
863- where : {
864- episodeNumber : ep . episodeNumber ,
865- season : { id : season . id } ,
866- } ,
867- relations : [ 'season' ] ,
868- } ) ;
867+ for ( const ep of episodes ) {
868+ if ( ep . seasonNumber === season . seasonNumber ) {
869+ const existingEpisode = await episodeRepository . findOne ( {
870+ where : {
871+ episodeNumber : ep . episodeNumber ,
872+ season : { id : season . id } ,
873+ } ,
874+ relations : [ 'season' ] ,
875+ } ) ;
869876
870- if ( existingEpisode ) {
871- existingEpisode [ is4k ? 'status4k' : 'status' ] = ep . hasFile
872- ? MediaStatus . AVAILABLE
873- : MediaStatus . UNKNOWN ;
874- await episodeRepository . save ( existingEpisode ) ;
875- } else {
876- const newEpisode = new Episode ( ) ;
877- newEpisode . episodeNumber = ep . episodeNumber ;
878- newEpisode . status = is4k
879- ? MediaStatus . UNKNOWN
880- : ep . hasFile
881- ? MediaStatus . AVAILABLE
882- : MediaStatus . UNKNOWN ;
883- newEpisode . status4k = is4k
884- ? ep . hasFile
877+ if ( existingEpisode ) {
878+ existingEpisode [ is4k ? 'status4k' : 'status' ] = ep . hasFile
885879 ? MediaStatus . AVAILABLE
886- : MediaStatus . UNKNOWN
887- : MediaStatus . UNKNOWN ;
888- newEpisode . season = Promise . resolve ( season ) ;
889-
890- try {
891- await episodeRepository . save ( newEpisode ) ;
892- } catch ( saveError ) {
893- logger . error ( 'Failed to save new episode' , {
894- label : 'Availability Sync' ,
895- errorMessage : saveError . message ,
896- tvId : media . tmdbId ,
897- seasonNumber : season . seasonNumber ,
898- episodeNumber : ep . episodeNumber ,
899- } ) ;
880+ : MediaStatus . UNKNOWN ;
881+ await episodeRepository . save ( existingEpisode ) ;
882+ } else {
883+ const newEpisode = new Episode ( ) ;
884+ newEpisode . episodeNumber = ep . episodeNumber ;
885+ newEpisode . status = is4k
886+ ? MediaStatus . UNKNOWN
887+ : ep . hasFile
888+ ? MediaStatus . AVAILABLE
889+ : MediaStatus . UNKNOWN ;
890+ newEpisode . status4k = is4k
891+ ? ep . hasFile
892+ ? MediaStatus . AVAILABLE
893+ : MediaStatus . UNKNOWN
894+ : MediaStatus . UNKNOWN ;
895+ newEpisode . season = Promise . resolve ( season ) ;
896+
897+ try {
898+ await episodeRepository . save ( newEpisode ) ;
899+ } catch ( saveError ) {
900+ logger . error ( 'Failed to save new episode' , {
901+ label : 'Availability Sync' ,
902+ errorMessage : saveError . message ,
903+ tvId : media . tmdbId ,
904+ seasonNumber : season . seasonNumber ,
905+ episodeNumber : ep . episodeNumber ,
906+ } ) ;
907+ }
900908 }
901909 }
902910 }
0 commit comments