Fixed: Ignore `VA` artists in Redacted

pull/3582/head
Bogdan 2 years ago committed by Qstick
parent 0a0ddf2b02
commit d0244978aa

@ -9,7 +9,7 @@ using NzbDrone.Core.Indexers;
using NzbDrone.Core.Indexers.Redacted;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.IndexerTests.GazelleTests
namespace NzbDrone.Core.Test.IndexerTests.RedactedTests
{
[TestFixture]
public class RedactedFixture : CoreTest<Redacted>
@ -17,7 +17,7 @@ namespace NzbDrone.Core.Test.IndexerTests.GazelleTests
[SetUp]
public void Setup()
{
Subject.Definition = new IndexerDefinition()
Subject.Definition = new IndexerDefinition
{
Name = "Redacted",
Settings = new RedactedSettings

@ -26,12 +26,7 @@ namespace NzbDrone.Core.Indexers.Redacted
public override IIndexerRequestGenerator GetRequestGenerator()
{
return new RedactedRequestGenerator()
{
Settings = Settings,
HttpClient = _httpClient,
Logger = _logger,
};
return new RedactedRequestGenerator(Settings, _httpClient, _logger);
}
public override IParseIndexerResponse GetParser()

@ -56,9 +56,9 @@ namespace NzbDrone.Core.Indexers.Redacted
title += " [Cue]";
}
torrentInfos.Add(new GazelleInfo()
torrentInfos.Add(new GazelleInfo
{
Guid = string.Format("Redacted-{0}", id),
Guid = $"Redacted-{id}",
Artist = artist,
// Splice Title from info to avoid calling API again for every torrent.
@ -72,7 +72,7 @@ namespace NzbDrone.Core.Indexers.Redacted
Seeders = int.Parse(torrent.Seeders),
Peers = int.Parse(torrent.Leechers) + int.Parse(torrent.Seeders),
PublishDate = torrent.Time.ToUniversalTime(),
Scene = torrent.Scene,
Scene = torrent.Scene
});
}
}

@ -11,10 +11,16 @@ namespace NzbDrone.Core.Indexers.Redacted
{
public class RedactedRequestGenerator : IIndexerRequestGenerator
{
public RedactedSettings Settings { get; set; }
private readonly RedactedSettings _settings;
private readonly IHttpClient _httpClient;
private readonly Logger _logger;
public IHttpClient HttpClient { get; set; }
public Logger Logger { get; set; }
public RedactedRequestGenerator(RedactedSettings settings, IHttpClient httpClient, Logger logger)
{
_settings = settings;
_httpClient = httpClient;
_logger = logger;
}
public virtual IndexerPageableRequestChain GetRecentRequests()
{
@ -28,14 +34,23 @@ namespace NzbDrone.Core.Indexers.Redacted
public IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria)
{
var pageableRequests = new IndexerPageableRequestChain();
pageableRequests.Add(GetRequest(string.Format("&artistname={0}&groupname={1}", searchCriteria.CleanArtistQuery, searchCriteria.CleanAlbumQuery)));
if (searchCriteria.CleanArtistQuery == "VA")
{
pageableRequests.Add(GetRequest($"&groupname={searchCriteria.CleanAlbumQuery}"));
}
else
{
pageableRequests.Add(GetRequest($"&artistname={searchCriteria.CleanArtistQuery}&groupname={searchCriteria.CleanAlbumQuery}"));
}
return pageableRequests;
}
public IndexerPageableRequestChain GetSearchRequests(ArtistSearchCriteria searchCriteria)
{
var pageableRequests = new IndexerPageableRequestChain();
pageableRequests.Add(GetRequest(string.Format("&artistname={0}", searchCriteria.CleanArtistQuery)));
pageableRequests.Add(GetRequest($"&artistname={searchCriteria.CleanArtistQuery}"));
return pageableRequests;
}
@ -48,13 +63,13 @@ namespace NzbDrone.Core.Indexers.Redacted
index.Status != "success" ||
index.Response.Passkey.IsNullOrWhiteSpace())
{
Logger.Debug("Redacted authentication failed.");
_logger.Debug("Redacted authentication failed.");
throw new Exception("Failed to authenticate with Redacted.");
}
Logger.Debug("Redacted authentication succeeded.");
_logger.Debug("Redacted authentication succeeded.");
Settings.PassKey = index.Response.Passkey;
_settings.PassKey = index.Response.Passkey;
}
private IEnumerable<IndexerRequest> GetRequest(string searchParameters)
@ -70,7 +85,7 @@ namespace NzbDrone.Core.Indexers.Redacted
{
var request = RequestBuilder().Resource("ajax.php?action=index").Build();
var indexResponse = HttpClient.Execute(request);
var indexResponse = _httpClient.Execute(request);
var result = Json.Deserialize<GazelleAuthResponse>(indexResponse.Content);
@ -79,9 +94,9 @@ namespace NzbDrone.Core.Indexers.Redacted
private HttpRequestBuilder RequestBuilder()
{
return new HttpRequestBuilder($"{Settings.BaseUrl.Trim().TrimEnd('/')}")
return new HttpRequestBuilder($"{_settings.BaseUrl.Trim().TrimEnd('/')}")
.Accept(HttpAccept.Json)
.SetHeader("Authorization", Settings.ApiKey);
.SetHeader("Authorization", _settings.ApiKey);
}
}
}

@ -14,7 +14,7 @@ namespace NzbDrone.Core.Indexers.Redacted
public class RedactedSettings : ITorrentIndexerSettings
{
private static readonly RedactedSettingsValidator Validator = new RedactedSettingsValidator();
private static readonly RedactedSettingsValidator Validator = new ();
public RedactedSettings()
{
@ -34,7 +34,7 @@ namespace NzbDrone.Core.Indexers.Redacted
public int MinimumSeeders { get; set; }
[FieldDefinition(4)]
public SeedCriteriaSettings SeedCriteria { get; set; } = new SeedCriteriaSettings();
public SeedCriteriaSettings SeedCriteria { get; set; } = new ();
[FieldDefinition(5, Type = FieldType.Number, Label = "Early Download Limit", Unit = "days", HelpText = "Time before release date Lidarr will download from this indexer, empty is no limit", Advanced = true)]
public int? EarlyReleaseLimit { get; set; }

Loading…
Cancel
Save