diff --git a/services/arr/recyclarr.nix b/services/arr/recyclarr.nix index 93312d3..62b3359 100644 --- a/services/arr/recyclarr.nix +++ b/services/arr/recyclarr.nix @@ -52,24 +52,31 @@ in { template = "radarr-custom-formats-remux-web-2160p"; } ]; - # Extend the template's quality profile with lower-resolution fallbacks + # Group WEB 2160p with 1080p in the same quality tier so custom + # format scores -- not quality ranking -- decide the winner. + # Native 4K with HDR/DV from good release groups scores high and + # wins; AI upscales get -10000 from the Upscaled CF and are + # blocked by min_format_score. Untagged upscales from unknown + # groups (score ~0) lose to well-scored 1080p (Tier 01 = +1750). quality_profiles = [ { name = "Remux + WEB 2160p"; + min_format_score = 0; + reset_unmatched_scores.enabled = true; + upgrade = { + allowed = true; + until_quality = "Remux-2160p"; + until_score = 10000; + }; qualities = [ { name = "Remux-2160p"; } { - name = "WEB 2160p"; + name = "WEB/Bluray"; qualities = [ "WEBDL-2160p" "WEBRip-2160p" - ]; - } - { name = "Remux-1080p"; } - { name = "Bluray-1080p"; } - { - name = "WEB 1080p"; - qualities = [ + "Remux-1080p" + "Bluray-1080p" "WEBDL-1080p" "WEBRip-1080p" ]; @@ -96,11 +103,14 @@ in { name = "Remux + WEB 2160p"; } ]; } - # Upscaled - block releases upscaled to 2160p from lower resolution sources + # Upscaled - block AI upscales and other upscaled-to-2160p releases { trash_ids = [ "bfd8eb01832d646a0a89c4deb46f8564" ]; assign_scores_to = [ - { name = "Remux + WEB 2160p"; } + { + name = "Remux + WEB 2160p"; + score = -10000; + } ]; } ]; @@ -115,23 +125,30 @@ in { template = "sonarr-v4-custom-formats-web-2160p"; } ]; - # Extend the template's quality profile with lower-resolution fallbacks + # Group WEB 2160p with 1080p in the same quality tier so custom + # format scores -- not quality ranking -- decide the winner. + # Native 4K with HDR/DV from good release groups scores high and + # wins; AI upscales get -10000 from the Upscaled CF and are + # blocked by min_format_score. Untagged upscales from unknown + # groups (score ~0) lose to well-scored 1080p (Tier 01 = +1750). quality_profiles = [ { name = "WEB-2160p"; + min_format_score = 0; + reset_unmatched_scores.enabled = true; + upgrade = { + allowed = true; + until_quality = "WEB/Bluray"; + until_score = 10000; + }; qualities = [ { - name = "WEB 2160p"; + name = "WEB/Bluray"; qualities = [ "WEBDL-2160p" "WEBRip-2160p" - ]; - } - { name = "Bluray-1080p Remux"; } - { name = "Bluray-1080p"; } - { - name = "WEB 1080p"; - qualities = [ + "Bluray-1080p Remux" + "Bluray-1080p" "WEBDL-1080p" "WEBRip-1080p" ]; @@ -158,11 +175,14 @@ in { name = "WEB-2160p"; } ]; } - # Upscaled - block releases upscaled to 2160p from lower resolution sources + # Upscaled - block AI upscales and other upscaled-to-2160p releases { trash_ids = [ "23297a736ca77c0fc8e70f8edd7ee56c" ]; assign_scores_to = [ - { name = "WEB-2160p"; } + { + name = "WEB-2160p"; + score = -10000; + } ]; } ];