mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-06 04:52:21 -07: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 @@ namespace NzbDrone.Core.Test.Download
|
||||||
var seriesTags = new HashSet<int> { 2 };
|
var seriesTags = new HashSet<int> { 2 };
|
||||||
var clientTags = new HashSet<int> { 1 };
|
var clientTags = new HashSet<int> { 1 };
|
||||||
|
|
||||||
WithTorrentClient(0, clientTags);
|
|
||||||
WithTorrentClient(0, clientTags);
|
|
||||||
WithTorrentClient(0, clientTags);
|
|
||||||
WithTorrentClient(0, clientTags);
|
WithTorrentClient(0, clientTags);
|
||||||
|
|
||||||
var client1 = Subject.GetDownloadClient(DownloadProtocol.Torrent, 0, false, seriesTags);
|
Assert.Throws<DownloadClientUnavailableException>(() => 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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -41,18 +41,23 @@ namespace NzbDrone.Core.Download
|
||||||
var blockedProviders = new HashSet<int>(_downloadClientStatusService.GetBlockedProviders().Select(v => v.ProviderId));
|
var blockedProviders = new HashSet<int>(_downloadClientStatusService.GetBlockedProviders().Select(v => v.ProviderId));
|
||||||
var availableProviders = _downloadClientFactory.GetAvailableProviders().Where(v => v.Protocol == downloadProtocol).ToList();
|
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();
|
var matchingTagsClients = availableProviders.Where(i => i.Definition.Tags.Intersect(tags).Any()).ToList();
|
||||||
|
|
||||||
availableProviders = matchingTagsClients.Count > 0 ?
|
availableProviders = matchingTagsClients.Count > 0 ?
|
||||||
matchingTagsClients :
|
matchingTagsClients :
|
||||||
availableProviders.Where(i => i.Definition.Tags.Empty()).ToList();
|
availableProviders.Where(i => i.Definition.Tags.Empty()).ToList();
|
||||||
}
|
|
||||||
|
|
||||||
if (!availableProviders.Any())
|
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)
|
if (indexerId > 0)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue