diff --git a/profiles/(Anime) Remux-1080p.yml b/profiles/(Anime) Remux-1080p.yml index 360aacc..1e3ea0a 100644 --- a/profiles/(Anime) Remux-1080p.yml +++ b/profiles/(Anime) Remux-1080p.yml @@ -55,6 +55,10 @@ qualities: name: Bluray-1080p - id: 8 name: Remux-1080p +upgrade_until: + name: Remux 1080p + id: -4 + description: '' custom_formats: - name: Anime BD Tier 01 (Top SeaDex Muxers) score: 1400 diff --git a/profiles/(French MULTi.VO) HD Bluray + WEB.yml b/profiles/(French MULTi.VO) HD Bluray + WEB.yml index 03fd9ea..99c664d 100644 --- a/profiles/(French MULTi.VO) HD Bluray + WEB.yml +++ b/profiles/(French MULTi.VO) HD Bluray + WEB.yml @@ -20,6 +20,10 @@ qualities: name: WEBRip-1080p - id: 10 name: Bluray-1080p +upgrade_until: + name: Bluray|WEB 1080p + id: -1 + description: '' custom_formats: - name: 'Language: Not Original' score: -10000 diff --git a/profiles/(French MULTi.VO) HD Remux (1080p).yml b/profiles/(French MULTi.VO) HD Remux (1080p).yml index 9f732b7..645f9d2 100644 --- a/profiles/(French MULTi.VO) HD Remux (1080p).yml +++ b/profiles/(French MULTi.VO) HD Remux (1080p).yml @@ -21,6 +21,9 @@ qualities: name: Bluray-1080p - name: Remux-1080p id: 8 +upgrade_until: + name: Remux-1080p + id: 8 custom_formats: - name: 'Language: Not Original' score: -10000 diff --git a/profiles/(French MULTi.VO) UHD Bluray + WEB.yml b/profiles/(French MULTi.VO) UHD Bluray + WEB.yml index 333f990..7fe49c3 100644 --- a/profiles/(French MULTi.VO) UHD Bluray + WEB.yml +++ b/profiles/(French MULTi.VO) UHD Bluray + WEB.yml @@ -21,6 +21,10 @@ qualities: name: WEBRip-2160p - id: 4 name: Bluray-2160p +upgrade_until: + name: Bluray|WEB 2160p + id: -1 + description: '' custom_formats: - name: 'Language: Not Original' score: -10000 diff --git a/profiles/(French MULTi.VO) UHD Remux (2160p).yml b/profiles/(French MULTi.VO) UHD Remux (2160p).yml index 2815153..2f05119 100644 --- a/profiles/(French MULTi.VO) UHD Remux (2160p).yml +++ b/profiles/(French MULTi.VO) UHD Remux (2160p).yml @@ -21,6 +21,9 @@ qualities: name: Bluray-2160p - name: Remux-2160p id: 3 +upgrade_until: + name: Remux-2160p + id: 3 custom_formats: - name: 'Language: Not Original' score: -10000 diff --git a/profiles/(German) HD Bluray + WEB.yml b/profiles/(German) HD Bluray + WEB.yml index 889dff1..38425ea 100644 --- a/profiles/(German) HD Bluray + WEB.yml +++ b/profiles/(German) HD Bluray + WEB.yml @@ -25,6 +25,10 @@ qualities: name: WEBRip-1080p - id: 10 name: Bluray-1080p +upgrade_until: + name: Merged QPs + id: -1 + description: '' custom_formats: - name: German 1080p Booster score: 650 diff --git a/profiles/(German) HD Remux + WEB.yml b/profiles/(German) HD Remux + WEB.yml index 05ba3f4..0717dc6 100644 --- a/profiles/(German) HD Remux + WEB.yml +++ b/profiles/(German) HD Remux + WEB.yml @@ -18,6 +18,10 @@ qualities: name: WEBRip-1080p - id: 8 name: Remux-1080p +upgrade_until: + name: Merged QPs + id: -1 + description: '' custom_formats: - name: German 1080p Booster score: 650 diff --git a/profiles/(German) Remux + WEB 2160p.yml b/profiles/(German) Remux + WEB 2160p.yml index c60fe51..759e4e0 100644 --- a/profiles/(German) Remux + WEB 2160p.yml +++ b/profiles/(German) Remux + WEB 2160p.yml @@ -18,6 +18,10 @@ qualities: name: WEBDL-2160p - id: 3 name: Remux-2160p +upgrade_until: + name: Merged QPs + id: -1 + description: '' custom_formats: - name: German 1080p Booster score: 650 diff --git a/profiles/(German) UHD Bluray + WEB (Alternative).yml b/profiles/(German) UHD Bluray + WEB (Alternative).yml index 95c701b..6f46991 100644 --- a/profiles/(German) UHD Bluray + WEB (Alternative).yml +++ b/profiles/(German) UHD Bluray + WEB (Alternative).yml @@ -31,6 +31,10 @@ qualities: name: WEBDL-2160p - id: 4 name: Bluray-2160p +upgrade_until: + name: Merged QPs + id: -1 + description: '' custom_formats: - name: German 1080p Booster score: 650 diff --git a/profiles/(German) UHD Bluray + WEB.yml b/profiles/(German) UHD Bluray + WEB.yml index 70356ee..a244b24 100644 --- a/profiles/(German) UHD Bluray + WEB.yml +++ b/profiles/(German) UHD Bluray + WEB.yml @@ -18,6 +18,10 @@ qualities: name: WEBDL-2160p - id: 4 name: Bluray-2160p +upgrade_until: + name: Merged QPs + id: -1 + description: '' custom_formats: - name: German 1080p Booster score: 650 diff --git a/profiles/(SQP) SQP-1 (1080p).yml b/profiles/(SQP) SQP-1 (1080p).yml index d085f05..9bfbe0b 100644 --- a/profiles/(SQP) SQP-1 (1080p).yml +++ b/profiles/(SQP) SQP-1 (1080p).yml @@ -30,6 +30,10 @@ qualities: name: WEBRip-1080p - id: 10 name: Bluray-1080p +upgrade_until: + name: Bluray|WEB-1080p + id: -1 + description: '' custom_formats: - name: TrueHD ATMOS score: -10000 diff --git a/profiles/(SQP) SQP-1 (2160p).yml b/profiles/(SQP) SQP-1 (2160p).yml index 755a29f..178b0c3 100644 --- a/profiles/(SQP) SQP-1 (2160p).yml +++ b/profiles/(SQP) SQP-1 (2160p).yml @@ -40,6 +40,9 @@ qualities: name: WEBRip-2160p - name: Bluray-2160p id: 4 +upgrade_until: + name: Bluray-2160p + id: 4 custom_formats: - name: TrueHD ATMOS score: -10000 diff --git a/profiles/(SQP) SQP-1 WEB (1080p).yml b/profiles/(SQP) SQP-1 WEB (1080p).yml index 4cf3443..553441b 100644 --- a/profiles/(SQP) SQP-1 WEB (1080p).yml +++ b/profiles/(SQP) SQP-1 WEB (1080p).yml @@ -24,6 +24,10 @@ qualities: name: WEBRip-1080p - id: 10 name: Bluray-1080p +upgrade_until: + name: Bluray|WEB-1080p + id: -1 + description: '' custom_formats: - name: TrueHD ATMOS score: -10000 diff --git a/profiles/(SQP) SQP-1 WEB (2160p).yml b/profiles/(SQP) SQP-1 WEB (2160p).yml index 64ba8d5..7532893 100644 --- a/profiles/(SQP) SQP-1 WEB (2160p).yml +++ b/profiles/(SQP) SQP-1 WEB (2160p).yml @@ -34,6 +34,10 @@ qualities: name: WEBRip-2160p - id: 4 name: Bluray-2160p +upgrade_until: + name: Bluray|WEB-2160p + id: -2 + description: '' custom_formats: - name: TrueHD ATMOS score: -10000 diff --git a/profiles/(SQP) SQP-2.yml b/profiles/(SQP) SQP-2.yml index c89a016..b5558a7 100644 --- a/profiles/(SQP) SQP-2.yml +++ b/profiles/(SQP) SQP-2.yml @@ -32,6 +32,10 @@ qualities: name: Remux-2160p - id: 4 name: Bluray-2160p +upgrade_until: + name: WEB|Remux|Bluray|2160p + id: -1 + description: '' custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/profiles/(SQP) SQP-3 (Audio).yml b/profiles/(SQP) SQP-3 (Audio).yml index 9d9dede..e0b7368 100644 --- a/profiles/(SQP) SQP-3 (Audio).yml +++ b/profiles/(SQP) SQP-3 (Audio).yml @@ -30,6 +30,10 @@ qualities: name: WEBDL-2160p - id: 3 name: Remux-2160p +upgrade_until: + name: WEB|Remux|2160p + id: -1 + description: '' custom_formats: - name: TrueHD Atmos score: 5000 diff --git a/profiles/(SQP) SQP-3.yml b/profiles/(SQP) SQP-3.yml index 7d95611..3a88415 100644 --- a/profiles/(SQP) SQP-3.yml +++ b/profiles/(SQP) SQP-3.yml @@ -30,6 +30,10 @@ qualities: name: WEBRip-2160p - id: 3 name: Remux-2160p +upgrade_until: + name: WEB|Remux|2160p + id: -1 + description: '' custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/profiles/(SQP) SQP-4.yml b/profiles/(SQP) SQP-4.yml index 98c0538..d8d9ef3 100644 --- a/profiles/(SQP) SQP-4.yml +++ b/profiles/(SQP) SQP-4.yml @@ -28,6 +28,10 @@ qualities: name: WEBRip-2160p - id: 5 name: WEBDL-2160p +upgrade_until: + name: WEB|2160p + id: -1 + description: '' custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/profiles/(SQP) SQP-5.yml b/profiles/(SQP) SQP-5.yml index 3faf539..c8fd298 100644 --- a/profiles/(SQP) SQP-5.yml +++ b/profiles/(SQP) SQP-5.yml @@ -30,6 +30,10 @@ qualities: name: WEBRip-2160p - id: 5 name: WEBDL-2160p +upgrade_until: + name: WEBDL|Bluray|2160p + id: -1 + description: '' custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/profiles/HD Bluray + WEB.yml b/profiles/HD Bluray + WEB.yml index 857e6a9..a35ab59 100644 --- a/profiles/HD Bluray + WEB.yml +++ b/profiles/HD Bluray + WEB.yml @@ -20,6 +20,9 @@ qualities: name: WEBRip-1080p - name: Bluray-1080p id: 10 +upgrade_until: + name: Bluray-1080p + id: 10 custom_formats: - name: HD Bluray Tier 01 score: 1800 diff --git a/profiles/Remux + WEB 1080p.yml b/profiles/Remux + WEB 1080p.yml index 02c23d6..5398884 100644 --- a/profiles/Remux + WEB 1080p.yml +++ b/profiles/Remux + WEB 1080p.yml @@ -18,6 +18,9 @@ qualities: name: WEBRip-1080p - name: Remux-1080p id: 8 +upgrade_until: + name: Remux-1080p + id: 8 custom_formats: - name: Remux Tier 01 score: 1950 diff --git a/profiles/Remux + WEB 2160p.yml b/profiles/Remux + WEB 2160p.yml index 71ef412..432aa09 100644 --- a/profiles/Remux + WEB 2160p.yml +++ b/profiles/Remux + WEB 2160p.yml @@ -18,6 +18,9 @@ qualities: name: WEBRip-2160p - name: Remux-2160p id: 3 +upgrade_until: + name: Remux-2160p + id: 3 custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/profiles/Remux 2160p (Alternative).yml b/profiles/Remux 2160p (Alternative).yml index 4f6428c..2eab13f 100644 --- a/profiles/Remux 2160p (Alternative).yml +++ b/profiles/Remux 2160p (Alternative).yml @@ -64,6 +64,9 @@ qualities: id: 4 - name: Remux-2160p id: 3 +upgrade_until: + name: Remux-2160p + id: 3 custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/profiles/Remux 2160p (Combined).yml b/profiles/Remux 2160p (Combined).yml index cc4d91e..f926bc9 100644 --- a/profiles/Remux 2160p (Combined).yml +++ b/profiles/Remux 2160p (Combined).yml @@ -33,6 +33,9 @@ qualities: id: 4 - name: Remux-2160p id: 3 +upgrade_until: + name: Remux-2160p + id: 3 custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/profiles/UHD Bluray + WEB.yml b/profiles/UHD Bluray + WEB.yml index 833caf5..f74c2db 100644 --- a/profiles/UHD Bluray + WEB.yml +++ b/profiles/UHD Bluray + WEB.yml @@ -18,6 +18,9 @@ qualities: name: WEBRip-2160p - name: Bluray-2160p id: 4 +upgrade_until: + name: Bluray-2160p + id: 4 custom_formats: - name: DV HDR10Plus score: 1500 diff --git a/scripts/generate.py b/scripts/generate.py index 42e09d2..57c7f9f 100644 --- a/scripts/generate.py +++ b/scripts/generate.py @@ -7,11 +7,15 @@ # /// import os import sys +import yaml from utils.custom_formats import collect_custom_formats from utils.regex_patterns import collect_regex_patterns from utils.profiles import collect_profiles +# Prevent aliases from showing up +yaml.Dumper.ignore_aliases = lambda *args: True + def clear_output_dir(output_dir): if not os.path.exists(output_dir): diff --git a/scripts/utils/profiles.py b/scripts/utils/profiles.py index 000583a..e6599e0 100644 --- a/scripts/utils/profiles.py +++ b/scripts/utils/profiles.py @@ -97,10 +97,21 @@ def collect_qualities(items): return qualities +def get_upgrade_until(quality_name, profile_qualities): + found_quality = next( + quality for quality in profile_qualities if quality["name"] == quality_name + ) + if found_quality: + found_quality = found_quality.copy() + found_quality.pop("qualities", None) + return found_quality + + def collect_profile(service, input_json, output_dir): # Compose YAML structure name = input_json.get("name", "") trash_id = input_json.get("trash_id", "") + profile_qualities = collect_qualities(input_json.get("items", [])) yml_data = { "name": get_file_name(name), "description": f"""[Profile from TRaSH-Guides.](https://trash-guides.info/{service.capitalize()}/{service}-setup-quality-profiles) @@ -112,7 +123,8 @@ def collect_profile(service, input_json, output_dir): "minCustomFormatScore": input_json.get("minFormatScore", 0), "upgradeUntilScore": input_json.get("cutoffFormatScore", 0), "minScoreIncrement": input_json.get("minUpgradeFormatScore", 0), - "qualities": collect_qualities(input_json.get("items", [])), + "qualities": profile_qualities, + "upgrade_until": get_upgrade_until(input_json.get("cutoff"), profile_qualities), "custom_formats": collect_profile_formats( input_json.get("trash_score_set"), input_json.get("formatItems", {}),