From de524993099590eb4f323ff1d501b34cf7340df2 Mon Sep 17 00:00:00 2001 From: Ahmed Siddiqui Date: Thu, 9 May 2024 16:08:30 -0700 Subject: [PATCH] Add radarr config option for setting minimum availability --- src/main/resources/config-template.yaml | 1 + src/main/scala/configuration/Configuration.scala | 1 + .../scala/configuration/ConfigurationRedactor.scala | 1 + .../scala/configuration/ConfigurationUtils.scala | 6 ++++-- src/main/scala/configuration/Keys.scala | 13 +++++++------ src/main/scala/radarr/RadarrPost.scala | 1 + src/main/scala/radarr/RadarrUtils.scala | 1 + 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/resources/config-template.yaml b/src/main/resources/config-template.yaml index b55fd7c..4c1f35a 100644 --- a/src/main/resources/config-template.yaml +++ b/src/main/resources/config-template.yaml @@ -34,6 +34,7 @@ # apikey: "YOUR-API-KEY" # qualityProfile: "Your Desired Radarr Quality Profile" # If not set, will grab the first one it finds on Radarr # rootFolder: "/root/folder/location" # If not set, will grab the first one it finds on Radarr. DEFAULT: false +# minimumAvailability: "released" # Defines when your Radarr should look for this particular item. DEFAULT: "released". POSSIBLE VALUES: "tba", "announced", "inCinemas", "released", "deleted" # bypassIgnored: false # Boolean flag to bypass movies that are on the Radarr Exclusion List # tags: # - watchlistarr diff --git a/src/main/scala/configuration/Configuration.scala b/src/main/scala/configuration/Configuration.scala index 632ae42..a7ee2d0 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 e2efdc4..99d2d5b 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 5eaf4ac..afde3cb 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) @@ -64,6 +65,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 af609cc..02ec2db 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 86f81cc..c427ed8 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 )