mirror of
https://github.com/Prowlarr/Prowlarr
synced 2026-01-09 01:05:48 +01:00
New: (Cardigann) Add MissingAttributeEqualsNoResults support
This commit is contained in:
parent
bb1ebda753
commit
4e8bb37a5c
3 changed files with 20 additions and 3 deletions
|
|
@ -825,9 +825,19 @@ protected string ResolveSiteLink()
|
|||
protected JArray JsonParseRowsSelector(JToken parsedJson, string rowSelector)
|
||||
{
|
||||
var selector = rowSelector.Split(':')[0];
|
||||
var rowsObj = parsedJson.SelectToken(selector).Value<JArray>();
|
||||
return new JArray(rowsObj.Where(t =>
|
||||
JsonParseFieldSelector(t.Value<JObject>(), rowSelector.Remove(0, selector.Length)) != null));
|
||||
|
||||
try
|
||||
{
|
||||
var rowsObj = parsedJson.SelectToken(selector).Value<JArray>();
|
||||
|
||||
return new JArray(rowsObj.Where(t => JsonParseFieldSelector(t.Value<JObject>(), rowSelector.Remove(0, selector.Length)) != null));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Trace(ex, "Failed to parse JSON rows for selector \"{0}\"", rowSelector);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private string JsonParseFieldSelector(JToken parsedJson, string rowSelector)
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ public class RowsBlock : SelectorBlock
|
|||
public SelectorBlock Dateheaders { get; set; }
|
||||
public SelectorBlock Count { get; set; }
|
||||
public bool Multiple { get; set; }
|
||||
public bool MissingAttributeEqualsNoResults { get; set; }
|
||||
}
|
||||
|
||||
public class SearchPathBlock : RequestBlock
|
||||
|
|
|
|||
|
|
@ -90,8 +90,14 @@ public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
|||
}
|
||||
|
||||
var rowsArray = JsonParseRowsSelector(parsedJson, search.Rows.Selector);
|
||||
|
||||
if (rowsArray == null)
|
||||
{
|
||||
if (search.Rows.MissingAttributeEqualsNoResults)
|
||||
{
|
||||
return releases;
|
||||
}
|
||||
|
||||
throw new IndexerException(indexerResponse, "Error Parsing Rows Selector");
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue