Cardigann: Add support for IMDB

This commit is contained in:
kaso17
2016-12-05 15:09:43 +01:00
parent 412df7c6f6
commit 32fa8cf5fd

View File

@@ -18,6 +18,7 @@ using System.Text.RegularExpressions;
using System.Web; using System.Web;
using AngleSharp.Dom; using AngleSharp.Dom;
using AngleSharp.Dom.Html; using AngleSharp.Dom.Html;
using System.Linq;
namespace Jackett.Indexers namespace Jackett.Indexers
{ {
@@ -122,6 +123,8 @@ namespace Jackett.Indexers
public selectorBlock Dateheaders { get; set; } public selectorBlock Dateheaders { get; set; }
} }
protected readonly string[] OptionalFileds = new string[] { "imdb" };
public CardigannIndexer(IIndexerManagerService i, IWebClient wc, Logger l, IProtectionService ps) public CardigannIndexer(IIndexerManagerService i, IWebClient wc, Logger l, IProtectionService ps)
: base(manager: i, : base(manager: i,
client: wc, client: wc,
@@ -820,10 +823,11 @@ namespace Jackett.Indexers
// Parse fields // Parse fields
foreach (var Field in Search.Fields) foreach (var Field in Search.Fields)
{ {
string value = handleSelector(Field.Value, Row); string value = null;
value = ParseUtil.NormalizeSpace(value);
try try
{ {
value = handleSelector(Field.Value, Row);
value = ParseUtil.NormalizeSpace(value);
switch (Field.Key) switch (Field.Key)
{ {
case "download": case "download":
@@ -891,12 +895,20 @@ namespace Jackett.Indexers
case "uploadvolumefactor": case "uploadvolumefactor":
release.UploadVolumeFactor = ParseUtil.CoerceDouble(value); release.UploadVolumeFactor = ParseUtil.CoerceDouble(value);
break; break;
case "imdb":
Regex IMDBRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
var IMDBMatch = IMDBRegEx.Match(value);
var IMDBId = IMDBMatch.Groups[1].Value;
release.Imdb = ParseUtil.CoerceLong(IMDBId);
break;
default: default:
break; break;
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
if (OptionalFileds.Contains(Field.Key))
continue;
throw new Exception(string.Format("Error while parsing field={0}, selector={1}, value={2}: {3}", Field.Key, Field.Value.Selector, value, ex.Message)); throw new Exception(string.Format("Error while parsing field={0}, selector={1}, value={2}: {3}", Field.Key, Field.Value.Selector, value, ex.Message));
} }
} }