mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-20 21:43:33 -07:00
Fixed: Ignore VA
artists in Redacted
This commit is contained in:
parent
0a0ddf2b02
commit
d0244978aa
5 changed files with 34 additions and 24 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue