mirror of
https://github.com/TRaSH-Guides/Guides.git
synced 2025-12-17 07:04:27 -06:00
feat(guide-sync): add profile groups (#2561)
* chore(backend): Add profile-groups schema and metadata Add JSON schema for quality profile groups - a simplified structure to organize quality profiles into logical categories. Update metadata.schema.json and metadata.json with quality_profile_groups path. * chore(backend): Add Radarr profile groups Add groups.json to organize Radarr quality profiles into categories: Standard, Anime, French, German, and SQP. * chore(backend): Add Sonarr profile groups Add groups.json to organize Sonarr quality profiles into categories: Standard, Anime, French, and German. * docs: Add profile-groups section to CONTRIBUTING Document the simplified quality-profile-groups structure with example JSON format. --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,7 @@ Here you will find guidelines for contributing to [TRaSH Guides](https://trash-g
|
||||
- [cf-groups](#cf-groups)
|
||||
- [Group Specific settings](#group-specific-settings)
|
||||
- [Group Custom Format specific settings](#group-custom-format-specific-settings)
|
||||
- [quality-profile-groups](#quality-profile-groups)
|
||||
- [Recommendations](#recommendations)
|
||||
- [Preview Docs Locally](#preview-docs-locally)
|
||||
- [Preview after Pull Request](#preview-after-pull-request)
|
||||
@@ -308,6 +309,34 @@ The cf-group.json exists of two properties.
|
||||
- `quality_profiles`
|
||||
- `exclude` - Add the Quality Profiles you want to exclude from this group, using the quality-profiles `name` and `trash_id`.
|
||||
|
||||
### quality-profile-groups
|
||||
|
||||
Quality profile groups organize quality profiles into logical categories for easier discovery and selection.
|
||||
|
||||
- Radarr: `docs/json/radarr/quality-profile-groups/groups.json`
|
||||
- Sonarr: `docs/json/sonarr/quality-profile-groups/groups.json`
|
||||
|
||||
The `groups.json` file contains an array of groups. The order of groups determines display order, and profiles within each group are sorted alphabetically by their name.
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "Standard",
|
||||
"profiles": ["trash_id_1", "trash_id_2"]
|
||||
},
|
||||
{
|
||||
"name": "Anime",
|
||||
"profiles": ["trash_id_3"]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
- `name` - Display name for the profile group
|
||||
- `profiles` - Array of quality profile `trash_id` values belonging to this group
|
||||
|
||||
> [!IMPORTANT]
|
||||
> All `trash_id` values in the `profiles` array must correspond to existing quality profiles in the `quality-profiles` directory. Each quality profile should belong to exactly one group.
|
||||
|
||||
---
|
||||
|
||||
## Recommendations
|
||||
|
||||
52
docs/json/radarr/quality-profile-groups/groups.json
Normal file
52
docs/json/radarr/quality-profile-groups/groups.json
Normal file
@@ -0,0 +1,52 @@
|
||||
[
|
||||
{
|
||||
"name": "Standard",
|
||||
"profiles": {
|
||||
"hd-bluray-web": "d1d67249d3890e49bc12e275d989a7e9",
|
||||
"remux-web-1080p": "9ca12ea80aa55ef916e3751f4b874151",
|
||||
"remux-2160p-combined": "d1d310673359205736b4b84acd5ea8c8",
|
||||
"remux-2160p-alternative": "dd3cd75deb9645bae838d1c5da6388d5",
|
||||
"remux-web-2160p": "fd161a61e3ab826d3a22d53f935696dd",
|
||||
"uhd-bluray-web": "64fb5f9858489bdac2af690e27c8f42f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Anime",
|
||||
"profiles": {
|
||||
"anime-remux-1080p": "722b624f9af1e492284c4bc842153a38"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "French",
|
||||
"profiles": {
|
||||
"french-multi-vo-hd-bluray-web": "2572ce3ea4eef1c19d59e0e20ed1cea7",
|
||||
"french-multi-vo-hd-remux-web": "c6460a102b312200c095a2d0982e0461",
|
||||
"french-multi-vo-uhd-bluray-web": "92ead7022d13a7858d54e328e6a2f8f9",
|
||||
"french-multi-vo-uhd-remux-web": "1fef28c8c919f31cd86283b1baf527d4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "German",
|
||||
"profiles": {
|
||||
"german-hd-bluray-web": "2b90e905c99490edc7c7a5787443748b",
|
||||
"german-hd-remux-web": "c13c33fdd2c306266b34cb9946de5919",
|
||||
"german-uhd-bluray-web": "27cc3d153c0a799fd139ef1ff4c4cc42",
|
||||
"german-uhd-bluray-web-alternative": "425da1ba30711b55d2eb371437ec98d7",
|
||||
"german-uhd-remux-web": "79faa9943cef2f510b997b1f2a9f3ea6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SQP",
|
||||
"profiles": {
|
||||
"sqp-1-1080p": "0896c29d74de619df168d23b98104b22",
|
||||
"sqp-1-2160p": "5128baeb2b081b72126bc8482b2a86a0",
|
||||
"sqp-1-web-1080p": "90a3370d2d30cbaf08d9c23b856a12c8",
|
||||
"sqp-1-web-2160p": "e91c9adaca0231493f4af0d571b907f9",
|
||||
"sqp-2": "c3933358ba2356bafc41524f81471069",
|
||||
"sqp-3": "2cf36c1f0106ffac993be003ade51865",
|
||||
"sqp-3-audio": "0ada8e60cc3ddf2733b65de10f4a6c72",
|
||||
"sqp-4": "013f89e6da27519fe56cf482702a2db9",
|
||||
"sqp-5": "a7bb1539fd147256b21b1098f3dc2016"
|
||||
}
|
||||
}
|
||||
]
|
||||
35
docs/json/sonarr/quality-profile-groups/groups.json
Normal file
35
docs/json/sonarr/quality-profile-groups/groups.json
Normal file
@@ -0,0 +1,35 @@
|
||||
[
|
||||
{
|
||||
"name": "Standard",
|
||||
"profiles": {
|
||||
"web-1080p": "72dae194fc92bf828f32cde7744e51a1",
|
||||
"web-1080p-alternative": "9d142234e45d6143785ac55f5a9e8dc9",
|
||||
"web-2160p-combined": "c4cadd6b35b95f62c3d47a408e53e2f7",
|
||||
"web-2160p": "d1498e7d189fbe6c7110ceaabb7473e6",
|
||||
"web-2160p-alternative": "dfa5eaae7894077ad6449169b6eb03e0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Anime",
|
||||
"profiles": {
|
||||
"anime-remux-1080p": "20e0fc959f1f1704bed501f23bdae76f"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "French",
|
||||
"profiles": {
|
||||
"french-multi-vo-bluray-web-1080p": "4c48f506c1116a3a57ae33f12346bd15",
|
||||
"french-multi-vo-bluray-web-2160p": "6fa7364373e8f06206871d9c20a4fb3e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "German",
|
||||
"profiles": {
|
||||
"german-hd-bluray-web": "dca7e5e9e99c703bcbdaaa471dd40e98",
|
||||
"german-hd-remux-web": "0dd5f085ed61a1e01f6d347779dfa1bc",
|
||||
"german-uhd-bluray-web": "3b0fa37fddaaefc931b75f2889d4b4f5",
|
||||
"german-uhd-bluray-web-alternative": "7324309a7d1e10dc0dc2cea6c70ed852",
|
||||
"german-uhd-remux-web": "08cececf1840290f6fd490b7d79e8642"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -6,14 +6,16 @@
|
||||
"qualities": ["docs/json/radarr/quality-size"],
|
||||
"naming": ["docs/json/radarr/naming"],
|
||||
"quality_profiles": ["docs/json/radarr/quality-profiles"],
|
||||
"custom_format_groups": ["docs/json/radarr/cf-groups"]
|
||||
"custom_format_groups": ["docs/json/radarr/cf-groups"],
|
||||
"quality_profile_groups": ["docs/json/radarr/quality-profile-groups"]
|
||||
},
|
||||
"sonarr": {
|
||||
"custom_formats": ["docs/json/sonarr/cf"],
|
||||
"qualities": ["docs/json/sonarr/quality-size"],
|
||||
"naming": ["docs/json/sonarr/naming"],
|
||||
"quality_profiles": ["docs/json/sonarr/quality-profiles"],
|
||||
"custom_format_groups": ["docs/json/sonarr/cf-groups"]
|
||||
"custom_format_groups": ["docs/json/sonarr/cf-groups"],
|
||||
"quality_profile_groups": ["docs/json/sonarr/quality-profile-groups"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,8 @@
|
||||
"qualities": { "$ref": "#/$defs/paths_object" },
|
||||
"naming": { "$ref": "#/$defs/paths_object" },
|
||||
"quality_profiles": { "$ref": "#/$defs/paths_object" },
|
||||
"custom_format_groups": { "$ref": "#/$defs/paths_object" }
|
||||
"custom_format_groups": { "$ref": "#/$defs/paths_object" },
|
||||
"quality_profile_groups": { "$ref": "#/$defs/paths_object" }
|
||||
}
|
||||
},
|
||||
"sonarr": {
|
||||
@@ -38,7 +39,8 @@
|
||||
"qualities": { "$ref": "#/$defs/paths_object" },
|
||||
"naming": { "$ref": "#/$defs/paths_object" },
|
||||
"quality_profiles": { "$ref": "#/$defs/paths_object" },
|
||||
"custom_format_groups": { "$ref": "#/$defs/paths_object" }
|
||||
"custom_format_groups": { "$ref": "#/$defs/paths_object" },
|
||||
"quality_profile_groups": { "$ref": "#/$defs/paths_object" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
30
schemas/profile-groups.schema.json
Normal file
30
schemas/profile-groups.schema.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "https://raw.githubusercontent.com/TRaSH-/Guides/master/schemas/profile-groups.schema.json",
|
||||
"title": "Quality Profile Groups Schema",
|
||||
"description": "Schema for grouping quality profiles into logical categories. Order of groups determines display order.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["name", "profiles"],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"description": "Display name for the profile group"
|
||||
},
|
||||
"profiles": {
|
||||
"type": "array",
|
||||
"description": "List of quality profile trash_ids that belong to this group",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-fA-F0-9]{32}$"
|
||||
},
|
||||
"minItems": 1,
|
||||
"uniqueItems": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"minItems": 1
|
||||
}
|
||||
Reference in New Issue
Block a user