diff --git a/README.md b/README.md index 105f680..244f75e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,41 @@ # Profilarr -Profilarr is a synchronization tool designed for users of the "arr" suite, including Radarr and Sonarr. It offers seamless import and synchronization of quality profiles and custom formats via the API, allowing users to maintain uniform settings across multiple instances with minimal hassle. + +Profilarr is a Python-based tool that enables seamless synchronization of custom formats and quality profiles in Radarr / Sonarr. It's designed to aid users in maintaining consistent configurations across different environments or instances of Radarr. + +## ⚠️ Before Continuing + +- **This tool will overwrite any custom formats in your Radarr installation that have the same name.** +- **Custom Formats MUST be imported before syncing a profile.** + +## 🛠️ Installation + +### Prerequisites + +- Python 3.x installed. You can download it from [python.org](https://www.python.org/downloads/). + +### Steps + +1. Download the Profilarr zip file from the release section. +2. Extract its contents into a folder. +3. Open `import.py` in a text editor of your choice. + - Add your Radarr API key to the designated section. + - Modify the Base URL if needed +4. Save the changes and close the text editor. + +## 🚀 Usage + +1. Open a terminal or command prompt. +2. Navigate to the directory where you extracted Profilarr. +3. Run the command `python import_cf.py` to import the necessary custom formats. +4. Run the command `python import_qf.py` and follow the prompts to choose and import your desired profile. + +## 📦 Dependencies + +- `requests` (Install using `pip install requests`) + +## ⚙️ Configuration + +### Radarr API Key and Base URL + +- Your Radarr API Key and Base URL can be configured in the `import.py` file. +- The Base URL should be in the format `http://localhost:7878` unless you have a different host or port. diff --git a/custom_formats/cf.json b/custom_formats/cf.json new file mode 100644 index 0000000..7e1ae09 --- /dev/null +++ b/custom_formats/cf.json @@ -0,0 +1,11879 @@ +[ + { + "name": "D-Z0N3", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "D-Z0N3", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])D-Z0N38127631827631\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "DON", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "DON", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])DON\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "EbP", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "EbP", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])EbP\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "Geek", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Geek", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])Geek\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "TayTo", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "TayTo", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])TayTo\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "ZQ", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ZQ", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])ZQ\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "VietHD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "VietHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])VietHD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "CtrlHD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "CtrlHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])CtrlHD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "HiFi", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HiFi", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])HiFi\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "FoRM", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "FoRM", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])FoRM\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "HiDt", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HiDt", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])HiDt\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "SA89", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "SA89", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])SA89\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "CRiSC", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "CRiSC", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])CRiSC\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "NTb", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "NTb", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])NTb\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "WEBDL", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 7, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "UNKNOWN", + "order": 0, + "dividerAfter": false + }, + { + "value": 1, + "name": "CAM", + "order": 1, + "dividerAfter": false + }, + { + "value": 2, + "name": "TELESYNC", + "order": 2, + "dividerAfter": false + }, + { + "value": 3, + "name": "TELECINE", + "order": 3, + "dividerAfter": false + }, + { + "value": 4, + "name": "WORKPRINT", + "order": 4, + "dividerAfter": false + }, + { + "value": 5, + "name": "DVD", + "order": 5, + "dividerAfter": false + }, + { + "value": 6, + "name": "TV", + "order": 6, + "dividerAfter": false + }, + { + "value": 7, + "name": "WEBDL", + "order": 7, + "dividerAfter": false + }, + { + "value": 8, + "name": "WEBRIP", + "order": 8, + "dividerAfter": false + }, + { + "value": 9, + "name": "BLURAY", + "order": 9, + "dividerAfter": false + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "decibeL", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "decibeL", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])decibeL\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "NCmt", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "NCmt", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])NCmt\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "de[42]", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "de[42]", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=[\\s.-])de\\[[4][2]\\](?!\\S)", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "IDE", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "IDE", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])IDE\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "HDMaNiAcS", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "HDMaNiAcS", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])HDMaNiAcS\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "LolHD", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "LolHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])LolHD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "BMF", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "BMF", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])BMF\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "EA", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "EA", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])EA\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "TBB", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "TBB", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])TBB\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "DVD", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 5, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "UNKNOWN", + "order": 0, + "dividerAfter": false + }, + { + "value": 1, + "name": "CAM", + "order": 1, + "dividerAfter": false + }, + { + "value": 2, + "name": "TELESYNC", + "order": 2, + "dividerAfter": false + }, + { + "value": 3, + "name": "TELECINE", + "order": 3, + "dividerAfter": false + }, + { + "value": 4, + "name": "WORKPRINT", + "order": 4, + "dividerAfter": false + }, + { + "value": 5, + "name": "DVD", + "order": 5, + "dividerAfter": false + }, + { + "value": 6, + "name": "TV", + "order": 6, + "dividerAfter": false + }, + { + "value": 7, + "name": "WEBDL", + "order": 7, + "dividerAfter": false + }, + { + "value": 8, + "name": "WEBRIP", + "order": 8, + "dividerAfter": false + }, + { + "value": 9, + "name": "BLURAY", + "order": 9, + "dividerAfter": false + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "nmd", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "nmd", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])nmd\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "SbR", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "SbR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])SbR\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "PTer", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "PTer", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])PTer\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "Dariush SD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Dariush", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])Dariush\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "DVD", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 5, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "UNKNOWN", + "order": 0, + "dividerAfter": false + }, + { + "value": 1, + "name": "CAM", + "order": 1, + "dividerAfter": false + }, + { + "value": 2, + "name": "TELESYNC", + "order": 2, + "dividerAfter": false + }, + { + "value": 3, + "name": "TELECINE", + "order": 3, + "dividerAfter": false + }, + { + "value": 4, + "name": "WORKPRINT", + "order": 4, + "dividerAfter": false + }, + { + "value": 5, + "name": "DVD", + "order": 5, + "dividerAfter": false + }, + { + "value": 6, + "name": "TV", + "order": 6, + "dividerAfter": false + }, + { + "value": 7, + "name": "WEBDL", + "order": 7, + "dividerAfter": false + }, + { + "value": 8, + "name": "WEBRIP", + "order": 8, + "dividerAfter": false + }, + { + "value": 9, + "name": "BLURAY", + "order": 9, + "dividerAfter": false + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "TDD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "TDD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])TDD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "Penumbra", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Penumbra", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])Penumbra\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "FTW-HD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "FTW-HD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])FTW-HD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "xander", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "xander", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])xander\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "Chotab", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Chotab", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])Chotab\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "ESiR", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ESiR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])ESiR\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "Positive", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Positive", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])Positive\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "ORiGEN", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ORiGEN", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])ORiGEN\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "SaNcTi", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "SaNcTi", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])SaNcTi\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "ThD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ThD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])ThD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "ZIMBO", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ZIMBO", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])ZIMBO\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "NyHD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "NyHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])NyHD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "luvBB", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "luvBB", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])luvBB\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "GALAXY", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "GALAXY", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])GALAXY\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "HiP", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HiP", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])HiP\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "GS88", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "GS88", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])GS88\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "W4NK3R", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "W4NK3R", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])W4NK3R\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "SiMPLE", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "SiMPLE", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])SiMPLE\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "BV", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "BV", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])BV\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "GutS", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "GutS", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])GutS\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "E.N.D", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "E.N.D", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])E\\.N\\.D\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "playHD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "playHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])playHD\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "WMING", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "WMING", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])WMING\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "KASHMiR", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "KASHMiR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])KASHMiR\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "c0ke", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "c0ke", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])c0ke\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "HANDJOB", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HANDJOB", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])HANDJOB\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "DVD", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 5, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "UNKNOWN", + "order": 0, + "dividerAfter": false + }, + { + "value": 1, + "name": "CAM", + "order": 1, + "dividerAfter": false + }, + { + "value": 2, + "name": "TELESYNC", + "order": 2, + "dividerAfter": false + }, + { + "value": 3, + "name": "TELECINE", + "order": 3, + "dividerAfter": false + }, + { + "value": 4, + "name": "WORKPRINT", + "order": 4, + "dividerAfter": false + }, + { + "value": 5, + "name": "DVD", + "order": 5, + "dividerAfter": false + }, + { + "value": 6, + "name": "TV", + "order": 6, + "dividerAfter": false + }, + { + "value": 7, + "name": "WEBDL", + "order": 7, + "dividerAfter": false + }, + { + "value": 8, + "name": "WEBRIP", + "order": 8, + "dividerAfter": false + }, + { + "value": 9, + "name": "BLURAY", + "order": 9, + "dividerAfter": false + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "EDPH", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "EDPH", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])EDPH\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "MTeam", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "MTeam", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])MTeam\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "iFT", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "iFT", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])iFT\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "FraMeSToR", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "FraMeSToR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])FraMeSToR\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "LEGi0N", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "LEGi0N", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])LEGi0N\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "BHDStudio", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "BHDStudio", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])BHDStudio\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "1080p", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "1080p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "[.\\- (\\[]?1080p", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "2160p: 2160p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])2160p\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "720p: 720p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "[.\\- (\\[]?(720p)", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "720p: 480p: 480p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])480p|360p|576p|540p\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "720p", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "720p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "[.\\- (\\[]?(720p)", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "1080p: 1080p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "[.\\- (\\[]?1080p", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "2160p: 2160p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])2160p\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "480p: 480p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])480p|360p|576p|540p\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "2160p", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "2160p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.\\-(])(2160p|UHD)\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "1080p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "[.\\- (\\[]?1080p", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "720p: 720p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "[.\\- (\\[]?(720p)", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "720p: 480p: 480p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?<=^|[\\s.-])480p|360p|576p|540p\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "Blu-Ray", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "Blu-Ray", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 9, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "UNKNOWN", + "order": 0, + "dividerAfter": false + }, + { + "value": 1, + "name": "CAM", + "order": 1, + "dividerAfter": false + }, + { + "value": 2, + "name": "TELESYNC", + "order": 2, + "dividerAfter": false + }, + { + "value": 3, + "name": "TELECINE", + "order": 3, + "dividerAfter": false + }, + { + "value": 4, + "name": "WORKPRINT", + "order": 4, + "dividerAfter": false + }, + { + "value": 5, + "name": "DVD", + "order": 5, + "dividerAfter": false + }, + { + "value": 6, + "name": "TV", + "order": 6, + "dividerAfter": false + }, + { + "value": 7, + "name": "WEBDL", + "order": 7, + "dividerAfter": false + }, + { + "value": 8, + "name": "WEBRIP", + "order": 8, + "dividerAfter": false + }, + { + "value": 9, + "name": "BLURAY", + "order": 9, + "dividerAfter": false + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "WEBRip", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "WEBRip", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 8, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "UNKNOWN", + "order": 0, + "dividerAfter": false + }, + { + "value": 1, + "name": "CAM", + "order": 1, + "dividerAfter": false + }, + { + "value": 2, + "name": "TELESYNC", + "order": 2, + "dividerAfter": false + }, + { + "value": 3, + "name": "TELECINE", + "order": 3, + "dividerAfter": false + }, + { + "value": 4, + "name": "WORKPRINT", + "order": 4, + "dividerAfter": false + }, + { + "value": 5, + "name": "DVD", + "order": 5, + "dividerAfter": false + }, + { + "value": 6, + "name": "TV", + "order": 6, + "dividerAfter": false + }, + { + "value": 7, + "name": "WEBDL", + "order": 7, + "dividerAfter": false + }, + { + "value": 8, + "name": "WEBRIP", + "order": 8, + "dividerAfter": false + }, + { + "value": 9, + "name": "BLURAY", + "order": 9, + "dividerAfter": false + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } + ] + }, + { + "name": "x264", + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "x264", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "^(?!.*(?i:remux)).*([xh](\\.?264)|DVDRip)", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "Xvid", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "(?i)[-. ]Xvid", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "Disc", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "^(?!.*\\b((?|]', '_', filename) + return sanitized_filename + +def export_qf(): + response = requests.get(f"{base_url}/api/v3/qualityprofile", params=params, headers=headers) + + if response.status_code == 200: + quality_profiles = response.json() + + # Ensure the ./profiles directory exists + if not os.path.exists('./profiles'): + os.makedirs('./profiles') + + # Process each profile separately + for profile in quality_profiles: + profile.pop('id', None) # Remove the 'id' field + + # Use the name of the profile to create a filename + profile_name = profile.get('name', 'unnamed_profile') # Use a default name if the profile has no name + profile_name = sanitize_filename(profile_name) # Sanitize the filename + profile_filename = f"{profile_name}.json" + profile_filepath = os.path.join('./profiles', profile_filename) + + # Save the individual profile to a file as a single-element array + with open(profile_filepath, 'w') as file: + json.dump([profile], file, indent=4) # Note the [profile], it will make it an array with a single element + + print("Quality profiles have been successfully saved to the ./profiles directory") + else: + print("Failed to retrieve quality profiles!") + print("Response Content: ", response.content.decode('utf-8')) + + + +if __name__ == "__main__": + export_cf() + export_qf() \ No newline at end of file diff --git a/import_cf.py b/import_cf.py new file mode 100644 index 0000000..35ec708 --- /dev/null +++ b/import_cf.py @@ -0,0 +1,60 @@ +import json +import requests + +# Define constants +base_url = "http://localhost:7878" # Update to your Radarr URL +api_key = "API_GOES_HERE" # Update to your Radarr API Key + +# Define headers +headers = {"X-Api-Key": api_key} + +def get_existing_formats(): + get_url = f"{base_url}/api/v3/customformat" + print(f"Getting existing formats from {get_url}") + response = requests.get(get_url, headers=headers) + + if response.status_code == 200: + with open('temp_cf.json', 'w') as temp_file: + json.dump(response.json(), temp_file) + else: + print(f"Failed to retrieve existing custom formats from {get_url}! (HTTP {response.status_code})") + print("Response Content: \n", response.content.decode()) + exit(1) + +def import_custom_formats(): + with open('temp_cf.json', 'r') as temp_file: + existing_formats = json.load(temp_file) + existing_names_to_id = {format['name']: format['id'] for format in existing_formats} + + with open('custom_formats/cf.json', 'r') as import_file: + import_formats = json.load(import_file) + + for format in import_formats: + format_name = format['name'] + if format_name in existing_names_to_id: + format_id = existing_names_to_id[format_name] + put_url = f"{base_url}/api/v3/customformat/{format_id}" + print(f"Updating existing format {format_name} using PUT at {put_url}") + format['id'] = format_id # Include the id in the request body + response = requests.put(put_url, json=format, headers=headers) + + if response.status_code in [200, 201, 202]: + print(f"Successfully updated custom format {format_name}! (HTTP {response.status_code})") + else: + print(f"Failed to update custom format {format_name} at {put_url}! (HTTP {response.status_code})") + print("Response Content: \n", response.content.decode()) + + else: + post_url = f"{base_url}/api/v3/customformat" + print(f"Creating new format {format_name} using POST at {post_url}") + response = requests.post(post_url, json=format, headers=headers) + + if response.status_code in [200, 201]: + print(f"Successfully created custom format {format_name}! (HTTP {response.status_code})") + else: + print(f"Failed to create custom format {format_name} at {post_url}! (HTTP {response.status_code})") + print("Response Content: \n", response.content.decode()) + +if __name__ == "__main__": + get_existing_formats() + import_custom_formats() \ No newline at end of file diff --git a/import_qf.py b/import_qf.py new file mode 100644 index 0000000..543fd1a --- /dev/null +++ b/import_qf.py @@ -0,0 +1,115 @@ +import json +import requests +import os # For deleting the temporary file + +# Define constants +base_url = "http://localhost:7878" # Update to your Radarr URL +api_key = "API_GOES_HERE" # Update to your Radarr API Key + +# Define headers +params = {"apikey": api_key} +headers = {"X-Api-Key": api_key} + +def cf_import_sync(): + custom_format_url = f"{base_url}/api/v3/customformat" + response = requests.get(custom_format_url, headers=headers) + + if response.status_code == 200: + data = response.json() + with open('custom_formats.json', 'w') as file: + json.dump(data, file, indent=4) + print("Custom Formats have been saved to 'custom_formats.json'") + return True + else: + print(f"Failed to retrieve custom formats! (HTTP {response.status_code})") + print("Response Content: ", response.content.decode('utf-8')) + return False + + +def import_qf(): + # Call cf_import_sync first + cf_import_sync() + + profile_dir = './profiles' + profiles = [f for f in os.listdir(profile_dir) if f.endswith('.json')] + + # Prompt user to select a profile + print("Available Profiles:") + for i, profile in enumerate(profiles, 1): + print(f"{i}. {profile}") + + selection = input("Please enter the number of the profile you want to import: ") + + try: + selected_file = profiles[int(selection) - 1] + except (ValueError, IndexError): + print("Invalid selection, please enter a valid number.") + return + + # Load the selected profile + with open(os.path.join(profile_dir, selected_file), 'r') as file: + try: + quality_profiles = json.load(file) + except json.JSONDecodeError as e: + print(f"Error loading selected profile: {e}") + return + + # Load custom formats + try: + with open('custom_formats.json', 'r') as file: + custom_formats_data = json.load(file) + custom_formats = {format['name']: format['id'] for format in custom_formats_data} + except Exception as e: + print(f"Failed to load custom formats! Error: {e}") + return + + # Process each profile and send requests + for profile in quality_profiles: + existing_format_names = set() + if 'formatItems' in profile: + for format_item in profile['formatItems']: + format_name = format_item.get('name') + if format_name: + existing_format_names.add(format_name) + if format_name in custom_formats: + format_item['format'] = custom_formats[format_name] + + for format_name, format_id in custom_formats.items(): + if format_name not in existing_format_names: + profile.setdefault('formatItems', []).append({ + "format": format_id, + "name": format_name, + "score": 0 + }) + + post_url = f"{base_url}/api/v3/qualityprofile" + response = requests.post(post_url, json=profile, params=params, headers=headers) + + if response.status_code in [200, 201]: + print(f"Successfully added Quality Profile {profile['name']}! (HTTP {response.status_code})") + else: + try: + # Assuming the response is JSON, parse it + errors = response.json() + + # Extract relevant information from the error message + message = errors.get("message", "No Message Provided") + description = errors.get("description", "No Description Provided") + + # Format and print the error message + print(f"Failed to add Quality Profile {profile['name']}! (HTTP {response.status_code})") + print(f"Error Message: {message}") + + except json.JSONDecodeError: + # If response is not JSON, print the whole response + print("Failed to parse error message:") + print(response.text) + try: + os.remove('custom_formats.json') + except FileNotFoundError: + pass # File already deleted or does not exist + + + +if __name__ == "__main__": + import_qf() diff --git a/profiles/Optimal.json b/profiles/Optimal.json new file mode 100644 index 0000000..f01df10 --- /dev/null +++ b/profiles/Optimal.json @@ -0,0 +1,1008 @@ +[ + { + "name": "Optimal", + "upgradeAllowed": true, + "cutoff": 31, + "items": [ + { + "quality": { + "id": 0, + "name": "Unknown", + "source": "unknown", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 24, + "name": "WORKPRINT", + "source": "workprint", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 25, + "name": "CAM", + "source": "cam", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 26, + "name": "TELESYNC", + "source": "telesync", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 27, + "name": "TELECINE", + "source": "telecine", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 29, + "name": "REGIONAL", + "source": "dvd", + "resolution": 480, + "modifier": "regional" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 28, + "name": "DVDSCR", + "source": "dvd", + "resolution": 480, + "modifier": "screener" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 1, + "name": "SDTV", + "source": "tv", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 2, + "name": "DVD", + "source": "dvd", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 23, + "name": "DVD-R", + "source": "dvd", + "resolution": 480, + "modifier": "remux" + }, + "items": [], + "allowed": false + }, + { + "name": "WEB 480p", + "items": [ + { + "quality": { + "id": 8, + "name": "WEBDL-480p", + "source": "webdl", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 12, + "name": "WEBRip-480p", + "source": "webrip", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": false + } + ], + "allowed": false, + "id": 1000 + }, + { + "quality": { + "id": 20, + "name": "Bluray-480p", + "source": "bluray", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 21, + "name": "Bluray-576p", + "source": "bluray", + "resolution": 576, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 4, + "name": "HDTV-720p", + "source": "tv", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "name": "WEB 720p", + "items": [ + { + "quality": { + "id": 5, + "name": "WEBDL-720p", + "source": "webdl", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 14, + "name": "WEBRip-720p", + "source": "webrip", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + } + ], + "allowed": false, + "id": 1001 + }, + { + "quality": { + "id": 6, + "name": "Bluray-720p", + "source": "bluray", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 9, + "name": "HDTV-1080p", + "source": "tv", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "name": "WEB 1080p", + "items": [ + { + "quality": { + "id": 3, + "name": "WEBDL-1080p", + "source": "webdl", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 15, + "name": "WEBRip-1080p", + "source": "webrip", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": false + } + ], + "allowed": false, + "id": 1002 + }, + { + "quality": { + "id": 7, + "name": "Bluray-1080p", + "source": "bluray", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 30, + "name": "Remux-1080p", + "source": "bluray", + "resolution": 1080, + "modifier": "remux" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 16, + "name": "HDTV-2160p", + "source": "tv", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 17, + "name": "WEBRip-2160p", + "source": "webrip", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 19, + "name": "Bluray-2160p", + "source": "bluray", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 18, + "name": "WEBDL-2160p", + "source": "webdl", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "quality": { + "id": 31, + "name": "Remux-2160p", + "source": "bluray", + "resolution": 2160, + "modifier": "remux" + }, + "items": [], + "allowed": true + }, + { + "quality": { + "id": 22, + "name": "BR-DISK", + "source": "bluray", + "resolution": 1080, + "modifier": "brdisk" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 10, + "name": "Raw-HD", + "source": "tv", + "resolution": 1080, + "modifier": "rawhd" + }, + "items": [], + "allowed": false + } + ], + "minFormatScore": 0, + "cutoffFormatScore": 0, + "formatItems": [ + { + "format": 331, + "name": "Golden Popcorn 720p", + "score": 0 + }, + { + "format": 330, + "name": "LQ", + "score": -9999 + }, + { + "format": 329, + "name": "EPSiLON", + "score": 0 + }, + { + "format": 328, + "name": "playBD", + "score": 0 + }, + { + "format": 327, + "name": "BLURANiUM", + "score": 0 + }, + { + "format": 326, + "name": "PmP", + "score": 0 + }, + { + "format": 325, + "name": "WiLDCAT", + "score": 0 + }, + { + "format": 324, + "name": "TRiToN", + "score": 0 + }, + { + "format": 323, + "name": "3L", + "score": 0 + }, + { + "format": 322, + "name": "Dolby Vision w/out Fallback", + "score": -9999 + }, + { + "format": 321, + "name": "UHDBits", + "score": -9999 + }, + { + "format": 318, + "name": "ATMOS (Missing)", + "score": 10 + }, + { + "format": 317, + "name": "TrueHD (Missing)", + "score": 50 + }, + { + "format": 316, + "name": "HDR10 (Missing)", + "score": 10 + }, + { + "format": 315, + "name": "HDR10", + "score": 10 + }, + { + "format": 314, + "name": "Dolby Vision", + "score": 30 + }, + { + "format": 312, + "name": "HDR10+", + "score": 20 + }, + { + "format": 308, + "name": "Stream Optimised", + "score": 0 + }, + { + "format": 307, + "name": "LoRD", + "score": 0 + }, + { + "format": 306, + "name": "Scene", + "score": 0 + }, + { + "format": 303, + "name": "mHD", + "score": 0 + }, + { + "format": 302, + "name": "AV-1", + "score": -9999 + }, + { + "format": 301, + "name": "VVC", + "score": -9999 + }, + { + "format": 300, + "name": "Extras", + "score": -9999 + }, + { + "format": 298, + "name": "480p", + "score": -9999 + }, + { + "format": 297, + "name": "Dariush ", + "score": 0 + }, + { + "format": 296, + "name": "TBB SD", + "score": 0 + }, + { + "format": 295, + "name": "Xvid", + "score": -9999 + }, + { + "format": 294, + "name": "DVD", + "score": -9999 + }, + { + "format": 293, + "name": "DVD REMUX ", + "score": -9999 + }, + { + "format": 292, + "name": "HANDJOB SD", + "score": 0 + }, + { + "format": 291, + "name": "iTunes (Missing)", + "score": 10 + }, + { + "format": 290, + "name": "ROKU", + "score": 20 + }, + { + "format": 289, + "name": "BeyondHD", + "score": 0 + }, + { + "format": 288, + "name": "Disc ", + "score": -9999 + }, + { + "format": 287, + "name": "3D", + "score": -9999 + }, + { + "format": 286, + "name": "Unwanted", + "score": -9999 + }, + { + "format": 285, + "name": "HDBits Internal", + "score": 0 + }, + { + "format": 284, + "name": "RightSIZE", + "score": 0 + }, + { + "format": 283, + "name": "Black and White", + "score": 0 + }, + { + "format": 281, + "name": "TrueHD", + "score": 50 + }, + { + "format": 280, + "name": "DTS-X", + "score": 60 + }, + { + "format": 279, + "name": "FLAC", + "score": 40 + }, + { + "format": 278, + "name": "DTS-HD MA", + "score": 40 + }, + { + "format": 276, + "name": "x265", + "score": -9999 + }, + { + "format": 275, + "name": "Golden Popcorn SD", + "score": 0 + }, + { + "format": 274, + "name": "Golden Popcorn 1080p", + "score": 0 + }, + { + "format": 273, + "name": "IMAX", + "score": 0 + }, + { + "format": 272, + "name": "ATMOS", + "score": 10 + }, + { + "format": 271, + "name": "DD", + "score": 0 + }, + { + "format": 270, + "name": "DTS", + "score": 0 + }, + { + "format": 269, + "name": "DD+", + "score": 0 + }, + { + "format": 268, + "name": "iTunes", + "score": 10 + }, + { + "format": 267, + "name": "Paramount+", + "score": 20 + }, + { + "format": 266, + "name": "Peacock TV", + "score": 20 + }, + { + "format": 265, + "name": "Hulu", + "score": 20 + }, + { + "format": 264, + "name": "Netflix", + "score": 30 + }, + { + "format": 263, + "name": "HBO Max", + "score": 30 + }, + { + "format": 262, + "name": "Disney+", + "score": 30 + }, + { + "format": 261, + "name": "Apple TV+", + "score": 40 + }, + { + "format": 260, + "name": "Movies Anywhere", + "score": 50 + }, + { + "format": 259, + "name": "Amazon Prime", + "score": 40 + }, + { + "format": 258, + "name": "REMUX", + "score": 60 + }, + { + "format": 256, + "name": "x264", + "score": -9999 + }, + { + "format": 255, + "name": "WEBRip", + "score": -9999 + }, + { + "format": 254, + "name": "Blu-Ray", + "score": 60 + }, + { + "format": 253, + "name": "2160p", + "score": 60 + }, + { + "format": 252, + "name": "720p", + "score": -9999 + }, + { + "format": 250, + "name": "1080p", + "score": -9999 + }, + { + "format": 249, + "name": "BHDStudio", + "score": 0 + }, + { + "format": 248, + "name": "LEGi0N", + "score": 0 + }, + { + "format": 247, + "name": "FraMeSToR", + "score": 0 + }, + { + "format": 246, + "name": "iFT", + "score": 0 + }, + { + "format": 245, + "name": "MTeam", + "score": 0 + }, + { + "format": 244, + "name": "EDPH", + "score": 0 + }, + { + "format": 243, + "name": "HANDJOB", + "score": 0 + }, + { + "format": 242, + "name": "c0ke", + "score": 0 + }, + { + "format": 241, + "name": "KASHMiR", + "score": 0 + }, + { + "format": 240, + "name": "WMING", + "score": 0 + }, + { + "format": 239, + "name": "playHD", + "score": 0 + }, + { + "format": 238, + "name": "E.N.D", + "score": 0 + }, + { + "format": 237, + "name": "GutS", + "score": 0 + }, + { + "format": 236, + "name": "BV", + "score": 0 + }, + { + "format": 235, + "name": "SiMPLE", + "score": 0 + }, + { + "format": 234, + "name": "W4NK3R", + "score": 0 + }, + { + "format": 233, + "name": "GS88", + "score": 0 + }, + { + "format": 232, + "name": "HiP", + "score": 0 + }, + { + "format": 231, + "name": "GALAXY", + "score": 0 + }, + { + "format": 230, + "name": "luvBB", + "score": 0 + }, + { + "format": 229, + "name": "NyHD", + "score": 0 + }, + { + "format": 228, + "name": "ZIMBO", + "score": 0 + }, + { + "format": 227, + "name": "ThD", + "score": 0 + }, + { + "format": 226, + "name": "SaNcTi", + "score": 0 + }, + { + "format": 225, + "name": "ORiGEN", + "score": 0 + }, + { + "format": 224, + "name": "Positive", + "score": 0 + }, + { + "format": 223, + "name": "ESiR", + "score": 0 + }, + { + "format": 222, + "name": "Chotab", + "score": 0 + }, + { + "format": 221, + "name": "xander", + "score": 0 + }, + { + "format": 220, + "name": "FTW-HD", + "score": 0 + }, + { + "format": 219, + "name": "Penumbra", + "score": 0 + }, + { + "format": 218, + "name": "TDD", + "score": 0 + }, + { + "format": 217, + "name": "Dariush SD", + "score": 0 + }, + { + "format": 216, + "name": "PTer", + "score": 0 + }, + { + "format": 215, + "name": "SbR", + "score": 0 + }, + { + "format": 214, + "name": "nmd", + "score": 0 + }, + { + "format": 213, + "name": "TBB", + "score": 0 + }, + { + "format": 212, + "name": "EA", + "score": 0 + }, + { + "format": 211, + "name": "BMF", + "score": 0 + }, + { + "format": 210, + "name": "LolHD", + "score": 0 + }, + { + "format": 209, + "name": "HDMaNiAcS", + "score": 0 + }, + { + "format": 208, + "name": "IDE", + "score": 0 + }, + { + "format": 207, + "name": "de[42]", + "score": 0 + }, + { + "format": 206, + "name": "NCmt", + "score": 0 + }, + { + "format": 205, + "name": "decibeL", + "score": 0 + }, + { + "format": 204, + "name": "NTb", + "score": 0 + }, + { + "format": 203, + "name": "CRiSC", + "score": 0 + }, + { + "format": 202, + "name": "SA89", + "score": 0 + }, + { + "format": 201, + "name": "HiDt", + "score": 0 + }, + { + "format": 200, + "name": "FoRM", + "score": 0 + }, + { + "format": 199, + "name": "HiFi", + "score": 0 + }, + { + "format": 198, + "name": "CtrlHD", + "score": 0 + }, + { + "format": 197, + "name": "VietHD", + "score": 0 + }, + { + "format": 196, + "name": "ZQ", + "score": 0 + }, + { + "format": 195, + "name": "TayTo", + "score": 0 + }, + { + "format": 194, + "name": "Geek", + "score": 0 + }, + { + "format": 193, + "name": "EbP", + "score": 0 + }, + { + "format": 192, + "name": "DON", + "score": 0 + }, + { + "format": 191, + "name": "D-Z0N3", + "score": 0 + } + ], + "language": { + "id": -2, + "name": "Original" + } + } +] \ No newline at end of file diff --git a/profiles/Transparent.json b/profiles/Transparent.json new file mode 100644 index 0000000..99f36ae --- /dev/null +++ b/profiles/Transparent.json @@ -0,0 +1,1015 @@ +[ + { + "name": "Transparent", + "upgradeAllowed": true, + "cutoff": 1002, + "items": [ + { + "quality": { + "id": 24, + "name": "WORKPRINT", + "source": "workprint", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 29, + "name": "REGIONAL", + "source": "dvd", + "resolution": 480, + "modifier": "regional" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 4, + "name": "HDTV-720p", + "source": "tv", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "name": "WEB 720p", + "items": [ + { + "quality": { + "id": 5, + "name": "WEBDL-720p", + "source": "webdl", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 14, + "name": "WEBRip-720p", + "source": "webrip", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + } + ], + "allowed": false, + "id": 1001 + }, + { + "quality": { + "id": 6, + "name": "Bluray-720p", + "source": "bluray", + "resolution": 720, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 1, + "name": "SDTV", + "source": "tv", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 20, + "name": "Bluray-480p", + "source": "bluray", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 21, + "name": "Bluray-576p", + "source": "bluray", + "resolution": 576, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 23, + "name": "DVD-R", + "source": "dvd", + "resolution": 480, + "modifier": "remux" + }, + "items": [], + "allowed": false + }, + { + "name": "CAM", + "items": [ + { + "quality": { + "id": 25, + "name": "CAM", + "source": "cam", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "quality": { + "id": 26, + "name": "TELESYNC", + "source": "telesync", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "quality": { + "id": 27, + "name": "TELECINE", + "source": "telecine", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": true + } + ], + "allowed": true, + "id": 1004 + }, + { + "quality": { + "id": 0, + "name": "Unknown", + "source": "unknown", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "name": "DVD", + "items": [ + { + "quality": { + "id": 28, + "name": "DVDSCR", + "source": "dvd", + "resolution": 480, + "modifier": "screener" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 12, + "name": "WEBRip-480p", + "source": "webrip", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 2, + "name": "DVD", + "source": "dvd", + "resolution": 0, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "quality": { + "id": 8, + "name": "WEBDL-480p", + "source": "webdl", + "resolution": 480, + "modifier": "none" + }, + "items": [], + "allowed": true + } + ], + "allowed": true, + "id": 1003 + }, + { + "quality": { + "id": 9, + "name": "HDTV-1080p", + "source": "tv", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "name": "Transparent Capable", + "items": [ + { + "quality": { + "id": 3, + "name": "WEBDL-1080p", + "source": "webdl", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "quality": { + "id": 15, + "name": "WEBRip-1080p", + "source": "webrip", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": true + }, + { + "quality": { + "id": 7, + "name": "Bluray-1080p", + "source": "bluray", + "resolution": 1080, + "modifier": "none" + }, + "items": [], + "allowed": true + } + ], + "allowed": true, + "id": 1002 + }, + { + "quality": { + "id": 30, + "name": "Remux-1080p", + "source": "bluray", + "resolution": 1080, + "modifier": "remux" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 16, + "name": "HDTV-2160p", + "source": "tv", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 18, + "name": "WEBDL-2160p", + "source": "webdl", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 17, + "name": "WEBRip-2160p", + "source": "webrip", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 19, + "name": "Bluray-2160p", + "source": "bluray", + "resolution": 2160, + "modifier": "none" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 31, + "name": "Remux-2160p", + "source": "bluray", + "resolution": 2160, + "modifier": "remux" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 22, + "name": "BR-DISK", + "source": "bluray", + "resolution": 1080, + "modifier": "brdisk" + }, + "items": [], + "allowed": false + }, + { + "quality": { + "id": 10, + "name": "Raw-HD", + "source": "tv", + "resolution": 1080, + "modifier": "rawhd" + }, + "items": [], + "allowed": false + } + ], + "minFormatScore": 0, + "cutoffFormatScore": 500, + "formatItems": [ + { + "format": 331, + "name": "Golden Popcorn 720p", + "score": 0 + }, + { + "format": 330, + "name": "LQ", + "score": -9999 + }, + { + "format": 329, + "name": "EPSiLON", + "score": 0 + }, + { + "format": 328, + "name": "playBD", + "score": 0 + }, + { + "format": 327, + "name": "BLURANiUM", + "score": 0 + }, + { + "format": 326, + "name": "PmP", + "score": 0 + }, + { + "format": 325, + "name": "WiLDCAT", + "score": 0 + }, + { + "format": 324, + "name": "TRiToN", + "score": 0 + }, + { + "format": 323, + "name": "3L", + "score": 0 + }, + { + "format": 322, + "name": "Dolby Vision w/out Fallback", + "score": 0 + }, + { + "format": 321, + "name": "UHDBits", + "score": 0 + }, + { + "format": 318, + "name": "ATMOS (Missing)", + "score": 0 + }, + { + "format": 317, + "name": "TrueHD (Missing)", + "score": -9999 + }, + { + "format": 316, + "name": "HDR10 (Missing)", + "score": 0 + }, + { + "format": 315, + "name": "HDR10", + "score": 0 + }, + { + "format": 314, + "name": "Dolby Vision", + "score": 0 + }, + { + "format": 312, + "name": "HDR10+", + "score": 0 + }, + { + "format": 308, + "name": "Stream Optimised", + "score": 0 + }, + { + "format": 307, + "name": "LoRD", + "score": 70 + }, + { + "format": 306, + "name": "Scene", + "score": 30 + }, + { + "format": 303, + "name": "mHD", + "score": -999999 + }, + { + "format": 302, + "name": "AV-1", + "score": -9999 + }, + { + "format": 301, + "name": "VVC", + "score": -9999 + }, + { + "format": 300, + "name": "Extras", + "score": -9999 + }, + { + "format": 298, + "name": "480p", + "score": 0 + }, + { + "format": 297, + "name": "Dariush ", + "score": 20 + }, + { + "format": 296, + "name": "TBB SD", + "score": 30 + }, + { + "format": 295, + "name": "Xvid", + "score": 0 + }, + { + "format": 294, + "name": "DVD", + "score": 0 + }, + { + "format": 293, + "name": "DVD REMUX ", + "score": 40 + }, + { + "format": 292, + "name": "HANDJOB SD", + "score": 20 + }, + { + "format": 291, + "name": "iTunes (Missing)", + "score": 20 + }, + { + "format": 290, + "name": "ROKU", + "score": 30 + }, + { + "format": 289, + "name": "BeyondHD", + "score": -10000 + }, + { + "format": 288, + "name": "Disc ", + "score": -9999 + }, + { + "format": 287, + "name": "3D", + "score": -9999 + }, + { + "format": 286, + "name": "Unwanted", + "score": -9999 + }, + { + "format": 285, + "name": "HDBits Internal", + "score": 70 + }, + { + "format": 284, + "name": "RightSIZE", + "score": 70 + }, + { + "format": 283, + "name": "Black and White", + "score": -9999 + }, + { + "format": 281, + "name": "TrueHD", + "score": -9999 + }, + { + "format": 280, + "name": "DTS-X", + "score": -9999 + }, + { + "format": 279, + "name": "FLAC", + "score": 0 + }, + { + "format": 278, + "name": "DTS-HD MA", + "score": -9999 + }, + { + "format": 276, + "name": "x265", + "score": -9999 + }, + { + "format": 275, + "name": "Golden Popcorn SD", + "score": 30 + }, + { + "format": 274, + "name": "Golden Popcorn 1080p", + "score": 120 + }, + { + "format": 273, + "name": "IMAX", + "score": 10 + }, + { + "format": 272, + "name": "ATMOS", + "score": 5 + }, + { + "format": 271, + "name": "DD", + "score": 0 + }, + { + "format": 270, + "name": "DTS", + "score": 0 + }, + { + "format": 269, + "name": "DD+", + "score": 0 + }, + { + "format": 268, + "name": "iTunes", + "score": 20 + }, + { + "format": 267, + "name": "Paramount+", + "score": 30 + }, + { + "format": 266, + "name": "Peacock TV", + "score": 30 + }, + { + "format": 265, + "name": "Hulu", + "score": 30 + }, + { + "format": 264, + "name": "Netflix", + "score": 40 + }, + { + "format": 263, + "name": "HBO Max", + "score": 40 + }, + { + "format": 262, + "name": "Disney+", + "score": 40 + }, + { + "format": 261, + "name": "Apple TV+", + "score": 50 + }, + { + "format": 260, + "name": "Movies Anywhere", + "score": 60 + }, + { + "format": 259, + "name": "Amazon Prime", + "score": 50 + }, + { + "format": 258, + "name": "REMUX", + "score": -9999 + }, + { + "format": 256, + "name": "x264", + "score": 10 + }, + { + "format": 255, + "name": "WEBRip", + "score": 0 + }, + { + "format": 254, + "name": "Blu-Ray", + "score": 0 + }, + { + "format": 253, + "name": "2160p", + "score": -9999 + }, + { + "format": 252, + "name": "720p", + "score": -10000 + }, + { + "format": 250, + "name": "1080p", + "score": 60 + }, + { + "format": 249, + "name": "BHDStudio", + "score": 30 + }, + { + "format": 248, + "name": "LEGi0N", + "score": 30 + }, + { + "format": 247, + "name": "FraMeSToR", + "score": 30 + }, + { + "format": 246, + "name": "iFT", + "score": 70 + }, + { + "format": 245, + "name": "MTeam", + "score": -9999 + }, + { + "format": 244, + "name": "EDPH", + "score": 30 + }, + { + "format": 243, + "name": "HANDJOB", + "score": 30 + }, + { + "format": 242, + "name": "c0ke", + "score": 110 + }, + { + "format": 241, + "name": "KASHMiR", + "score": 70 + }, + { + "format": 240, + "name": "WMING", + "score": 70 + }, + { + "format": 239, + "name": "playHD", + "score": 70 + }, + { + "format": 238, + "name": "E.N.D", + "score": 70 + }, + { + "format": 237, + "name": "GutS", + "score": 70 + }, + { + "format": 236, + "name": "BV", + "score": 70 + }, + { + "format": 235, + "name": "SiMPLE", + "score": 70 + }, + { + "format": 234, + "name": "W4NK3R", + "score": 70 + }, + { + "format": 233, + "name": "GS88", + "score": 70 + }, + { + "format": 232, + "name": "HiP", + "score": 80 + }, + { + "format": 231, + "name": "GALAXY", + "score": 70 + }, + { + "format": 230, + "name": "luvBB", + "score": 70 + }, + { + "format": 229, + "name": "NyHD", + "score": 70 + }, + { + "format": 228, + "name": "ZIMBO", + "score": 70 + }, + { + "format": 227, + "name": "ThD", + "score": 70 + }, + { + "format": 226, + "name": "SaNcTi", + "score": 70 + }, + { + "format": 225, + "name": "ORiGEN", + "score": 70 + }, + { + "format": 224, + "name": "Positive", + "score": 70 + }, + { + "format": 223, + "name": "ESiR", + "score": 70 + }, + { + "format": 222, + "name": "Chotab", + "score": 70 + }, + { + "format": 221, + "name": "xander", + "score": 70 + }, + { + "format": 220, + "name": "FTW-HD", + "score": 70 + }, + { + "format": 219, + "name": "Penumbra", + "score": 70 + }, + { + "format": 218, + "name": "TDD", + "score": 70 + }, + { + "format": 217, + "name": "Dariush SD", + "score": 70 + }, + { + "format": 216, + "name": "PTer", + "score": 70 + }, + { + "format": 215, + "name": "SbR", + "score": 70 + }, + { + "format": 214, + "name": "nmd", + "score": 70 + }, + { + "format": 213, + "name": "TBB", + "score": 70 + }, + { + "format": 212, + "name": "EA", + "score": 80 + }, + { + "format": 211, + "name": "BMF", + "score": 80 + }, + { + "format": 210, + "name": "LolHD", + "score": 80 + }, + { + "format": 209, + "name": "HDMaNiAcS", + "score": 80 + }, + { + "format": 208, + "name": "IDE", + "score": 80 + }, + { + "format": 207, + "name": "de[42]", + "score": 90 + }, + { + "format": 206, + "name": "NCmt", + "score": 100 + }, + { + "format": 205, + "name": "decibeL", + "score": 90 + }, + { + "format": 204, + "name": "NTb", + "score": 80 + }, + { + "format": 203, + "name": "CRiSC", + "score": 90 + }, + { + "format": 202, + "name": "SA89", + "score": 100 + }, + { + "format": 201, + "name": "HiDt", + "score": 100 + }, + { + "format": 200, + "name": "FoRM", + "score": 100 + }, + { + "format": 199, + "name": "HiFi", + "score": 100 + }, + { + "format": 198, + "name": "CtrlHD", + "score": 100 + }, + { + "format": 197, + "name": "VietHD", + "score": 110 + }, + { + "format": 196, + "name": "ZQ", + "score": 110 + }, + { + "format": 195, + "name": "TayTo", + "score": 110 + }, + { + "format": 194, + "name": "Geek", + "score": 110 + }, + { + "format": 193, + "name": "EbP", + "score": 120 + }, + { + "format": 192, + "name": "DON", + "score": 120 + }, + { + "format": 191, + "name": "D-Z0N3", + "score": 120 + } + ], + "language": { + "id": -1, + "name": "Any" + } + } +] \ No newline at end of file