New: (Cardigann) XML Parser Suppport

pull/602/head
Qstick 3 years ago
parent 4a8131e00f
commit 701c7d349a

@ -5,6 +5,7 @@ using System.Net;
using System.Text.RegularExpressions;
using AngleSharp.Dom;
using AngleSharp.Html.Parser;
using AngleSharp.Xml.Parser;
using Newtonsoft.Json.Linq;
using NLog;
using NzbDrone.Common.Extensions;
@ -159,20 +160,39 @@ namespace NzbDrone.Core.Indexers.Cardigann
{
try
{
var searchResultParser = new HtmlParser();
var searchResultDocument = searchResultParser.ParseDocument(results);
IHtmlCollection<IElement> rowsDom;
/* checkForError(response, Definition.Search.Error); */
if (request.SearchPath.Response != null && request.SearchPath.Response.Type.Equals("xml"))
{
var searchResultParser = new XmlParser();
var searchResultDocument = searchResultParser.ParseDocument(results);
if (search.Preprocessingfilters != null)
if (search.Preprocessingfilters != null)
{
results = ApplyFilters(results, search.Preprocessingfilters, variables);
searchResultDocument = searchResultParser.ParseDocument(results);
_logger.Trace(string.Format("CardigannIndexer ({0}): result after preprocessingfilters: {1}", _definition.Id, results));
}
var rowsSelector = ApplyGoTemplateText(search.Rows.Selector, variables);
rowsDom = searchResultDocument.QuerySelectorAll(rowsSelector);
}
else
{
results = ApplyFilters(results, search.Preprocessingfilters, variables);
searchResultDocument = searchResultParser.ParseDocument(results);
_logger.Trace(string.Format("CardigannIndexer ({0}): result after preprocessingfilters: {1}", _definition.Id, results));
var searchResultParser = new HtmlParser();
var searchResultDocument = searchResultParser.ParseDocument(results);
if (search.Preprocessingfilters != null)
{
results = ApplyFilters(results, search.Preprocessingfilters, variables);
searchResultDocument = searchResultParser.ParseDocument(results);
_logger.Trace(string.Format("CardigannIndexer ({0}): result after preprocessingfilters: {1}", _definition.Id, results));
}
var rowsSelector = ApplyGoTemplateText(search.Rows.Selector, variables);
rowsDom = searchResultDocument.QuerySelectorAll(rowsSelector);
}
var rowsSelector = ApplyGoTemplateText(search.Rows.Selector, variables);
var rowsDom = searchResultDocument.QuerySelectorAll(rowsSelector);
var rows = new List<IElement>();
foreach (var rowDom in rowsDom)
{

@ -3,6 +3,7 @@
<TargetFrameworks>net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AngleSharp.Xml" Version="0.16.0" />
<PackageReference Include="Dapper" Version="2.0.90" />
<PackageReference Include="FluentMigrator.Runner" Version="3.3.1" />
<PackageReference Include="MailKit" Version="2.14.0" />

Loading…
Cancel
Save