diff --git a/src/main/resources/config-template.yaml b/src/main/resources/config-template.yaml index 7224b23..528700a 100644 --- a/src/main/resources/config-template.yaml +++ b/src/main/resources/config-template.yaml @@ -54,6 +54,9 @@ ## If not set, will grab the first one it finds on Radarr # rootFolder: "/root/folder/location" +## Defines when your Radarr should look for this particular item. DEFAULT: "released". POSSIBLE VALUES: "tba", "announced", "inCinemas", "released", "deleted" +# minimumAvailability: "released" + ## Boolean flag to bypass movies that are on the Radarr Exclusion List # bypassIgnored: false diff --git a/src/main/scala/configuration/Configuration.scala b/src/main/scala/configuration/Configuration.scala index f176788..eae46e3 100644 --- a/src/main/scala/configuration/Configuration.scala +++ b/src/main/scala/configuration/Configuration.scala @@ -28,6 +28,7 @@ case class RadarrConfiguration( radarrApiKey: String, radarrQualityProfileId: Int, radarrRootFolder: String, + radarrMinimumAvailability: String, radarrBypassIgnored: Boolean, radarrTagIds: Set[Int] ) diff --git a/src/main/scala/configuration/ConfigurationRedactor.scala b/src/main/scala/configuration/ConfigurationRedactor.scala index c1ab3e1..da4d944 100644 --- a/src/main/scala/configuration/ConfigurationRedactor.scala +++ b/src/main/scala/configuration/ConfigurationRedactor.scala @@ -20,6 +20,7 @@ object ConfigurationRedactor { | radarrApiKey: REDACTED | radarrQualityProfileId: ${config.radarrConfiguration.radarrQualityProfileId} | radarrRootFolder: ${config.radarrConfiguration.radarrRootFolder} + | radarrMinimumAvailability: ${config.radarrConfiguration.radarrMinimumAvailability} | radarrBypassIgnored: ${config.radarrConfiguration.radarrBypassIgnored} | radarrTagIds: ${config.radarrConfiguration.radarrTagIds.mkString(",")} | diff --git a/src/main/scala/configuration/ConfigurationUtils.scala b/src/main/scala/configuration/ConfigurationUtils.scala index dfff352..a5d3f5d 100644 --- a/src/main/scala/configuration/ConfigurationUtils.scala +++ b/src/main/scala/configuration/ConfigurationUtils.scala @@ -35,8 +35,9 @@ object ConfigurationUtils { sonarrSeasonMonitoring = configReader.getConfigOption(Keys.sonarrSeasonMonitoring).getOrElse("all") radarrConfig <- getRadarrConfig(configReader, client) (radarrBaseUrl, radarrApiKey, radarrQualityProfileId, radarrRootFolder, radarrTagIds) = radarrConfig - radarrBypassIgnored = configReader.getConfigOption(Keys.radarrBypassIgnored).exists(_.toBoolean) - plexTokens = getPlexTokens(configReader) + radarrMinimumAvailability = configReader.getConfigOption(Keys.radarrMinimumAvailability).getOrElse("released") + radarrBypassIgnored = configReader.getConfigOption(Keys.radarrBypassIgnored).exists(_.toBoolean) + plexTokens = getPlexTokens(configReader) skipFriendSync = configReader.getConfigOption(Keys.skipFriendSync).flatMap(_.toBooleanOption).getOrElse(false) plexWatchlistUrls <- getPlexWatchlistUrls(client)(configReader, plexTokens, skipFriendSync) deleteMovies = configReader.getConfigOption(Keys.deleteMovies).flatMap(_.toBooleanOption).getOrElse(false) @@ -65,6 +66,7 @@ object ConfigurationUtils { radarrApiKey, radarrQualityProfileId, radarrRootFolder, + radarrMinimumAvailability, radarrBypassIgnored, radarrTagIds ), diff --git a/src/main/scala/configuration/Keys.scala b/src/main/scala/configuration/Keys.scala index 5e7ec4d..182090f 100644 --- a/src/main/scala/configuration/Keys.scala +++ b/src/main/scala/configuration/Keys.scala @@ -11,12 +11,13 @@ private[configuration] object Keys { val sonarrSeasonMonitoring = "sonarr.seasonMonitoring" val sonarrTags = "sonarr.tags" - val radarrBaseUrl = "radarr.baseUrl" - val radarrApiKey = "radarr.apikey" - val radarrQualityProfile = "radarr.qualityProfile" - val radarrRootFolder = "radarr.rootFolder" - val radarrBypassIgnored = "radarr.bypassIgnored" - val radarrTags = "radarr.tags" + val radarrBaseUrl = "radarr.baseUrl" + val radarrApiKey = "radarr.apikey" + val radarrQualityProfile = "radarr.qualityProfile" + val radarrRootFolder = "radarr.rootFolder" + val radarrMinimumAvailability = "radarr.minimumAvailability" + val radarrBypassIgnored = "radarr.bypassIgnored" + val radarrTags = "radarr.tags" val plexWatchlist1 = "plex.watchlist1" val plexWatchlist2 = "plex.watchlist2" diff --git a/src/main/scala/radarr/RadarrPost.scala b/src/main/scala/radarr/RadarrPost.scala index 7a38406..7a3943f 100644 --- a/src/main/scala/radarr/RadarrPost.scala +++ b/src/main/scala/radarr/RadarrPost.scala @@ -5,6 +5,7 @@ private case class RadarrPost( tmdbId: Long, qualityProfileId: Int = 6, rootFolderPath: String, + minimumAvailability: String, addOptions: AddOptions = AddOptions(), tags: List[Int] = List.empty[Int] ) diff --git a/src/main/scala/radarr/RadarrUtils.scala b/src/main/scala/radarr/RadarrUtils.scala index 315f17b..bc282db 100644 --- a/src/main/scala/radarr/RadarrUtils.scala +++ b/src/main/scala/radarr/RadarrUtils.scala @@ -35,6 +35,7 @@ trait RadarrUtils extends RadarrConversions { item.getTmdbId.getOrElse(0L), config.radarrQualityProfileId, config.radarrRootFolder, + config.radarrMinimumAvailability, tags = config.radarrTagIds.toList )