mirror of
https://github.com/lidarr/Lidarr
synced 2024-12-22 07:42:28 +00:00
Improve message for grab errors due to no matching tags
Co-authored-by: zakary <zak@ary.dev> (cherry picked from commit df672487cf1d5f067849367a2bfb0068defc315d) Closes #5182
This commit is contained in:
parent
54a758a1b8
commit
a843a46fbe
2 changed files with 11 additions and 14 deletions
|
@ -200,17 +200,9 @@ public void should_fail_to_choose_when_clients_have_tags_but_no_match()
|
|||
var seriesTags = new HashSet<int> { 2 };
|
||||
var clientTags = new HashSet<int> { 1 };
|
||||
|
||||
WithTorrentClient(0, clientTags);
|
||||
WithTorrentClient(0, clientTags);
|
||||
WithTorrentClient(0, clientTags);
|
||||
WithTorrentClient(0, clientTags);
|
||||
|
||||
var client1 = Subject.GetDownloadClient(DownloadProtocol.Torrent, 0, false, seriesTags);
|
||||
var client2 = Subject.GetDownloadClient(DownloadProtocol.Torrent, 0, false, seriesTags);
|
||||
var client3 = Subject.GetDownloadClient(DownloadProtocol.Torrent, 0, false, seriesTags);
|
||||
var client4 = Subject.GetDownloadClient(DownloadProtocol.Torrent, 0, false, seriesTags);
|
||||
|
||||
Subject.GetDownloadClient(DownloadProtocol.Torrent, 0, false, seriesTags).Should().BeNull();
|
||||
Assert.Throws<DownloadClientUnavailableException>(() => Subject.GetDownloadClient(DownloadProtocol.Torrent, 0, false, seriesTags));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -41,18 +41,23 @@ public IDownloadClient GetDownloadClient(DownloadProtocol downloadProtocol, int
|
|||
var blockedProviders = new HashSet<int>(_downloadClientStatusService.GetBlockedProviders().Select(v => v.ProviderId));
|
||||
var availableProviders = _downloadClientFactory.GetAvailableProviders().Where(v => v.Protocol == downloadProtocol).ToList();
|
||||
|
||||
if (tags != null)
|
||||
if (!availableProviders.Any())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (tags is { Count: > 0 })
|
||||
{
|
||||
var matchingTagsClients = availableProviders.Where(i => i.Definition.Tags.Intersect(tags).Any()).ToList();
|
||||
|
||||
availableProviders = matchingTagsClients.Count > 0 ?
|
||||
matchingTagsClients :
|
||||
availableProviders.Where(i => i.Definition.Tags.Empty()).ToList();
|
||||
}
|
||||
|
||||
if (!availableProviders.Any())
|
||||
{
|
||||
return null;
|
||||
throw new DownloadClientUnavailableException("No download client was found without tags or a matching artist tag. Please check your settings.");
|
||||
}
|
||||
}
|
||||
|
||||
if (indexerId > 0)
|
||||
|
|
Loading…
Reference in a new issue