New: (Cardigann) Allow JSON filters

Fixes #844
This commit is contained in:
Qstick
2022-02-27 19:45:54 -06:00
parent c29fba3a2b
commit 76afb70b01
5 changed files with 104 additions and 18 deletions

View File

@@ -83,16 +83,16 @@ namespace NzbDrone.Core.Indexers.Cardigann
}
}
var rowsObj = parsedJson.SelectToken(search.Rows.Selector);
if (rowsObj == null)
var rowsArray = JsonParseRowsSelector(parsedJson, search.Rows.Selector);
if (rowsArray == null)
{
throw new IndexerException(indexerResponse, "Error Parsing Rows Selector");
}
foreach (var row in rowsObj.Value<JArray>())
foreach (var row in rowsArray)
{
var selObj = request.SearchPath.Response.Attribute != null ? row.SelectToken(request.SearchPath.Response.Attribute).Value<JToken>() : row;
var mulRows = request.SearchPath.Response.Multiple == true ? selObj.Values<JObject>() : new List<JObject> { selObj.Value<JObject>() };
var selObj = search.Rows.Attribute != null ? row.SelectToken(search.Rows.Attribute).Value<JToken>() : row;
var mulRows = search.Rows.Multiple ? selObj.Values<JObject>() : new List<JObject> { selObj.Value<JObject>() };
foreach (var mulRow in mulRows)
{