Fixed: (Cardigann) Parse text templates only if necessary

pull/1467/head
Bogdan 1 year ago committed by GitHub
parent 26bea14137
commit caab337379
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -349,11 +349,13 @@ namespace NzbDrone.Core.Indexers.Cardigann
public string ApplyGoTemplateText(string template, Dictionary<string, object> variables = null, TemplateTextModifier modifier = null)
{
if (variables == null)
if (template.IsNullOrWhiteSpace() || !template.Contains("{{"))
{
variables = GetBaseTemplateVariables();
return template;
}
variables ??= GetBaseTemplateVariables();
// handle re_replace expression
// Example: {{ re_replace .Query.Keywords "[^a-zA-Z0-9]+" "%" }}
var reReplaceRegex = new Regex(@"{{\s*re_replace\s+(\..+?)\s+""(.*?)""\s+""(.*?)""\s*}}");

@ -164,8 +164,6 @@ namespace NzbDrone.Core.Indexers.Cardigann
}
}
else
{
try
{
IHtmlCollection<IElement> rowsDom;
@ -351,12 +349,6 @@ namespace NzbDrone.Core.Indexers.Cardigann
}
}
}
catch (Exception)
{
// OnParseError(results, ex);
throw;
}
}
/*
if (query.Limit > 0)
@ -425,11 +417,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
break;
case "comments":
var commentsUrl = ResolvePath(value, searchUrlUri);
if (release.CommentUrl == null)
{
release.CommentUrl = commentsUrl.AbsoluteUri;
}
release.CommentUrl ??= commentsUrl.AbsoluteUri;
value = commentsUrl.ToString();
break;
case "title":
@ -554,38 +542,38 @@ namespace NzbDrone.Core.Indexers.Cardigann
value = release.ImdbId.ToString();
break;
case "tmdbid":
var tmdbIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
var tmdbIDMatch = tmdbIDRegEx.Match(value);
var tmdbID = tmdbIDMatch.Groups[1].Value;
release.TmdbId = (int)ParseUtil.CoerceLong(tmdbID);
var tmdbIdRegex = new Regex(@"(\d+)", RegexOptions.Compiled);
var tmdbIdMatch = tmdbIdRegex.Match(value);
var tmdbId = tmdbIdMatch.Groups[1].Value;
release.TmdbId = (int)ParseUtil.CoerceLong(tmdbId);
value = release.TmdbId.ToString();
break;
case "rageid":
var rageIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
var rageIDMatch = rageIDRegEx.Match(value);
var rageID = rageIDMatch.Groups[1].Value;
release.TvRageId = (int)ParseUtil.CoerceLong(rageID);
var rageIdRegex = new Regex(@"(\d+)", RegexOptions.Compiled);
var rageIdMatch = rageIdRegex.Match(value);
var rageId = rageIdMatch.Groups[1].Value;
release.TvRageId = (int)ParseUtil.CoerceLong(rageId);
value = release.TvRageId.ToString();
break;
case "traktid":
var traktIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
var traktIDMatch = traktIDRegEx.Match(value);
var traktID = traktIDMatch.Groups[1].Value;
release.TraktId = (int)ParseUtil.CoerceLong(traktID);
var traktIdRegex = new Regex(@"(\d+)", RegexOptions.Compiled);
var traktIdMatch = traktIdRegex.Match(value);
var traktId = traktIdMatch.Groups[1].Value;
release.TraktId = (int)ParseUtil.CoerceLong(traktId);
value = release.TraktId.ToString();
break;
case "tvdbid":
var tvdbIdRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
var tvdbIdMatch = tvdbIdRegEx.Match(value);
var tvdbIdRegex = new Regex(@"(\d+)", RegexOptions.Compiled);
var tvdbIdMatch = tvdbIdRegex.Match(value);
var tvdbId = tvdbIdMatch.Groups[1].Value;
release.TvdbId = (int)ParseUtil.CoerceLong(tvdbId);
value = release.TvdbId.ToString();
break;
case "doubanid":
var doubanIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
var doubanIDMatch = doubanIDRegEx.Match(value);
var doubanID = doubanIDMatch.Groups[1].Value;
release.DoubanId = (int)ParseUtil.CoerceLong(doubanID);
var doubanIdRegex = new Regex(@"(\d+)", RegexOptions.Compiled);
var doubanIdMatch = doubanIdRegex.Match(value);
var doubanId = doubanIdMatch.Groups[1].Value;
release.DoubanId = (int)ParseUtil.CoerceLong(doubanId);
value = release.DoubanId.ToString();
break;
case "poster":

Loading…
Cancel
Save