From 8f556bb2ede8e3d4b8c1fbef7c97b55ac94a5a67 Mon Sep 17 00:00:00 2001 From: bullmoose20 Date: Tue, 16 Jan 2024 08:24:34 -0500 Subject: [PATCH 1/7] Update config-schema.json to include new defaults --- json-schema/config-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json-schema/config-schema.json b/json-schema/config-schema.json index ee53221e..9c0fc798 100644 --- a/json-schema/config-schema.json +++ b/json-schema/config-schema.json @@ -709,7 +709,7 @@ "properties": { "pmm": { "type": "string", - "enum": ["actor", "anilist","aspect","audio_language","bafta","based","basic","cannes","choice","collectionless","content_rating_cs","content_rating_mal","content_rating_uk","content_rating_us","continent","country","decade","director","emmy","flixpatrol","franchise","genre","golden","imdb","myanimelist","network","oscars","other_award","other_chart","producer","region","resolution","seasonal","separator_award","separator_chart","spirit","streaming","studio","subtitle_language","sundance","tautulli","tmdb","trakt","universe","writer","year"] + "enum": ["actor", "anilist","aspect","audio_language","bafta","based","basic","berlinale","cannes","cesar","choice","collectionless","content_rating_cs","content_rating_de","content_rating_mal","content_rating_uk","content_rating_us","continent","country","decade","director","emmy","flixpatrol","franchise","genre","golden","imdb","myanimelist","network","nfr","oscars","other_chart","pca","producer","razzie","region","resolution","sag","seasonal","separator_award","separator_chart","spirit","streaming","studio","subtitle_language","sundance","tautulli","tiff","tmdb","trakt","universe","venice","writer","year"] }, "schedule": { "type": "string" From e16ef3e763caaa3e11df802a2a8971dad5672c7b Mon Sep 17 00:00:00 2001 From: bullmoose20 Date: Wed, 17 Jan 2024 07:21:16 -0500 Subject: [PATCH 2/7] Update config-schema.json default_collection_order --- json-schema/config-schema.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/json-schema/config-schema.json b/json-schema/config-schema.json index 9c0fc798..9f686dc5 100644 --- a/json-schema/config-schema.json +++ b/json-schema/config-schema.json @@ -592,7 +592,19 @@ "minimum": 1 }, "default_collection_order": { - "type": "string" + "type": ["string", "null"], + "enum": [ + "added.asc", "added.desc", "audience_rating.asc", + "audience_rating.desc", "bitrate.asc", "bitrate.desc", + "content_rating.asc", "content_rating.desc", "critic_rating.asc", + "critic_rating.desc", "duration.asc", "duration.desc", + "originally_available.asc", "originally_available.desc", + "plays.asc", "plays.desc", "progress.asc", "progress.desc", + "random", "release.asc", "release.desc", + "resolution.asc", "resolution.desc", "title.asc", "title.desc", + "user_rating.asc", "user_rating.desc", "viewed.asc", "viewed.desc", + "year.asc", "year.desc", null + ] }, "delete_below_minimum": { "type": "boolean" From 33fb00036431729ecd49de6048f6c0ee8c9802de Mon Sep 17 00:00:00 2001 From: bullmoose20 Date: Wed, 17 Jan 2024 07:53:02 -0500 Subject: [PATCH 3/7] Update config-schema.json for tvdb_language --- json-schema/config-schema.json | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/json-schema/config-schema.json b/json-schema/config-schema.json index 9f686dc5..4470cb88 100644 --- a/json-schema/config-schema.json +++ b/json-schema/config-schema.json @@ -644,7 +644,29 @@ "type": "boolean" }, "tvdb_language": { - "type": "string" + "type": ["string", "null"], + "enum": [ + "aar", "abk", "afr", "aka", "alb", "amh", "ara", "arg", "arm", "asm", + "ava", "ave", "aym", "aze", "bak", "bam", "bel", "ben", "bih", "bis", + "bod", "bos", "bre", "bul", "cat", "cha", "che", "chi", "chu", "chv", + "cor", "cos", "cre", "ces", "dan", "deu", "div", "dzo", "ell", "eng", + "epo", "est", "eus", "ewe", "fao", "fas", "fij", "fin", "fra", "fry", + "ful", "gla", "gle", "glg", "glv", "grn", "guj", "hat", "hau", "heb", + "her", "hin", "hmo", "hrv", "hun", "hye", "ibo", "ido", "iii", "iku", + "ile", "ina", "ind", "ipk", "isl", "ita", "jav", "jpn", "kal", "kan", + "kas", "kat", "kau", "kaz", "khm", "kik", "kin", "kir", "kom", "kon", + "kor", "kua", "kur", "lao", "lat", "lav", "lim", "lin", "lit", "ltz", + "lub", "lug", "mah", "mal", "mar", "mkd", "mlg", "mlt", "mon", "mri", + "msa", "mya", "nau", "nav", "nbl", "nde", "ndo", "nep", "nld", "nno", + "nob", "nor", "nya", "oci", "oji", "ori", "orm", "oss", "pan", "pli", + "pol", "por", "pus", "que", "roh", "ron", "run", "rus", "sag", "san", + "sin", "slk", "slv", "sme", "smo", "sna", "snd", "som", "sot", "spa", + "srd", "srp", "ssw", "sun", "swa", "swe", "tah", "tam", "tat", "tel", + "tgk", "tgl", "tha", "tir", "ton", "tsn", "tso", "tuk", "tur", "twi", + "uig", "ukr", "urd", "uzb", "ven", "vie", "vol", "wln", "wol", "xho", + "yid", "yor", "zha", "zho", "zul" + ], + "description": "This field can be either null or a valid ISO 639-2 language code." }, "ignore_ids": { "type": "null" From 565ee8d6f3486c16ba046007a9ab7a3f5a12f049 Mon Sep 17 00:00:00 2001 From: bullmoose20 Date: Wed, 17 Jan 2024 08:13:02 -0500 Subject: [PATCH 4/7] Update config-schema.json to improve language: --- json-schema/config-schema.json | 48 ++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/json-schema/config-schema.json b/json-schema/config-schema.json index 4470cb88..3cb29abd 100644 --- a/json-schema/config-schema.json +++ b/json-schema/config-schema.json @@ -145,7 +145,29 @@ "type": "string" }, "language": { - "type": "string" + "type": ["string", "null"], + "enum": [ + "aa", "ab", "af", "ak", "sq", "am", "ar", "an", "hy", "as", + "av", "ae", "ay", "az", "bm", "ba", "eu", "be", "bn", "bh", + "bi", "bs", "br", "bg", "ca", "ch", "ce", "zh", "cu", "cv", + "kw", "co", "cr", "hr", "cs", "da", "nl", "dz", "en", "eo", + "et", "ee", "fo", "fa", "fj", "fi", "fr", "fy", "ff", "ka", + "de", "gd", "ga", "gl", "gv", "gn", "gu", "ht", "ha", "he", + "hz", "hi", "ho", "hr", "hu", "hy", "ig", "is", "io", "ii", + "iu", "ie", "ia", "id", "ik", "is", "it", "jv", "ja", "kl", + "kn", "ks", "ka", "kr", "kk", "km", "ki", "rw", "ky", "kv", + "kg", "ko", "ku", "kj", "la", "lb", "lg", "li", "ln", "lo", + "lt", "lu", "lv", "gv", "mk", "mg", "ms", "ml", "mt", "mn", + "mi", "mr", "mh", "mo", "na", "nv", "nb", "nd", "ne", "nl", + "nn", "no", "ii", "oc", "oj", "or", "om", "os", "pa", "pi", + "pl", "pt", "ps", "qu", "rm", "ro", "rn", "ru", "sg", "sa", + "si", "sk", "sl", "se", "sm", "sn", "sd", "so", "st", "es", + "sc", "sr", "ss", "su", "sw", "sv", "ty", "ta", "tt", "te", + "tg", "tl", "th", "ti", "to", "tn", "ts", "tk", "tr", "tw", + "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "cy", "wo", + "xh", "yi", "yo", "za", "zh", "zu" + ], + "description": "This field can be either null or a valid ISO 639 language code." }, "region": { "type": "string", @@ -264,7 +286,29 @@ "type": "integer" }, "language": { - "type": "string" + "type": ["string", "null"], + "enum": [ + "aa", "ab", "af", "ak", "sq", "am", "ar", "an", "hy", "as", + "av", "ae", "ay", "az", "bm", "ba", "eu", "be", "bn", "bh", + "bi", "bs", "br", "bg", "ca", "ch", "ce", "zh", "cu", "cv", + "kw", "co", "cr", "hr", "cs", "da", "nl", "dz", "en", "eo", + "et", "ee", "fo", "fa", "fj", "fi", "fr", "fy", "ff", "ka", + "de", "gd", "ga", "gl", "gv", "gn", "gu", "ht", "ha", "he", + "hz", "hi", "ho", "hr", "hu", "hy", "ig", "is", "io", "ii", + "iu", "ie", "ia", "id", "ik", "is", "it", "jv", "ja", "kl", + "kn", "ks", "ka", "kr", "kk", "km", "ki", "rw", "ky", "kv", + "kg", "ko", "ku", "kj", "la", "lb", "lg", "li", "ln", "lo", + "lt", "lu", "lv", "gv", "mk", "mg", "ms", "ml", "mt", "mn", + "mi", "mr", "mh", "mo", "na", "nv", "nb", "nd", "ne", "nl", + "nn", "no", "ii", "oc", "oj", "or", "om", "os", "pa", "pi", + "pl", "pt", "ps", "qu", "rm", "ro", "rn", "ru", "sg", "sa", + "si", "sk", "sl", "se", "sm", "sn", "sd", "so", "st", "es", + "sc", "sr", "ss", "su", "sw", "sv", "ty", "ta", "tt", "te", + "tg", "tl", "th", "ti", "to", "tn", "ts", "tk", "tr", "tw", + "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "cy", "wo", + "xh", "yi", "yo", "za", "zh", "zu" + ], + "description": "This field can be either null or a valid ISO 639 language code." }, "cache_expiration": { "type": "integer" From 9f651210ec567e10daf3f2a2b9619f46927e9541 Mon Sep 17 00:00:00 2001 From: bullmoose20 Date: Wed, 17 Jan 2024 10:13:32 -0500 Subject: [PATCH 5/7] Update config-schema.json updated the country codes to remove duplicates and sort --- json-schema/config-schema.json | 72 ++++++++++++++++------------------ 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/json-schema/config-schema.json b/json-schema/config-schema.json index 3cb29abd..e32d9187 100644 --- a/json-schema/config-schema.json +++ b/json-schema/config-schema.json @@ -147,25 +147,23 @@ "language": { "type": ["string", "null"], "enum": [ - "aa", "ab", "af", "ak", "sq", "am", "ar", "an", "hy", "as", - "av", "ae", "ay", "az", "bm", "ba", "eu", "be", "bn", "bh", - "bi", "bs", "br", "bg", "ca", "ch", "ce", "zh", "cu", "cv", - "kw", "co", "cr", "hr", "cs", "da", "nl", "dz", "en", "eo", - "et", "ee", "fo", "fa", "fj", "fi", "fr", "fy", "ff", "ka", - "de", "gd", "ga", "gl", "gv", "gn", "gu", "ht", "ha", "he", - "hz", "hi", "ho", "hr", "hu", "hy", "ig", "is", "io", "ii", - "iu", "ie", "ia", "id", "ik", "is", "it", "jv", "ja", "kl", - "kn", "ks", "ka", "kr", "kk", "km", "ki", "rw", "ky", "kv", - "kg", "ko", "ku", "kj", "la", "lb", "lg", "li", "ln", "lo", - "lt", "lu", "lv", "gv", "mk", "mg", "ms", "ml", "mt", "mn", - "mi", "mr", "mh", "mo", "na", "nv", "nb", "nd", "ne", "nl", - "nn", "no", "ii", "oc", "oj", "or", "om", "os", "pa", "pi", - "pl", "pt", "ps", "qu", "rm", "ro", "rn", "ru", "sg", "sa", - "si", "sk", "sl", "se", "sm", "sn", "sd", "so", "st", "es", - "sc", "sr", "ss", "su", "sw", "sv", "ty", "ta", "tt", "te", - "tg", "tl", "th", "ti", "to", "tn", "ts", "tk", "tr", "tw", - "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "cy", "wo", - "xh", "yi", "yo", "za", "zh", "zu" + "aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", + "ay", "az", "ba", "be", "bg", "bh", "bi", "bm", "bn", "bo", + "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cu", "cv", + "cy", "da", "de", "dz", "ee", "el", "en", "eo", "es", "et", + "eu", "fa", "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", + "gv", "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", + "ia", "id", "ie", "ig", "ii", "ik", "io", "is", "it", "iu", + "ja", "jv", "ka", "kg", "ki", "kj", "kk", "kl", "km", "kn", + "ko", "kr", "ks", "ku", "kv", "kw", "ky", "la", "lb", "lg", + "li", "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", + "ml", "mn", "mo", "mr", "ms", "mt", "nb", "nd", "ne", "nl", + "nn", "no", "oc", "oj", "om", "or", "os", "pa", "pi", "pl", + "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "se", "sg", + "si", "sk", "sl", "sm", "sn", "so", "sq", "sr", "ss", "st", + "su", "sv", "sw", "ta", "te", "tg", "th", "ti", "tk", "tl", + "tn", "to", "tr", "ts", "tt", "tw", "ug", "uk", "ur", "uz", + "vi", "vo", "wa", "wo", "xh", "yi", "yo", "za", "zh", "zu" ], "description": "This field can be either null or a valid ISO 639 language code." }, @@ -288,25 +286,23 @@ "language": { "type": ["string", "null"], "enum": [ - "aa", "ab", "af", "ak", "sq", "am", "ar", "an", "hy", "as", - "av", "ae", "ay", "az", "bm", "ba", "eu", "be", "bn", "bh", - "bi", "bs", "br", "bg", "ca", "ch", "ce", "zh", "cu", "cv", - "kw", "co", "cr", "hr", "cs", "da", "nl", "dz", "en", "eo", - "et", "ee", "fo", "fa", "fj", "fi", "fr", "fy", "ff", "ka", - "de", "gd", "ga", "gl", "gv", "gn", "gu", "ht", "ha", "he", - "hz", "hi", "ho", "hr", "hu", "hy", "ig", "is", "io", "ii", - "iu", "ie", "ia", "id", "ik", "is", "it", "jv", "ja", "kl", - "kn", "ks", "ka", "kr", "kk", "km", "ki", "rw", "ky", "kv", - "kg", "ko", "ku", "kj", "la", "lb", "lg", "li", "ln", "lo", - "lt", "lu", "lv", "gv", "mk", "mg", "ms", "ml", "mt", "mn", - "mi", "mr", "mh", "mo", "na", "nv", "nb", "nd", "ne", "nl", - "nn", "no", "ii", "oc", "oj", "or", "om", "os", "pa", "pi", - "pl", "pt", "ps", "qu", "rm", "ro", "rn", "ru", "sg", "sa", - "si", "sk", "sl", "se", "sm", "sn", "sd", "so", "st", "es", - "sc", "sr", "ss", "su", "sw", "sv", "ty", "ta", "tt", "te", - "tg", "tl", "th", "ti", "to", "tn", "ts", "tk", "tr", "tw", - "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "cy", "wo", - "xh", "yi", "yo", "za", "zh", "zu" + "aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", + "ay", "az", "ba", "be", "bg", "bh", "bi", "bm", "bn", "bo", + "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cu", "cv", + "cy", "da", "de", "dz", "ee", "el", "en", "eo", "es", "et", + "eu", "fa", "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", + "gv", "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", + "ia", "id", "ie", "ig", "ii", "ik", "io", "is", "it", "iu", + "ja", "jv", "ka", "kg", "ki", "kj", "kk", "kl", "km", "kn", + "ko", "kr", "ks", "ku", "kv", "kw", "ky", "la", "lb", "lg", + "li", "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", + "ml", "mn", "mo", "mr", "ms", "mt", "nb", "nd", "ne", "nl", + "nn", "no", "oc", "oj", "om", "or", "os", "pa", "pi", "pl", + "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "se", "sg", + "si", "sk", "sl", "sm", "sn", "so", "sq", "sr", "ss", "st", + "su", "sv", "sw", "ta", "te", "tg", "th", "ti", "tk", "tl", + "tn", "to", "tr", "ts", "tt", "tw", "ug", "uk", "ur", "uz", + "vi", "vo", "wa", "wo", "xh", "yi", "yo", "za", "zh", "zu" ], "description": "This field can be either null or a valid ISO 639 language code." }, From fa30a357c10f4720eeb966ccdc28c1b1e6d1fe95 Mon Sep 17 00:00:00 2001 From: bullmoose20 Date: Wed, 17 Jan 2024 13:27:46 -0500 Subject: [PATCH 6/7] Update config-schema.json additonal minimums and descriptions added --- json-schema/config-schema.json | 39 +++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/json-schema/config-schema.json b/json-schema/config-schema.json index e32d9187..64a6b559 100644 --- a/json-schema/config-schema.json +++ b/json-schema/config-schema.json @@ -66,7 +66,8 @@ }, "timeout": { "description": "Connection timeout for this Plex server", - "type": "integer" + "type": "integer", + "minimum": 0 }, "db_cache": { "description": "Sets DB Cache value for this Plex server", @@ -111,7 +112,8 @@ }, "timeout": { "description": "Connection timeout in seconds for this Plex server", - "type": "integer" + "type": "integer", + "minimum": 0 }, "db_cache": { "description": "Sets DB Cache value for this Plex server", @@ -137,12 +139,13 @@ "title": "plex" }, "tmdb-api": { - "description": "API Key to connect to TMDB; REQUIRED for the script to run", + "description": "API Information to connect to TMDB; REQUIRED for the script to run", "type": "object", "additionalProperties": false, "properties": { "apikey": { - "type": "string" + "type": "string", + "description": "API Key to connect to TMDB; REQUIRED for the script to run" }, "language": { "type": ["string", "null"], @@ -169,10 +172,13 @@ }, "region": { "type": "string", - "enum": ["","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IN","IO","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XC","XG","XI","XK","YE","YT","YU","ZA","ZM","ZR","ZW"] + "enum": ["","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IN","IO","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XC","XG","XI","XK","YE","YT","YU","ZA","ZM","ZR","ZW"], + "description": "This field can be either null or a valid ISO 3166-1 Code." }, "cache_expiration": { - "type": "integer" + "type": "integer", + "minimum": 1, + "description": "An integer greater than 0" } }, "required": [ @@ -234,7 +240,9 @@ "type": "string" }, "cache_expiration": { - "type": "integer" + "type": "integer", + "minimum": 1, + "description": "An integer greater than 0" } }, "required": [ @@ -251,7 +259,9 @@ "type": "string" }, "cache_expiration": { - "type": "integer" + "type": "integer", + "minimum": 1, + "description": "An integer greater than 0" } }, "required": [ @@ -281,7 +291,8 @@ "type": "string" }, "version": { - "type": "integer" + "type": "integer", + "minimum": 1 }, "language": { "type": ["string", "null"], @@ -307,7 +318,9 @@ "description": "This field can be either null or a valid ISO 639 language code." }, "cache_expiration": { - "type": "integer" + "type": "integer", + "minimum": 1, + "description": "An integer greater than 0" }, "username": { "type": "string" @@ -585,7 +598,8 @@ }, "cache_expiration": { "type": "integer", - "minimum": 1 + "minimum": 1, + "description": "An integer greater than 0" }, "run_order": { "type": "array", "uniqueItems": true, "items": {"enum": ["operations", "metadata", "collections", "overlays"]} @@ -715,7 +729,8 @@ "type": "null" }, "item_refresh_delay": { - "type": "integer" + "type": "integer", + "minimum": 0 }, "playlist_sync_to_users": { "type": [ "string", "null" ] From 23682f3e18ce25291040056ba2a70939900325a9 Mon Sep 17 00:00:00 2001 From: bullmoose20 Date: Wed, 17 Jan 2024 18:04:12 -0500 Subject: [PATCH 7/7] Update config-schema.json additional validations in the settings section --- json-schema/config-schema.json | 123 +++++++++++++++++++++++++++++---- 1 file changed, 108 insertions(+), 15 deletions(-) diff --git a/json-schema/config-schema.json b/json-schema/config-schema.json index 64a6b559..c3c831f4 100644 --- a/json-schema/config-schema.json +++ b/json-schema/config-schema.json @@ -65,12 +65,12 @@ "type": "string" }, "timeout": { - "description": "Connection timeout for this Plex server", + "description": "Connection timeout in seconds for this Plex server", "type": "integer", "minimum": 0 }, "db_cache": { - "description": "Sets DB Cache value for this Plex server", + "description": "Sets DB Cache value for this Plex server in MB", "oneOf": [ { "type": "integer" }, { "type": "string", "pattern": "^$" } @@ -116,7 +116,7 @@ "minimum": 0 }, "db_cache": { - "description": "Sets DB Cache value for this Plex server", + "description": "Sets DB Cache value for this Plex server in MB", "oneOf": [ { "type": "integer" }, { "type": "string", "pattern": "^$" } @@ -178,7 +178,7 @@ "cache_expiration": { "type": "integer", "minimum": 1, - "description": "An integer greater than 0" + "description": "An integer greater than 0 in days" } }, "required": [ @@ -242,7 +242,7 @@ "cache_expiration": { "type": "integer", "minimum": 1, - "description": "An integer greater than 0" + "description": "An integer greater than 0 in days" } }, "required": [ @@ -261,7 +261,7 @@ "cache_expiration": { "type": "integer", "minimum": 1, - "description": "An integer greater than 0" + "description": "An integer greater than 0 in days" } }, "required": [ @@ -320,7 +320,7 @@ "cache_expiration": { "type": "integer", "minimum": 1, - "description": "An integer greater than 0" + "description": "An integer greater than 0 in days" }, "username": { "type": "string" @@ -594,58 +594,73 @@ "additionalProperties": false, "properties": { "cache": { - "type": "boolean" + "type": "boolean", + "description": "Used to control PMM's cache database. Allow Plex Meta Manager to create and maintain a local cache database for faster subsequent processing. The cache file is created in the same directory as the configuration file." }, "cache_expiration": { "type": "integer", "minimum": 1, - "description": "An integer greater than 0" + "description": "Used to control how long data is cached for. Set the number of days before each cache mapping expires and has to be re-cached. An integer greater than 0 in days" }, "run_order": { + "description": "Used to specify the run order of the library components. Specify the run order of the library components [Library Operations, Collection Files and Overlay Files]", "type": "array", "uniqueItems": true, "items": {"enum": ["operations", "metadata", "collections", "overlays"]} }, "asset_directory": { + "description": "Used to define where local assets are located. Specify the directories where assets (posters, backgrounds, etc) are located.", "oneOf": [ { "type": "string"}, { "type": "array", "uniqueItems": true, "items": {"type": "string" }} ] }, "asset_folders": { + "description": "Used to control the asset directory folder structure. While true, PMM will search the asset_directory for a dedicated folder per item vs while false will look for an image.", "type": "boolean" }, "asset_depth": { + "description": "Used to control the depth of search in the asset directory. At each asset level, PMM will look for either medianame.ext [such as Star Wars.png] or a dedicated folder containing poster.ext. i.e. /Star Wars/poster.png and /Star Wars.png are both asset depth 0, whilst /Movies/Star Wars/poster.png and /Movies/Star Wars.png are both asset level 1.", "type": "integer", "minimum": 0 }, "create_asset_folders": { + "description": "Used to automatically create asset folders when none exist. Whilst searching for assets, if an asset folder cannot be found within the asset_directory one will be created. Asset Searches can happen in a number of ways.", "type": "boolean" }, "prioritize_assets": { + "description": "Used to prioritize asset_directory images over all other images types. When determining which image to use on an item prioritize the asset_directory over all other images types.", "type": "boolean" }, "dimensional_asset_rename": { + "description": "Used to automatically rename asset files based on their dimensions. Whilst searching for assets, scan the folders within the asset_directory and if an asset poster (i.e. /ASSET_NAME/poster.ext) was not found, rename the first image found that has a height greater than or equal to its width to poster.ext. If an asset background (i.e. /ASSET_NAME/background.ext), rename the first image found that has a width greater than its height to background.ext.", "type": "boolean" }, "download_url_assets": { + "description": "Used to download url images into the asset directory. Whilst searching for assets, download images set within Collection/Metadata/Playlist files( i.e. images set by url_poster or url_background) into the asset folder if none are already present.", "type": "boolean" }, "show_missing_season_assets": { + "description": " Used to show any missing season assets. Whilst searching for assets, when scanning for assets for a TV Show, if Season posters are found (i.e. /ASSET_NAME/Season##.ext), notify the user of any seasons which do not have an asset image.", "type": "boolean" }, "show_missing_episode_assets": { + "description": "Used to show any missing episode assets. Whilst searching for assets, when scanning for assets for a TV Show, if an Episode Title Card is found (i.e. /ASSET_NAME/S##E##.ext), notify the user of any episodes which do not have an asset image.", "type": "boolean" }, "show_asset_not_needed": { + "description": "Used to show/hide the update not needed messages. Whilst searching for assets, show or hide the update not needed messages.", "type": "boolean" }, "sync_mode": { + "description": "Used to set the sync_mode for collections and playlists. Sets the sync_mode for collections and playlists. Setting the sync_mode directly in a collection or playlist definition will override the sync_mode for that definition.", "enum": ["sync", "append"] }, "minimum_items": { + "description": "Used to control minimum items requires to build a collection/playlist. Set the minimum number of items that must be found in order to build or update a collection/playlist.", "type": "integer", "minimum": 1 }, "default_collection_order": { + "description": "Used to set the collection_order for every collection run. Set the collection_order for every collection run by PMM unless the collection has a specific collection_order", "type": ["string", "null"], "enum": [ "added.asc", "added.desc", "audience_rating.asc", @@ -661,40 +676,52 @@ ] }, "delete_below_minimum": { + "description": "Used to delete collections below minimum_items. When a collection is run, delete the collection if it is below the minimum number specified by minimum_items.", "type": "boolean" }, "delete_not_scheduled": { + "description": "Used to delete collections not scheduled. If a collection is skipped due to it not being scheduled, delete the collection.", "type": "boolean" }, "run_again_delay": { + "description": "Used to control the number of minutes to delay running run_again collections. Set the number of minutes to delay running run_again collections after daily run is finished. For example, if a collection adds items to Sonarr/Radarr, the library can automatically re-run 'X' amount of time later so that any downloaded items are processed.", "type": "integer", "minimum": 0 }, "missing_only_released": { + "description": "Used to filter unreleased items from missing lists. Whilst running a collection or playlist, when PMM handles missing items to either report it to the user, report it to a file, or send it to Radarr/Sonarr all unreleased items will be filtered out.", "type": "boolean" }, "only_filter_missing": { + "description": "Used to have the filter only apply to missing items. Only items missing from a collection will be filtered. Only specific filters can filter missing. See Filters for more information.", "type": "boolean" }, "show_unmanaged": { + "description": "Used to show collections not managed by PMM. List all collections not managed by Plex Meta Manager at the end of each run.", "type": "boolean" }, "show_unconfigured": { + "description": "Used to show collections not in the current run. List all collections not configured in the current Plex Meta Manager run at the end of each run.", "type": "boolean" }, "show_filtered": { + "description": "Used to show filtered items. List all items which have been filtered out of a collection or playlist (i.e. if it doesn't meet the filter criteria)", "type": "boolean" }, "show_options": { + "description": "Used to show attribute options from plex. While show_options is true the available options for an attribute when using plex_search, smart_filter or filters will be shown. i.e. a smart_filter on the genre attribute will return all of the attributes within the specified library.", "type": "boolean" }, "show_missing": { + "description": "Used to show missing items from collections or playlists. While show_missing is true items missing from collections or playlists will be displayed.", "type": "boolean" }, "show_missing_assets": { + "description": "Used to print a message when assets are missing. Display missing asset warnings for items, collections, and playlists.", "type": "boolean" }, "save_report": { + "description": "Used to save a report YAML file. Save a report of the items added, removed, filtered, or missing from collections to a YAML file in the same directory as the file run.", "type": "boolean" }, "tvdb_language": { @@ -720,34 +747,100 @@ "uig", "ukr", "urd", "uzb", "ven", "vie", "vol", "wln", "wol", "xho", "yid", "yor", "zha", "zho", "zul" ], - "description": "This field can be either null or a valid ISO 639-2 language code." + "description": "Specify the language to query TVDb in. This field can be either null or a valid ISO 639-2 language code." }, "ignore_ids": { - "type": "null" + "description": "List of TMDb/TVDb IDs to ignore. Set a null, a single TMDb/TVDb ID, or a comma-separated string of TMDb/TVDb IDs to ignore in all collections.", + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "pattern": "^(\\d+)(,(\\d+))*$" + } + ] }, "ignore_imdb_ids": { - "type": "null" + "description": "List of IMDb IDs to ignore. Set a null, a single IMDb ID, or a comma-separated string of IMDb IDs to ignore in all collections.", + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "pattern": "^(tt\\d{7})(,(tt\\d{7}))*$" + } + ] }, "item_refresh_delay": { + "description": "Time to wait between each item_refresh. Specify the amount of time to wait between each item_refresh of every movie/show in a collection/playlist.", "type": "integer", "minimum": 0 }, "playlist_sync_to_users": { - "type": [ "string", "null" ] + "description": "Set the default playlist sync_to_users. To Sync a playlist to only yourself, leave playlist_sync_to_users blank/null. Therefore, leaving it blank, 'all', a list of users, or a comma-separated string of users is accepted", + "anyOf": [ + { + "type": "string", + "enum": ["all"] + }, + { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + { + "type": "string", + "pattern": "^([^,]+)(,[^,]+)*$" + }, + { + "type": "null" + } + ] }, "playlist_exclude_users": { - "type": "null" + "description": "Set the default playlist exclude_users. Provide a null value, a list of users, or a comma-separated string of users to be excluded in the playlist.", + "oneOf": [ + { + "type": "null" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + { + "type": "string", + "pattern": "^([^,]+)(,[^,]+)*$" + } + ] }, "playlist_report": { + "description": "Used to print out a playlist report. Set playlist_report to true to print out a playlist report at the end of the log.", "type": "boolean" }, "verify_ssl": { + "description": "Turn SSL Verification on or off.", "type": "boolean" }, "custom_repo": { - "type": "null" + "description": "Used to set up the custom repo file block type. Specify where the repo attribute's base is when defining collection_files, metadata_files, playlist_file, and overlay_files.", + "oneOf": [ + { + "type": "null" + }, + { + "type": "string" + } + ] }, "check_nightly": { + "description": "Will check nightly for updates instead of develop.", "type": "boolean" } },