Secret Dev Settings Page

This commit is contained in:
Qstick
2021-03-12 14:59:04 -05:00
parent 6d25b468ce
commit f36f98e32b
16 changed files with 440 additions and 19 deletions
@@ -22,7 +22,8 @@ namespace NzbDrone.Core.Indexers.Cardigann
public override IIndexerRequestGenerator GetRequestGenerator()
{
return new CardigannRequestGenerator(_definitionService.GetDefinition(Settings.DefinitionFile),
return new CardigannRequestGenerator(_configService,
_definitionService.GetDefinition(Settings.DefinitionFile),
Settings,
_logger)
{
@@ -32,7 +33,8 @@ namespace NzbDrone.Core.Indexers.Cardigann
public override IParseIndexerResponse GetParser()
{
return new CardigannParser(_definitionService.GetDefinition(Settings.DefinitionFile),
return new CardigannParser(_configService,
_definitionService.GetDefinition(Settings.DefinitionFile),
Settings,
_logger);
}
@@ -10,6 +10,7 @@ using Newtonsoft.Json.Linq;
using NLog;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Serializer;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Parser;
namespace NzbDrone.Core.Indexers.Cardigann
@@ -20,6 +21,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
protected readonly CardigannSettings _settings;
protected readonly Logger _logger;
protected readonly Encoding _encoding;
protected readonly IConfigService _configService;
protected string SiteLink { get; private set; }
@@ -46,10 +48,12 @@ namespace NzbDrone.Core.Indexers.Cardigann
protected static readonly Regex _LogicFunctionRegex = new Regex(
$@"\b({string.Join("|", _SupportedLogicFunctions.Select(Regex.Escape))})(?:\s+(\(?\.[^\)\s]+\)?|""[^""]+"")){{2,}}");
public CardigannBase(CardigannDefinition definition,
public CardigannBase(IConfigService configService,
CardigannDefinition definition,
CardigannSettings settings,
Logger logger)
{
_configService = configService;
_definition = definition;
_settings = settings;
_encoding = Encoding.GetEncoding(definition.Encoding);
@@ -206,6 +210,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
protected Dictionary<string, object> GetBaseTemplateVariables()
{
var indexerLogging = _configService.LogIndexerResponse;
var variables = new Dictionary<string, object>
{
[".Config.sitelink"] = SiteLink,
@@ -221,7 +226,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
var name = ".Config." + setting.Name;
var value = _settings.ExtraFieldData.GetValueOrDefault(setting.Name, setting.Default);
if (setting.Type != "password")
if (setting.Type != "password" && indexerLogging)
{
_logger.Trace($"{name} got value {value.ToJson()}");
}
@@ -236,11 +241,18 @@ namespace NzbDrone.Core.Indexers.Cardigann
}
else if (setting.Type == "select")
{
_logger.Trace($"Setting options: {setting.Options.ToJson()}");
if (indexerLogging)
{
_logger.Trace($"Setting options: {setting.Options.ToJson()}");
}
var sorted = setting.Options.OrderBy(x => x.Key).ToList();
var selected = sorted[(int)(long)value];
_logger.Debug($"Selected option: {selected.ToJson()}");
if (indexerLogging)
{
_logger.Debug($"Selected option: {selected.ToJson()}");
}
variables[name] = selected.Key;
}
@@ -253,7 +265,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
throw new NotSupportedException();
}
if (setting.Type != "password")
if (setting.Type != "password" && indexerLogging)
{
_logger.Debug($"Setting {setting.Name} to {variables[name]}");
}
@@ -514,7 +526,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
var all = variablesRegExMatches.Groups[0].Value;
var variable = variablesRegExMatches.Groups[1].Value;
var value = (string)variables[variable];
var value = variables[variable].ToString();
if (modifier != null)
{
value = modifier(value);
@@ -7,6 +7,7 @@ using AngleSharp.Dom;
using AngleSharp.Html.Parser;
using NLog;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Indexers.Exceptions;
using NzbDrone.Core.Parser;
using NzbDrone.Core.Parser.Model;
@@ -17,10 +18,11 @@ namespace NzbDrone.Core.Indexers.Cardigann
{
public Action<IDictionary<string, string>, DateTime?> CookiesUpdater { get; set; }
public CardigannParser(CardigannDefinition definition,
public CardigannParser(IConfigService configService,
CardigannDefinition definition,
CardigannSettings settings,
Logger logger)
: base(definition, settings, logger)
: base(configService, definition, settings, logger)
{
}
@@ -61,7 +63,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
{
results = ApplyFilters(results, search.Preprocessingfilters, variables);
searchResultDocument = searchResultParser.ParseDocument(results);
_logger.Debug(string.Format("CardigannIndexer ({0}): result after preprocessingfilters: {1}", _definition.Id, results));
_logger.Trace(string.Format("CardigannIndexer ({0}): result after preprocessingfilters: {1}", _definition.Id, results));
}
var rowsSelector = ApplyGoTemplateText(search.Rows.Selector, variables);
@@ -101,6 +103,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
try
{
var release = new CardigannReleaseInfo();
var indexerLogging = _configService.LogIndexerResponse;
// Parse fields
foreach (var field in search.Fields)
@@ -334,8 +337,10 @@ namespace NzbDrone.Core.Indexers.Cardigann
continue;
}
//Parser errors usually happen on every result and are costly to performance, trace only
_logger.Trace("Error while parsing field={0}, selector={1}, value={2}: {3}", field.Key, field.Value.Selector, value == null ? "<null>" : value, ex.Message);
if (indexerLogging)
{
_logger.Trace("Error while parsing field={0}, selector={1}, value={2}: {3}", field.Key, field.Value.Selector, value == null ? "<null>" : value, ex.Message);
}
}
}
@@ -8,6 +8,7 @@ using AngleSharp.Html.Parser;
using Newtonsoft.Json.Linq;
using NLog;
using NzbDrone.Common.Http;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Indexers.Definitions.Cardigann;
using NzbDrone.Core.IndexerSearch.Definitions;
using NzbDrone.Core.Parser;
@@ -21,10 +22,11 @@ namespace NzbDrone.Core.Indexers.Cardigann
protected HttpResponse landingResult;
protected IHtmlDocument landingResultDocument;
public CardigannRequestGenerator(CardigannDefinition definition,
public CardigannRequestGenerator(IConfigService configService,
CardigannDefinition definition,
CardigannSettings settings,
Logger logger)
: base(definition, settings, logger)
: base(configService, definition, settings, logger)
{
}