diff --git a/imports/custom_formats/radarr/custom formats (radarr - master).json b/imports/custom_formats/radarr/custom formats (radarr - master).json index a592a7a..08f848c 100644 --- a/imports/custom_formats/radarr/custom formats (radarr - master).json +++ b/imports/custom_formats/radarr/custom formats (radarr - master).json @@ -14495,33 +14495,6 @@ } ] }, - { - "name": "QxR", - "includeCustomFormatWhenRenaming": true, - "specifications": [ - { - "name": "QxR", - "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.-])QxR\\b", - "type": "textbox", - "advanced": false, - "privacy": "normal", - "isFloat": false - } - ] - } - ] - }, { "name": "R1GY3B / B3YG1R", "includeCustomFormatWhenRenaming": true, @@ -14959,13 +14932,13 @@ ] }, { - "name": "Tigole", - "includeCustomFormatWhenRenaming": false, + "name": "QxR", + "includeCustomFormatWhenRenaming": true, "specifications": [ { - "name": "Tigole", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", + "name": "QxR", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", "negate": false, "required": true, @@ -14975,7 +14948,7 @@ "name": "value", "label": "Regular Expression", "helpText": "Custom Format RegEx is Case Insensitive", - "value": "(?<=^|[\\s.-])Tigole\\b", + "value": "(?<=^|[\\s.-])(Tigole|FreetheFish|SAMPA|afm72|Silence|r00t|YOGI|MONOLITH|Panda|Kappa|t3nzin|RCVR|ImE|RZero|Garshasp|Ghost|Bandi|QxR|Natty)(?![.\\d])", "type": "textbox", "advanced": false, "privacy": "normal", @@ -14984,7 +14957,28 @@ ] }, { - "name": "QxR", + "name": "x265", + "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))(?=.*(\\b[x]\\s?(\\.?265)\\b|HEVC)).*$", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "h265", "implementation": "ReleaseTitleSpecification", "implementationName": "Release Title", "infoLink": "https://wiki.servarr.com/radarr/settings#custom-formats-2", @@ -14996,7 +14990,70 @@ "name": "value", "label": "Regular Expression", "helpText": "Custom Format RegEx is Case Insensitive", - "value": "(?<=^|[\\s.-])QxR\\b", + "value": "(?i)h\\s*\\.?\\s*265", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "UTR (Group)", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "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": "UTR", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "UTR (Title)", + "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.-])(UTR)(?![.\\d])\\b", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "HONE", + "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.-])HONE\\b", "type": "textbox", "advanced": false, "privacy": "normal", diff --git a/imports/custom_formats/sonarr/custom formats (sonarr - master).json b/imports/custom_formats/sonarr/custom formats (sonarr - master).json index c1dc017..17e1650 100644 --- a/imports/custom_formats/sonarr/custom formats (sonarr - master).json +++ b/imports/custom_formats/sonarr/custom formats (sonarr - master).json @@ -1,12377 +1,12413 @@ [ - { - "name": "D-Z0N3", - "includeCustomFormatWhenRenaming": true, - "specifications": [ - { + { "name": "D-Z0N3", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", - "infoLink": "https://wiki.servarr.com/sonarr/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-Z0N3\\b", - "type": "textbox", - "advanced": false, - "privacy": "normal", - "isFloat": false - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "D-Z0N3", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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-Z0N3\\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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "DON", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "EbP", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Geek", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "TayTo", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ZQ", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "VietHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "CtrlHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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": "WEB", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 3, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "Unknown", + "order": 0 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } ] - }, - { - "name": "WEB", - "implementation": "SourceSpecification", - "implementationName": "Source", - "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", - "negate": true, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Source", - "value": 3, - "type": "select", - "advanced": false, - "selectOptions": [ - { - "value": 0, - "name": "Unknown", - "order": 0 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, - "name": "DVD", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } - ] - } - ] - }, - { - "name": "HiFi", - "includeCustomFormatWhenRenaming": true, - "specifications": [ - { + }, + { "name": "HiFi", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", - "infoLink": "https://wiki.servarr.com/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HiFi", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "FoRM", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HiDt", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "SA89", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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": "WEBDL", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 3, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "Unknown", + "order": 0 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } ] - }, - { - "name": "WEBDL", - "implementation": "SourceSpecification", - "implementationName": "Source", - "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", - "negate": true, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Source", - "value": 3, - "type": "select", - "advanced": false, - "selectOptions": [ - { - "value": 0, - "name": "Unknown", - "order": 0 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, - "name": "DVD", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } - ] - } - ] - }, - { - "name": "CRiSC", - "includeCustomFormatWhenRenaming": false, - "specifications": [ - { + }, + { "name": "CRiSC", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", - "infoLink": "https://wiki.servarr.com/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "CRiSC", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "NTb", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 3, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "Unknown", + "order": 0 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "TV", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 1, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "Unknown", + "order": 0 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } ] - }, - { - "name": "WEBDL", - "implementation": "SourceSpecification", - "implementationName": "Source", - "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", - "negate": true, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Source", - "value": 3, - "type": "select", - "advanced": false, - "selectOptions": [ - { - "value": 0, - "name": "Unknown", - "order": 0 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, - "name": "DVD", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } - ] - }, - { - "name": "TV", - "implementation": "SourceSpecification", - "implementationName": "Source", - "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", - "negate": true, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Source", - "value": 1, - "type": "select", - "advanced": false, - "selectOptions": [ - { - "value": 0, - "name": "Unknown", - "order": 0 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, - "name": "DVD", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } - ] - } - ] - }, - { - "name": "decibeL", - "includeCustomFormatWhenRenaming": false, - "specifications": [ - { + }, + { "name": "decibeL", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", - "infoLink": "https://wiki.servarr.com/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "decibeL", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "NCmt", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "de[42]", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "IDE", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "HDMaNiAcS", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "LolHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "BMF", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "EA", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "TBB", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/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 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } ] - } - ] - }, - { - "name": "nmd", - "includeCustomFormatWhenRenaming": false, - "specifications": [ - { + }, + { "name": "nmd", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", - "infoLink": "https://wiki.servarr.com/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "nmd", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "SbR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "PTer", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, + }, + { + "name": "Dariush SD", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Dariush", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/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 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } ] - } - ] - }, - { - "name": "TDD", - "includeCustomFormatWhenRenaming": true, - "specifications": [ - { + }, + { "name": "TDD", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", - "infoLink": "https://wiki.servarr.com/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "TDD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Penumbra", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "FTW-HD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "xander", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Chotab", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ESiR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "Positive", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ORiGEN", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "SaNcTi", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ThD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "ZIMBO", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "NyHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "luvBB", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "GALAXY", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HiP", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "GS88", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "W4NK3R", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "SiMPLE", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "BV", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "GutS", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "E.N.D", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "playHD", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "WMING", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "KASHMiR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "c0ke", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "HANDJOB", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/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 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } ] - } - ] - }, - { - "name": "EDPH", - "includeCustomFormatWhenRenaming": true, - "specifications": [ - { + }, + { "name": "EDPH", - "implementation": "ReleaseGroupSpecification", - "implementationName": "Release Group", - "infoLink": "https://wiki.servarr.com/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "EDPH", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "MTeam", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "iFT", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "FraMeSToR", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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": "REMUX", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "REMUX", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } ] - }, - { - "name": "REMUX", - "implementation": "ReleaseTitleSpecification", - "implementationName": "Release Title", - "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", - "negate": true, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Regular Expression", - "helpText": "Custom Format RegEx is Case Insensitive", - "value": "REMUX", - "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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "LEGi0N", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "BHDStudio", + "implementation": "ReleaseGroupSpecification", + "implementationName": "Release Group", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "1080p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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/sonarr/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: 2160p", - "implementation": "ReleaseTitleSpecification", - "implementationName": "Release Title", - "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "720p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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/sonarr/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": "1080p: 1080p", - "implementation": "ReleaseTitleSpecification", - "implementationName": "Release Title", - "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "2160p", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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/sonarr/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": "1080p", - "implementation": "ReleaseTitleSpecification", - "implementationName": "Release Title", - "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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/sonarr/settings#custom-formats-2", - "negate": false, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Source", - "value": 6, - "type": "select", - "advanced": false, - "selectOptions": [ - { - "value": 0, - "name": "Unknown", - "order": 0 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, - "name": "DVD", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "Blu-Ray", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 6, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "Unknown", + "order": 0 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + }, + { + "name": "Remux", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", + "negate": true, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Regular Expression", + "helpText": "Custom Format RegEx is Case Insensitive", + "value": "Remux", + "type": "textbox", + "advanced": false, + "privacy": "normal", + "isFloat": false + } + ] + } ] - }, - { - "name": "Remux", - "implementation": "ReleaseTitleSpecification", - "implementationName": "Release Title", - "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", - "negate": true, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Regular Expression", - "helpText": "Custom Format RegEx is Case Insensitive", - "value": "Remux", - "type": "textbox", - "advanced": false, - "privacy": "normal", - "isFloat": false - } - ] - } - ] - }, - { - "name": "WEBRip", - "includeCustomFormatWhenRenaming": false, - "specifications": [ - { + }, + { "name": "WEBRip", - "implementation": "SourceSpecification", - "implementationName": "Source", - "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", - "negate": false, - "required": true, - "fields": [ - { - "order": 0, - "name": "value", - "label": "Source", - "value": 4, - "type": "select", - "advanced": false, - "selectOptions": [ - { - "value": 0, - "name": "Unknown", - "order": 0 - }, - { - "value": 1, - "name": "Television", - "order": 1 - }, - { - "value": 2, - "name": "TelevisionRaw", - "order": 2 - }, - { - "value": 3, - "name": "Web", - "order": 3 - }, - { - "value": 4, - "name": "WebRip", - "order": 4 - }, - { - "value": 5, - "name": "DVD", - "order": 5 - }, - { - "value": 6, - "name": "Bluray", - "order": 6 - }, - { - "value": 7, - "name": "BlurayRaw", - "order": 7 - } - ], - "privacy": "normal", - "isFloat": false - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "WEBRip", + "implementation": "SourceSpecification", + "implementationName": "Source", + "infoLink": "https://wiki.servarr.com/sonarr/settings#custom-formats-2", + "negate": false, + "required": true, + "fields": [ + { + "order": 0, + "name": "value", + "label": "Source", + "value": 4, + "type": "select", + "advanced": false, + "selectOptions": [ + { + "value": 0, + "name": "Unknown", + "order": 0 + }, + { + "value": 1, + "name": "Television", + "order": 1 + }, + { + "value": 2, + "name": "TelevisionRaw", + "order": 2 + }, + { + "value": 3, + "name": "Web", + "order": 3 + }, + { + "value": 4, + "name": "WebRip", + "order": 4 + }, + { + "value": 5, + "name": "DVD", + "order": 5 + }, + { + "value": 6, + "name": "Bluray", + "order": 6 + }, + { + "value": 7, + "name": "BlurayRaw", + "order": 7 + } + ], + "privacy": "normal", + "isFloat": false + } + ] + } ] - } - ] - }, - { - "name": "x264", - "includeCustomFormatWhenRenaming": false, - "specifications": [ - { + }, + { "name": "x264", - "implementation": "ReleaseTitleSpecification", - "implementationName": "Release Title", - "infoLink": "https://wiki.servarr.com/sonarr/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 - } + "includeCustomFormatWhenRenaming": false, + "specifications": [ + { + "name": "x264", + "implementation": "ReleaseTitleSpecification", + "implementationName": "Release Title", + "infoLink": "https://wiki.servarr.com/sonarr/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/sonarr/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/sonarr/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((? 1: + if debug_level > 0: print(f"Testing with regex: {h265_value_radarr}") # Compare Radarr and Sonarr h265 regex values diff --git a/tests/qxr.py b/tests/qxr.py new file mode 100644 index 0000000..57721dd --- /dev/null +++ b/tests/qxr.py @@ -0,0 +1,299 @@ +from extract import get_custom_format, get_regex +import re +import sys + +# ANSI escape codes for colors +GREEN = '\033[92m' +RED = '\033[91m' +RESET = '\033[0m' + +qxr_groups = { + "Tigole QxR" : [ + "A Bug's Life (1998) (2160p UHD BluRay x265 HDR AAC 7.1 English - Tigole QxR)", + "1408 (2007) Director's Cut (1080p BluRay x265 SDR AAC 5.1 English - Tigole QxR)", + "A Fistful of Dollars (1964) (1080p BluRay x265 SDR AAC 5.1 English - Tigole QxR)", + "A Taxi Driver (2017) (1080p BluRay x265 SDR AAC 5.1 Korean - Tigole QxR)", + "A Ghost Story (2017) (1080p BluRay x265 SDR AAC 5.1 English - Tigole QxR)", + "Around the World in 80 Days (2004) (1080p BluRay x265 SDR AAC 6.1 English - Tigole QxR)", + "A Good Marriage (1982) (1080p BluRay x265 SDR AAC 1.0 French - Tigole QxR)", + "A Prophet (2009) (1080p BluRay x265 SDR AAC 5.1 French - Tigole QxR)", + "A Pigeon Sat on a Branch Reflecting on Existence (2014) (1080p BluRay x265 SDR AAC 5.1 Swedish - Tigole QxR)", + "A Man for All Seasons (1966) (1080p BluRay x265 SDR AAC 5.1 English - Tigole QxR)" + ], + + "Ghost QxR" : [ + "Gentleman Jack (2019) S01 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - Ghost QxR)", + "Gentleman Jack (2019) S02 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - Ghost QxR)", + "Tuca & Bertie (2019) S01 (1080p NF WEB-DL x265 SDR DDP 5.1 English - Ghost QxR)", + "Tuca & Bertie (2019) S02 (1080p HULU WEB-DL x265 SDR AAC 2.0 English - Ghost QxR)", + "Barry (2018) S01 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - Ghost QxR)", + "Barry (2018) S02 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - Ghost QxR)", + "Barry (2018) S03 (1080p HMAX WEB-DL x265 SDR DD 5.1 English - Ghost QxR)", + "Scooby-Doo, Where Are You! (1969) S01-S02 (1080p BluRay x265 SDR DD 2.0 English - Ghost QxR)", + "The Scooby-Doo Show (1976) S01-S03 (1080p Mixed x265 SDR Mixed 2.0 English - Ghost QxR)", + "What's New, Scooby-Doo? (2002) S01-S03 + Specials (1080p HMAX WEB-DL x265 SDR DD 2.0 English - Ghost QxR)" + ], + + "Bandi QxR" : [ + "Scooby-Doo! Meets the Boo Brothers (1987) (1080p iT WEB-DL x265 SDR AAC 2.0 English - Ghost QxR)", + "Ricky Gervais Live 4: Science (2010) (1080p BluRay x265 SDR AAC 2.0 English - Bandi QxR)", + "City of God (2002) (1080p BluRay x265 SDR DDP 5.1 Portuguese - Bandi QxR)", + "The Platform (2019) (1080p BluRay x265 SDR DDP 5.1 DUAL - Bandi QxR)", + "Amores Perros (2000) (1080p BluRay x265 SDR DDP 5.1 Spanish - Bandi QxR)", + "Day of the Woman (1978) Uncut (1080p BluRay x265 SDR AAC 2.0 English - Bandi QxR)", + "Frida (2002) (1080p BluRay x265 SDR AAC 5.1 English - Bandi QxR)", + "Blue Is the Warmest Color (2013) (1080p BluRay x265 SDR AAC 5.1 French - Bandi QxR)", + "CODA (2021) (1080p DS4K ATVP WEB-DL x265 SDR DDP Atmos 5.1 English - Bandi QxR)", + "Liz and the Blue Bird (2018) (1080p BluRay x265 SDR AAC 5.1 DUAL - Bandi QxR)" + ], + + "Silence QxR" : [ + "Parasite (2019) B&W Version (1080p BluRay x265 SDR AAC 5.1 Korean - Silence QxR)", + "She Said (2022) (1080p MA WEB-DL x265 SDR DDP 5.1 English - Silence QxR)", + "The Office (2005) S01 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "The Office (2005) S02 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "The Office (2005) S03 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "The Office (2005) S04 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "The Office (2005) S05 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "The Office (2005) S06 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "The Office (2005) S07 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "The Office (2005) S08 (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)" + ], + + "Rzerox QxR" : [ + "Monk (2002) S01 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - RZeroX QxR)", + "Monk (2002) S02 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - RZeroX QxR)", + "Monk (2002) S03 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - RZeroX QxR)", + "Monk (2002) S08 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - RZeroX QxR)", + "Monk (2002) S04 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - RZeroX QxR)", + "Monk (2002) S05 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - RZeroX QxR)", + "Monk (2002) S06 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - RZeroX QxR)", + "Monk (2002) S07 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - RZeroX QxR)", + "Wallace & Gromit - The Curse of the Were-Rabbit (2005) (1080p BluRay x265 SDR AAC 5.1 English - RZeroX QxR)", + "Gifted (2017) (1080p BluRay x265 SDR AAC 5.1 English - RZeroX QxR)" + ], + + "Sampa QxR" : [ + "Ad Astra (2019) (2160p UHD BluRay x265 HDR TrueHD Atmos 7.1 English - SAMPA QxR)", + "Alita - Battle Angel (2019) Open Matte (1080p WEB-DL Hybrid x265 SDR DDP 7.1 English - SAMPA QxR)", + "The Adventures of Tintin (2011) (1080p BluRay x265 SDR DDP 7.1 English - SAMPA QxR)", + "The Killer (1989) (1080p BluRay x265 SDR DDP 5.1 DUAL - SAMPA QxR)", + "The Assassin (2015) (1080p BluRay x265 SDR DD 5.1 Mandarin - SAMPA QxR)", + "The Incredible Hulk (2008) (1080p BluRay x265 SDR DDP 7.1 English - SAMPA QxR)", + "The Living Daylights (1987) (1080p BluRay x265 SDR DTS 5.1 English - SAMPA QxR)", + "Bumblebee (2018) (2160p UHD BluRay x265 HDR TrueHD Atmos 7.1 English - SAMPA QxR)", + "Pitch Black (2000) (1080p BluRay x265 SDR AAC 5.1 English - Natty QxR)", + "Queen (2014) (1080p BluRay x265 SDR AAC 7.1 Hindi - Natty QxR)" + ], + + "FreeTheFish QxR" : [ + "Flubber (1997) (1080p WEBRip x265 SDR DDP 5.1 English - FreetheFish QxR)", + "The Breakfast Club (1985) Criterion (1080p BluRay x265 SDR AAC 5.1 English - FreetheFish QxR)", + "A Christmas Story (1983) (1080p BluRay x265 SDR AAC 1.0 English - FreetheFish QxR)", + "Freaky Friday (2003) 15th Anniversary (1080p BluRay x265 SDR AAC 5.1 English - Tigole QxR)", + "How the Grinch Stole Christmas! (1966) (1080p BluRay x265 SDR AAC 2.0 English - FreetheFish QxR)", + "The Nightmare Before Christmas (1993) (1080p BluRay x265 SDR AAC 7.1 English - FreetheFish QxR)", + "American History X (1998) (1080p BluRay x265 SDR AAC 7.1 English - FreetheFish QxR)", + "The Hunchback of Notre Dame (1996) (1080p BluRay x265 SDR AAC 5.1 English - FreetheFish QxR)", + "Bodied (2018) (1080p DS4K RED WEB-DL x265 SDR AAC 5.1 English - FreetheFish QxR)", + "Arthur and the Invisibles (2006) (1080p BluRay x265 SDR AAC 5.1 English - FreetheFish QxR)" + ], + + "Natty QxR" : [ + "Swades (2004) (1080p BluRay x265 SDR AAC 5.1 Hindi - Natty QxR)", + "You Dont Mess with the Zohan (2008) UNRATED (1080p BluRay x265 SDR AAC 5.1 English - Natty QxR)", + "Khakee (2004) (1080p BluRay x265 SDR AAC 2.0 Hindi - Natty QxR)", + "The Message (1976) (1080p BluRay x265 SDR AAC 5.1 English - Natty QxR)", + "3:10 to Yuma (2007) (1080p BluRay x265 SDR AAC 7.1 English - afm72 QxR)", + "Premium Rush (2012) (1080p BluRay x265 SDR AAC 5.1 English - afm72 QxR)", + "Forrest Gump (1994) (1080p BluRay x265 SDR AAC 7.1 English - afm72 QxR)", + "Bill & Ted's Excellent Adventure (1989) (1080p RM4K BluRay x265 SDR AAC 2.0 English - Tigole QxR)", + "Nick and Norah's Infinite Playlist (2008) (1080p BluRay x265 SDR AAC 5.1 English - Tigole QxR)", + "Iron Sky (2012) Director's Cut (1080p BluRay x265 SDR AAC 5.1 English - Tigole QxR)" + ], + + "afm72 QxR" : [ + "21 Grams (2003) (1080p BluRay x265 SDR AAC 5.1 English - afm72 QxR)", + "Dog Day Afternoon (1975) (1080p BluRay x265 SDR AAC 1.0 English - afm72 QxR)", + "Bicycle Thieves (1948) Arrow (1080p BluRay x265 SDR AAC 1.0 Italian - afm72 QxR)", + "Bringing Up Baby (1938) Criterion (1080p BluRay x265 SDR AAC 1.0 English - afm72 QxR)", + "Definitely, Maybe (2008) (1080p BluRay x265 SDR AAC 5.1 English - afm72 QxR)", + "La Strada (1954) Criterion (1080p BluRay x265 SDR AAC 1.0 DUAL - afm72 QxR)", + "Ikiru (1952) Criterion (1080p BluRay x265 SDR AAC 1.0 Japanese - afm72 QxR)", + "Kes (1970) (1080p BluRay x265 SDR AAC 1.0 English - afm72 QxR)", + "Where Is My Friend's House? (1987) Criterion (1080p BluRay x265 SDR AAC 1.0 Persian - afm72 QxR)", + "Stalker (1979) (1080p BluRay x265 SDR AAC 2.0 Russian - afm72 QxR)" + ], + + "iME QxR" : [ + "The Twilight Zone (1959) S01 (1080p BluRay x265 SDR AAC 2.0 English - ImE QxR)", + "The Twilight Zone (1959) S02 (1080p BluRay x265 SDR AAC 2.0 English - ImE QxR)", + "The Twilight Zone (1959) S03 (1080p BluRay x265 SDR AAC 2.0 English - ImE QxR)", + "The Twilight Zone (1959) S04 (1080p BluRay x265 SDR AAC 2.0 English - ImE QxR)", + "The Twilight Zone (1959) S05 (1080p BluRay x265 SDR AAC 2.0 English - ImE QxR)", + "The West Wing (1999) S00 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - ImE QxR)", + "The West Wing (1999) S01 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - ImE QxR)", + "The West Wing (1999) S02 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - ImE QxR)", + "The West Wing (1999) S03 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - ImE QxR)", + "The West Wing (1999) S04 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - ImE QxR)" + ], + + "MONOLiTH QxR" : [ + "Last Week Tonight with John Oliver (2014) S01 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - MONOLITH QxR)", + "Last Week Tonight with John Oliver (2014) S02 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - MONOLITH QxR)", + "Last Week Tonight with John Oliver (2014) S03 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - MONOLITH QxR)", + "Last Week Tonight with John Oliver (2014) S04 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - MONOLITH QxR)", + "Last Week Tonight with John Oliver (2014) S05 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - MONOLITH QxR)", + "Last Week Tonight with John Oliver (2014) S06 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - MONOLITH QxR)", + "Last Week Tonight with John Oliver (2014) S07 (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - MONOLITH QxR)", + "Last Week Tonight with John Oliver (2014) S08 (1080p HMAX WEB-DL x265 SDR DD 2.0 English - MONOLITH QxR)", + "How It's Made (2001) S24 (1080p WEB-DL x265 SDR AAC 2.0 English - MONOLITH QxR)", + "How It's Made (2001) S28 (1080p WEB-DL x265 SDR AAC 2.0 English - MONOLITH QxR)" + ], + + "r00t QxR" : [ + "A Face in the Crowd (1957) (1080p BluRay x265 SDR AAC 1.0 English - r00t QxR)", + "Anatomy of a Murder (1959) Criterion (1080p BluRay x265 SDR AAC 1.0 English - r00t QxR)", + "BASEketball (1998) (1080p BluRay x265 SDR AAC 5.1 English - r00t QxR)", + "Belle de Jour (1967) Criterion (1080p BluRay x265 SDR AAC 1.0 French - r00t QxR)", + "Blow-Up (1966) Criterion (1080p BluRay x265 SDR AAC 1.0 English - r00t QxR)", + "Chimes at Midnight (1965) Criterion (1080p BluRay x265 SDR AAC 1.0 English - r00t QxR)", + "High and Low (1963) Criterion (1080p BluRay x265 SDR AAC 4.0 Japanese - r00t QxR)", + "House (1977) Criterion (1080p BluRay x265 SDR AAC 1.0 Japanese - r00t QxR)", + "The Lady from Shanghai (1947) (1080p BluRay x265 SDR AAC 1.0 English - r00t QxR)", + "The 400 Blows (1959) Criterion (1080p BluRay x265 SDR AAC 1.0 French - r00t QxR)" + ], + + "RCVR QxR" : [ + "Gavin & Stacey (2007) S01 (1080p BluRay x265 SDR AAC 2.0 English - RCVR QxR)", + "Gavin & Stacey (2007) S02 (1080p BluRay x265 SDR AAC 2.0 English - RCVR QxR)", + "Gavin & Stacey (2007) S03 (1080p BluRay x265 SDR AAC 2.0 English - RCVR QxR)", + "South Park (1997) S01 (1080p BluRay x265 SDR AAC 5.1 English - RCVR QxR)", + "South Park (1997) S02 (1080p BluRay x265 SDR AAC 5.1 English - RCVR QxR)", + "South Park (1997) S03 (1080p BluRay x265 SDR AAC 5.1 English - RCVR QxR)", + "South Park (1997) S04 (1080p BluRay x265 SDR AAC 5.1 English - RCVR QxR)", + "South Park (1997) S05 (1080p BluRay x265 SDR AAC 5.1 English - RCVR QxR)", + "South Park (1997) S06 (1080p BluRay x265 SDR AAC 5.1 English - RCVR QxR)", + "South Park (1997) S07 (1080p BluRay x265 SDR AAC 5.1 English - RCVR QxR)" + ], + + "YOGi QxR" : [ + "The Boondocks (2005) S01 (1080p HMAX WEB-DL x265 SDR DD 2.0 English - YOGI QxR)", + "The Boondocks (2005) S02 (1080p HMAX WEB-DL x265 SDR DD 2.0 English - YOGI QxR)", + "The Boondocks (2005) S03 (1080p HMAX WEB-DL x265 SDR DD 5.1 English - YOGI QxR)", + "The Boondocks (2005) S04 (1080p HMAX WEB-DL x265 SDR DD 5.1 English - YOGI QxR)", + "Star Wars - The Clone Wars (2008) S07 (1080p DSNP WEB-DL x265 SDR DDP 5.1 English - YOGI QxR)", + "A Goofy Movie (1995) (1080p BluRay x265 SDR DD 2.0 English - YOGI QxR)", + "Rush Hour (1998) (1080p BluRay x265 SDR DDP 7.1 English - YOGI QxR)", + "Rush Hour 3 (2007) (1080p BluRay x265 SDR DDP 7.1 English - YOGI QxR)", + "Rush Hour 2 (2001) (1080p BluRay x265 SDR DDP 5.1 English - YOGI QxR)", + "Rush Hour (2016) S01 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - YOGI QxR)", + "The VelociPastor (2018) (1080p AMZN WEB-DL x265 SDR DDP 2.0 English - YOGI QxR)" + ], + + "Kappa QxR" : [ + "Californication (2007) S01 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Californication (2007) S02 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Californication (2007) S03 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Californication (2007) S04 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Californication (2007) S05 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Californication (2007) S06 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Californication (2007) S07 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Chuck (2007) S01 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Chuck (2007) S02 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)", + "Chuck (2007) S03 (1080p BluRay x265 SDR AAC 5.1 English - Kappa QxR)" + ], + + "QxR" : [ + "Over the Garden Wall (2014) S01 (1080p BluRay x265 SDR AAC 2.0 English - QxR)" + ], + + "t3nzin QxR" : [ + "Euphoria (2019) S00E01 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - t3nzin QxR)", + "Euphoria (2019) S00E02 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - t3nzin QxR)", + "Euphoria (2019) S01 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - t3nzin QxR)", + "Euphoria (2019) S02 (1080p AMZN WEB-DL x265 SDR DDP 5.1 English - t3nzin QxR)", + "House of the Dragon (2022) S01 (1080p BluRay x265 SDR DDP Atmos 5.1 English - t3nzin QxR)", + "Only Murders in the Building (2021) S02 (1080p DSNP WEB-DL x265 SDR DDP 5.1 English - t3nzin QxR)", + "Ted Lasso (2020) S02 (1080p ATVP WEB-DL x265 SDR DDP Atmos 5.1 English - t3nzin QxR)", + "Ted Lasso (2020) S00E07 (1080p ATVP WEB-DL x265 SDR DDP Atmos 5.1 English - t3nzin QxR)", + "Tiger King (2020) S01 (1080p NF WEB-DL x265 SDR DDP Atmos 5.1 English - t3nzin QxR)", + "Tiger King (2020) S02 (1080p NF WEB-DL x265 SDR DDP 5.1 English - t3nzin QxR)" + ], + + "Panda QxR" : [ + "What We Do in the Shadows (2014) (1080p BluRay x265 SDR AAC 5.1 English - Silence QxR)", + "Black Mirror (2011) S03 (1080p BluRay x265 SDR AAC 5.1 English - Panda QxR)", + "Black Mirror (2011) S04 (1080p BluRay x265 SDR AAC 5.1 English - Panda QxR)", + "Threads (1984) (1080p BluRay x265 SDR AAC 2.0 English - Panda QxR)", + "Bicentennial Man (1999) (1080p AMZN WEB-DL x265 SDR AAC 5.1 English - Panda QxR)", + "Blue Mountain State (2010) S01 (1080p BluRay x265 SDR AAC 5.1 English - Panda QxR)", + "Blue Mountain State (2010) S02 (1080p WEB-DL x265 SDR AAC 2.0 English - Panda QxR)", + "Blue Mountain State (2010) S03 (1080p WEB-DL x265 SDR AAC 2.0 English - Panda QxR)", + "Blue Mountain State - The Rise of Thadland (2016) (1080p BluRay x265 SDR AAC 5.1 English - Panda QxR)", + "Children of Men (2006) (1080p BluRay x265 SDR AAC 5.1 English - Panda QxR)" + ], + + "Garshasp QxR" : [ + "Titanic (1997) (1080p BluRay x265 SDR AAC 5.1 English - Garshasp QxR)", + "The Red Turtle (2016) (1080p BluRay x265 SDR DDP 5.1 English - Garshasp QxR)", + "Howl's Moving Castle (2004) (1080p BluRay x265 SDR DDP 5.1 DUAL - Garshasp QxR)", + "While You Were Sleeping (1995) (1080p BluRay x265 SDR DDP 5.1 English - Garshasp QxR)", + "From Up on Poppy Hill (2011) (1080p BluRay x265 SDR DDP 5.1 DUAL - Garshasp QxR)", + "The Wind Rises (2013) (1080p BluRay x265 SDR DDP 2.0 DUAL - Garshasp QxR)", + "Adventures of Tintin (1991) S01 (1080p BluRay x265 SDR DDP 5.1 DUAL - Garshasp QxR)", + "Adventures of Tintin (1991) S02 (1080p BluRay x265 SDR DDP 5.1 DUAL - Garshasp QxR)", + "Adventures of Tintin (1991) S03 (1080p BluRay x265 SDR DDP 5.1 DUAL - Garshasp QxR)", + "Planet of the Apes (1968) (1080p BluRay x265 SDR DDP 5.1 English - Garshasp QxR)" + ], + + "Lion QxR" : [ + "Millennium (2010) S01 (1080p BluRay x265 SDR AAC 5.1 Swedish - LION QxR)" + ], + + "Langbard QxR" : [ + "Constantine (2014) S01 (1080p BluRay x265 SDR AAC 5.1 English - Langbard QxR)" + ], +} + + +def qxr(debug_level=0): + # Get the custom formats for "qxr" from both Radarr and Sonarr + qxr_radarr = get_custom_format("qxr", "radarr", debug_level) + qxr_sonarr = get_custom_format("qxr", "sonarr", debug_level) + + # Extract the regex values for both Radarr and Sonarr using get_regex + qxr_value_radarr = get_regex(qxr_radarr, "qxr", debug_level) + qxr_value_sonarr = get_regex(qxr_sonarr, "qxr", debug_level) + + # Replace the negative lookbehind with a negative lookahead + qxr_value_radarr = qxr_value_radarr.replace("(?<=^|[\\s.-])", "(?:^|[\\s.-])") + qxr_value_sonarr = qxr_value_sonarr.replace("(?<=^|[\\s.-])", "(?:^|[\\s.-])") + + if debug_level > 0: + print(f"Testing with regex: {qxr_value_radarr}") + + # Compare Radarr and Sonarr qxr regex values + if qxr_value_radarr != qxr_value_sonarr: + print("Test Failed: regex value not same.") + print(f"Radarr regex: {qxr_value_radarr}") + print(f"Sonarr regex: {qxr_value_sonarr}") + sys.exit(1) + + failed_matches = [] + + for group in qxr_groups: + print(f"\nTesting {group}:") + for release in qxr_groups[group]: # Access the list of releases using the dictionary key + if re.search(qxr_value_radarr, release, re.IGNORECASE): + print(f" - {release}: {GREEN}Passed{RESET}") + else: + failed_matches.append(release) + print(f" - {release}: {RED}Failed{RESET}") + + + # Determine and print overall test result + if not failed_matches: + return True + else: + return False \ No newline at end of file diff --git a/tests/regex.py b/tests/regex.py index a067d65..dafe608 100644 --- a/tests/regex.py +++ b/tests/regex.py @@ -1,6 +1,8 @@ import sys from roku import roku from h265verify import h265 +from qxr import qxr +from utr import utr # ... import other test functions # ANSI escape codes for colors @@ -13,7 +15,10 @@ RESET = '\033[0m' def run_tests(): tests = [ ("ROKU", roku), - ("h265 Verified Groups", h265) + ("h265 Verified Groups", h265), + ("QxR Groups", qxr), + ("UTR Groups", utr) + # ... add other test functions ] diff --git a/tests/roku.py b/tests/roku.py index 16a8626..31d35b6 100644 --- a/tests/roku.py +++ b/tests/roku.py @@ -16,7 +16,7 @@ def roku(debug_level=0): roku_value_radarr = get_regex(roku_radarr, "roku", debug_level) roku_value_sonarr = get_regex(roku_sonarr, "roku", debug_level) - if debug_level == 0: + if debug_level > 0: print(f"Testing with regex: {roku_value_radarr}") # Compare Radarr and Sonarr Roku regex values diff --git a/tests/utr.py b/tests/utr.py new file mode 100644 index 0000000..7cd9f0a --- /dev/null +++ b/tests/utr.py @@ -0,0 +1,101 @@ +from extract import get_custom_format, get_regex +import re +import sys + +# ANSI escape codes for colors +GREEN = '\033[92m' +RED = '\033[91m' +RESET = '\033[0m' + +def utr(debug_level=0): + # Define good and bad matches for Radarr and Sonarr + radarr_good_matches = [ + "Brigsby Bear (2017) (1080p BluRay x265 SDR AAC 5.1 English - Tigole UTR)", + "Risky Business (1983) (1080p BluRay x265 SDR AAC 5.1 English - FreetheFish UTR)", + "Labyrinth (1986) 30th Anniversary (1080p BluRay x265 SDR AAC 7.1 English - Tigole UTR)", + "Love Actually (2003) (1080p BluRay x265 SDR AAC 5.1 English - Tigole UTR)" + ] + radarr_bad_matches = [ + "Eva.Soda.Utroskab.med.den.første.kvinde.i.bilen.Sex.i.bilen.6462a7a8a5d9e.", + "Outrage.1950.1080p.BluRay.Flac.2.0.x265.HEVC-Nb8.mkv", + "Utro 1966 DANiSH 720p WEB-DL H 264 AAC2 0-TWA" + ] + sonarr_good_matches = [ + "The Simpsons (1989) S07 (480p DVD x265 SDR AAC 5.1 English - ImE UTR)", + "The Simpsons (1989) S14 (1080p BluRay x265 SDR AAC 5.1 English - ImE UTR)" + ] + sonarr_bad_matches = [ + "The.Outreau.Case.A.French.Nightmare.S01E01.The.Renard.Block.1080p.NF.WEB-DL.DDP5.1.H.264-NTb.mkv", + "The.Outreau.Case.A.French.Nightmare.S01.1080p.NF.WEB-DL.DDP5.1.H.264-NTb" + ] + + # Get the custom formats for "qxr" from both Radarr and Sonarr + qxr_radarr = get_custom_format("qxr", "radarr", debug_level) + qxr_sonarr = get_custom_format("qxr", "sonarr", debug_level) + + # Extract the regex values for both Radarr and Sonarr using get_regex + UTR_value_radarr = get_regex(qxr_radarr, "UTR (Title)", debug_level) + UTR_value_sonarr = get_regex(qxr_sonarr, "UTR (Title)", debug_level) + + # Replace the negative lookbehind with a negative lookahead if necessary + UTR_value_radarr = UTR_value_radarr.replace("(?<=^|[\\s.-])", "(?:^|[\\s.-])") + UTR_value_sonarr = UTR_value_sonarr.replace("(?<=^|[\\s.-])", "(?:^|[\\s.-])") + + if debug_level > 0: + print(f"Testing with regex: {UTR_value_radarr}") + + # Compare Radarr and Sonarr qxr regex values + if UTR_value_radarr != UTR_value_sonarr: + print("Test Failed: regex value not same.") + print(f"Radarr regex: {UTR_value_radarr}") + print(f"Sonarr regex: {UTR_value_sonarr}") + sys.exit(1) + + failed_good_matches = [] + failed_bad_matches = [] + + # Print Radarr Good Matches + print("\nRadarr Releases:") + print("----------------") + print("Should Match:") + for term in radarr_good_matches: + if re.search(UTR_value_radarr, term, re.IGNORECASE): + print(f" - {term}: {GREEN}Passed{RESET}") + else: + failed_good_matches.append(("Radarr", term)) + print(f" - {term}: {RED}Failed{RESET}") + + # Print Radarr Bad Matches + print("\nShould NOT Match:") + for term in radarr_bad_matches: + if not re.search(UTR_value_radarr, term, re.IGNORECASE): + print(f" - {term}: {GREEN}Passed{RESET}") + else: + failed_bad_matches.append(("Radarr", term)) + print(f" - {term}: {RED}Failed{RESET}") + + # Print Sonarr Good Matches + print("\nSonarr Releases:") + print("----------------") + print("Should Match:") + for term in sonarr_good_matches: + if re.search(UTR_value_sonarr, term, re.IGNORECASE): + print(f" - {term}: {GREEN}Passed{RESET}") + else: + failed_good_matches.append(("Sonarr", term)) + print(f" - {term}: {RED}Failed{RESET}") + + # Print Sonarr Bad Matches + print("\nShould NOT Match:") + for term in sonarr_bad_matches: + if not re.search(UTR_value_sonarr, term, re.IGNORECASE): + print(f" - {term}: {GREEN}Passed{RESET}") + else: + failed_bad_matches.append(("Sonarr", term)) + print(f" - {term}: {RED}Failed{RESET}") + + # Determine and print overall test result + if not failed_good_matches and not failed_bad_matches: + return True + else: + return False \ No newline at end of file