diff --git a/VERSION b/VERSION
index 3a015420..5d518999 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.18.3-develop61
+1.18.3-develop62
diff --git a/docs/config/radarr.md b/docs/config/radarr.md
index 046a2194..ab9bffb0 100644
--- a/docs/config/radarr.md
+++ b/docs/config/radarr.md
@@ -35,6 +35,7 @@ radarr:
| `add_missing` | Adds all missing movies found from all collections to Radarr.
Use the `radarr_add_missing` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to add missing per collection.
**boolean:** true or false | false | ❌ |
| `add_existing` | Adds all existing movies in collections to Radarr.
Use the `radarr_add_existing` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to add existing per collection.
**boolean:** true or false | false | ❌ |
| `upgrade_existing` | Upgrades all existing movies in collections to match the Quality Profile of the collection.
Use the `radarr_upgrade_existing` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.
**boolean:** true or false | false | ❌ |
+| `ignore_cache` | Ignores PMM's cache when adding items to Radarr.
Use the `radarr_ignore_cache` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to ignore per collection.
**boolean:** true or false | false | ❌ |
| `root_folder_path` | Default Root Folder Path to use when adding new movies.
Use the `radarr_folder` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | ✅ |
| `monitor` | Monitor the movie when adding new movies.
Use the `radarr_monitor` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Monitor value per collection.
**Options:** `movie`, `collection`, `none` | true | ❌ |
| `availability` | Default Minimum Availability to use when adding new movies.
Use the `radarr_availability` [Radarr Details](../metadata/details/arr.md#radarr-definition-settings) in the collection definition to set the Availability per collection.
**Options:** `announced`, `cinemas`, `released`, `db` | `announced` | ✅ |
diff --git a/docs/config/sonarr.md b/docs/config/sonarr.md
index b5aec798..3d29ece9 100644
--- a/docs/config/sonarr.md
+++ b/docs/config/sonarr.md
@@ -38,6 +38,7 @@ sonarr:
| `add_missing` | Adds all missing shows found from all collections to Sonarr.
Use the `sonarr_add_missing` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to add missing per collection.
**boolean:** true or false | false | ❌ |
| `add_existing` | Adds all existing shows in collections to Sonarr.
Use the `sonarr_add_existing` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to add existing per collection.
**boolean:** true or false | false | ❌ |
| `upgrade_existing` | Upgrades all existing shows in collections to match the Quality Profile of the collection.
Use the `sonarr_upgrade_existing` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.
**boolean:** true or false | false | ❌ |
+| `ignore_cache` | Ignores PMM's cache when adding items to Sonarr.
Use the `sonarr_ignore_cache` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to ignore per collection.
**boolean:** true or false | false | ❌ |
| `root_folder_path` | Default Root Folder Path to use when adding new shows.
Use the `sonarr_folder` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | ✅ |
| `monitor` | Default Monitor to use when adding new shows.
Use the `sonarr_monitor` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Monitor value per collection.
**Values:**
`all` | All episodes except specials |
`future` | Episodes that have not aired yet |
`missing` | Episodes that do not have files or have not aired yet |
`existing` | Episodes that have files or have not aired yet |
`pilot` | The first episode, all others will be ignored |
`first` | All episodes of the first season, all others will be ignored |
`latest` | All episodes of the latest season and future seasons |
`none` | No episodes |
| `all` | ❌ |
| `quality_profile` | Default Quality Profile to use when adding new shows.
Use the `sonarr_quality` [Sonarr Details](../metadata/details/arr.md#sonarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | ✅ |
diff --git a/docs/metadata/details/arr.md b/docs/metadata/details/arr.md
index fffe7fda..706ee0ab 100644
--- a/docs/metadata/details/arr.md
+++ b/docs/metadata/details/arr.md
@@ -9,6 +9,7 @@ All the following attributes can override the global/library [Radarr](../../conf
| `radarr_add_missing` | **Description:** Override Radarr `add_missing` attribute
**Values:** `true` or `false` |
| `radarr_add_existing` | **Description:** Override Radarr `add_existing` attribute
**Values:** `true` or `false` |
| `radarr_upgrade_existing` | **Description:** Override Radarr `upgrade_existing` attribute
**Values:** `true` or `false` |
+| `radarr_ignore_cache` | **Description:** Override Radarr `ignore_cache` attribute
**Values:** `true` or `false` |
| `radarr_folder` | **Description:** Override Radarr `root_folder_path` attribute
**Values:** Folder Path |
| `radarr_monitor` | **Description:** Override Radarr `monitor` attribute
**Values:** `movie`, `collection`, or `none` |
| `radarr_availability` | **Description:** Override Radarr `availability` attribute
**Values:** `announced`, `cinemas`, `released`, `db` |
@@ -28,6 +29,7 @@ All the following attributes can override the global/library [Sonarr](../../conf
| `sonarr_add_missing` | **Description:** Override Sonarr `add_missing` attribute
**Values:** `true` or `false` |
| `sonarr_add_existing` | **Description:** Override Sonarr `add_existing` attribute
**Values:** `true` or `false` |
| `sonarr_upgrade_existing` | **Description:** Override Sonarr `upgrade_existing` attribute
**Values:** `true` or `false` |
+| `sonarr_ignore_cache` | **Description:** Override Sonarr `ignore_cache` attribute
**Values:** `true` or `false` |
| `sonarr_folder` | **Description:** Override Sonarr `root_folder_path` attribute
**Values:** Folder Path |
| `sonarr_monitor` | **Description:** Override Sonarr `monitor` attribute
**Values:** `all`, `future`, `missing`, `existing`, `pilot`, `first`, `latest`, `none` |
| `sonarr_quality` | **Description:** Override Sonarr `quality_profile` attribute
**Values:** Sonarr Quality Profile |
diff --git a/modules/builder.py b/modules/builder.py
index 7c9e4694..5279352b 100644
--- a/modules/builder.py
+++ b/modules/builder.py
@@ -57,11 +57,11 @@ item_details = ["non_item_remove_label", "item_label", "item_genre", "item_editi
none_details = ["label.sync", "item_label.sync", "item_genre.sync", "radarr_taglist", "sonarr_taglist", "item_edition"]
radarr_details = [
"radarr_add_missing", "radarr_add_existing", "radarr_upgrade_existing", "radarr_folder", "radarr_monitor",
- "radarr_search", "radarr_availability", "radarr_quality", "radarr_tag", "item_radarr_tag"
+ "radarr_search", "radarr_availability", "radarr_quality", "radarr_tag", "item_radarr_tag", "radarr_ignore_cache"
]
sonarr_details = [
"sonarr_add_missing", "sonarr_add_existing", "sonarr_upgrade_existing", "sonarr_folder", "sonarr_monitor", "sonarr_language",
- "sonarr_series", "sonarr_quality", "sonarr_season", "sonarr_search", "sonarr_cutoff_search", "sonarr_tag", "item_sonarr_tag"
+ "sonarr_series", "sonarr_quality", "sonarr_season", "sonarr_search", "sonarr_cutoff_search", "sonarr_tag", "item_sonarr_tag", "sonarr_ignore_cache"
]
album_details = ["non_item_remove_label", "item_label", "item_album_sorting"]
sub_filters = [
@@ -1069,7 +1069,7 @@ class CollectionBuilder:
self.item_details[method_name] = str(method_data).lower()
def _radarr(self, method_name, method_data):
- if method_name in ["radarr_add_missing", "radarr_add_existing", "radarr_upgrade_existing", "radarr_search", "radarr_monitor"]:
+ if method_name in ["radarr_add_missing", "radarr_add_existing", "radarr_upgrade_existing", "radarr_search", "radarr_monitor", "radarr_ignore_cache"]:
self.radarr_details[method_name[7:]] = util.parse(self.Type, method_name, method_data, datatype="bool")
elif method_name == "radarr_folder":
self.radarr_details["folder"] = method_data
@@ -1088,7 +1088,7 @@ class CollectionBuilder:
self.builders.append((method_name, True))
def _sonarr(self, method_name, method_data):
- if method_name in ["sonarr_add_missing", "sonarr_add_existing", "sonarr_upgrade_existing", "sonarr_season", "sonarr_search", "sonarr_cutoff_search"]:
+ if method_name in ["sonarr_add_missing", "sonarr_add_existing", "sonarr_upgrade_existing", "sonarr_season", "sonarr_search", "sonarr_cutoff_search", "sonarr_ignore_cache"]:
self.sonarr_details[method_name[7:]] = util.parse(self.Type, method_name, method_data, datatype="bool")
elif method_name in ["sonarr_folder", "sonarr_quality", "sonarr_language"]:
self.sonarr_details[method_name[7:]] = method_data
diff --git a/modules/config.py b/modules/config.py
index ed21e72d..f699b5f6 100644
--- a/modules/config.py
+++ b/modules/config.py
@@ -640,6 +640,7 @@ class ConfigFile:
"add_missing": check_for_attribute(self.data, "add_missing", parent="radarr", var_type="bool", default=False),
"add_existing": check_for_attribute(self.data, "add_existing", parent="radarr", var_type="bool", default=False),
"upgrade_existing": check_for_attribute(self.data, "upgrade_existing", parent="radarr", var_type="bool", default=False),
+ "ignore_cache": check_for_attribute(self.data, "ignore_cache", parent="radarr", var_type="bool", default=False),
"root_folder_path": check_for_attribute(self.data, "root_folder_path", parent="radarr", default_is_none=True),
"monitor": check_for_attribute(self.data, "monitor", parent="radarr", var_type="bool", default=True),
"availability": check_for_attribute(self.data, "availability", parent="radarr", test_list=radarr.availability_descriptions, default="announced"),
@@ -655,6 +656,7 @@ class ConfigFile:
"add_missing": check_for_attribute(self.data, "add_missing", parent="sonarr", var_type="bool", default=False),
"add_existing": check_for_attribute(self.data, "add_existing", parent="sonarr", var_type="bool", default=False),
"upgrade_existing": check_for_attribute(self.data, "upgrade_existing", parent="sonarr", var_type="bool", default=False),
+ "ignore_cache": check_for_attribute(self.data, "ignore_cache", parent="sonarr", var_type="bool", default=False),
"root_folder_path": check_for_attribute(self.data, "root_folder_path", parent="sonarr", default_is_none=True),
"monitor": check_for_attribute(self.data, "monitor", parent="sonarr", test_list=sonarr.monitor_descriptions, default="all"),
"quality_profile": check_for_attribute(self.data, "quality_profile", parent="sonarr", default_is_none=True),
@@ -923,6 +925,7 @@ class ConfigFile:
"add_missing": check_for_attribute(lib, "add_missing", parent="radarr", var_type="bool", default=self.general["radarr"]["add_missing"], save=False),
"add_existing": check_for_attribute(lib, "add_existing", parent="radarr", var_type="bool", default=self.general["radarr"]["add_existing"], save=False),
"upgrade_existing": check_for_attribute(lib, "upgrade_existing", parent="radarr", var_type="bool", default=self.general["radarr"]["upgrade_existing"], save=False),
+ "ignore_cache": check_for_attribute(lib, "ignore_cache", parent="radarr", var_type="bool", default=self.general["radarr"]["ignore_cache"], save=False),
"root_folder_path": check_for_attribute(lib, "root_folder_path", parent="radarr", default=self.general["radarr"]["root_folder_path"], req_default=True, save=False),
"monitor": check_for_attribute(lib, "monitor", parent="radarr", var_type="bool", default=self.general["radarr"]["monitor"], save=False),
"availability": check_for_attribute(lib, "availability", parent="radarr", test_list=radarr.availability_descriptions, default=self.general["radarr"]["availability"], save=False),
@@ -951,6 +954,7 @@ class ConfigFile:
"add_missing": check_for_attribute(lib, "add_missing", parent="sonarr", var_type="bool", default=self.general["sonarr"]["add_missing"], save=False),
"add_existing": check_for_attribute(lib, "add_existing", parent="sonarr", var_type="bool", default=self.general["sonarr"]["add_existing"], save=False),
"upgrade_existing": check_for_attribute(lib, "upgrade_existing", parent="sonarr", var_type="bool", default=self.general["sonarr"]["upgrade_existing"], save=False),
+ "ignore_cache": check_for_attribute(lib, "ignore_cache", parent="sonarr", var_type="bool", default=self.general["sonarr"]["ignore_cache"], save=False),
"root_folder_path": check_for_attribute(lib, "root_folder_path", parent="sonarr", default=self.general["sonarr"]["root_folder_path"], req_default=True, save=False),
"monitor": check_for_attribute(lib, "monitor", parent="sonarr", test_list=sonarr.monitor_descriptions, default=self.general["sonarr"]["monitor"], save=False),
"quality_profile": check_for_attribute(lib, "quality_profile", parent="sonarr", default=self.general["sonarr"]["quality_profile"], req_default=True, save=False),
diff --git a/modules/radarr.py b/modules/radarr.py
index bae74d94..d756ff3f 100644
--- a/modules/radarr.py
+++ b/modules/radarr.py
@@ -38,6 +38,7 @@ class Radarr:
self.search = params["search"]
self.radarr_path = params["radarr_path"] if params["radarr_path"] and params["plex_path"] else ""
self.plex_path = params["plex_path"] if params["radarr_path"] and params["plex_path"] else ""
+ self.ignore_cache = params["ignore_cache"]
def add_tmdb(self, tmdb_ids, **options):
_ids = []
@@ -55,6 +56,7 @@ class Radarr:
logger.debug(tmdb_id)
logger.trace("")
upgrade_existing = options["upgrade_existing"] if "upgrade_existing" in options else self.upgrade_existing
+ ignore_cache = options["ignore_cache"] if "ignore_cache" in options else self.ignore_cache
folder = options["folder"] if "folder" in options else self.root_folder_path
monitor = options["monitor"] if "monitor" in options else self.monitor
availability = availability_translation[options["availability"] if "availability" in options else self.availability]
@@ -62,6 +64,7 @@ class Radarr:
tags = options["tag"] if "tag" in options else self.tag
search = options["search"] if "search" in options else self.search
logger.trace(f"Upgrade Existing: {upgrade_existing}")
+ logger.trace(f"Ignore Cache: {ignore_cache}")
logger.trace(f"Folder: {folder}")
logger.trace(f"Monitor: {monitor}")
logger.trace(f"Availability: {availability}")
@@ -96,7 +99,7 @@ class Radarr:
tmdb_id = item[0] if isinstance(item, tuple) else item
logger.ghost(f"Loading TMDb ID {i}/{len(tmdb_ids)} ({tmdb_id})")
try:
- if self.config.Cache:
+ if self.config.Cache and not ignore_cache:
_id = self.config.Cache.query_radarr_adds(tmdb_id, self.library.original_mapping_name)
if _id:
skipped.append(item)
diff --git a/modules/sonarr.py b/modules/sonarr.py
index 9840b025..2cd18b36 100644
--- a/modules/sonarr.py
+++ b/modules/sonarr.py
@@ -58,6 +58,7 @@ class Sonarr:
self.cutoff_search = params["cutoff_search"]
self.sonarr_path = params["sonarr_path"] if params["sonarr_path"] and params["plex_path"] else ""
self.plex_path = params["plex_path"] if params["sonarr_path"] and params["plex_path"] else ""
+ self.ignore_cache = params["ignore_cache"]
def add_tvdb(self, tvdb_ids, **options):
_ids = []
@@ -74,6 +75,7 @@ class Sonarr:
for tvdb_id in _paths:
logger.debug(tvdb_id)
upgrade_existing = options["upgrade_existing"] if "upgrade_existing" in options else self.upgrade_existing
+ ignore_cache = options["ignore_cache"] if "ignore_cache" in options else self.ignore_cache
folder = options["folder"] if "folder" in options else self.root_folder_path
monitor = monitor_translation[options["monitor"] if "monitor" in options else self.monitor]
quality_profile = options["quality"] if "quality" in options else self.quality_profile
@@ -85,6 +87,7 @@ class Sonarr:
search = options["search"] if "search" in options else self.search
cutoff_search = options["cutoff_search"] if "cutoff_search" in options else self.cutoff_search
logger.trace(f"Upgrade Existing: {upgrade_existing}")
+ logger.trace(f"Ignore Cache: {ignore_cache}")
logger.trace(f"Folder: {folder}")
logger.trace(f"Monitor: {monitor}")
logger.trace(f"Quality Profile: {quality_profile}")
@@ -120,7 +123,7 @@ class Sonarr:
tvdb_id = item[0] if isinstance(item, tuple) else item
logger.ghost(f"Loading TVDb ID {i}/{len(tvdb_ids)} ({tvdb_id})")
try:
- if self.config.Cache:
+ if self.config.Cache and not ignore_cache:
_id = self.config.Cache.query_sonarr_adds(tvdb_id, self.library.original_mapping_name)
if _id:
skipped.append(item)