From 23f8ec1f20c81a817e4334fdb6a7055c4fc331a9 Mon Sep 17 00:00:00 2001 From: ta264 Date: Sun, 20 Dec 2020 21:06:26 +0000 Subject: [PATCH] Fixed: Remove albums with no acceptable releases from search results --- .../MetadataSource/SkyHook/SkyHookProxy.cs | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index 11f19551b..b7558db08 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -292,7 +292,9 @@ namespace NzbDrone.Core.MetadataSource.SkyHook var httpResponse = _httpClient.Get>(httpRequest); - return httpResponse.Resource.SelectList(MapSearchResult); + return httpResponse.Resource.Select(MapSearchResult) + .Where(x => x != null) + .ToList(); } catch (HttpException) { @@ -317,7 +319,9 @@ namespace NzbDrone.Core.MetadataSource.SkyHook var httpResponse = _httpClient.Post>(httpRequest); - return httpResponse.Resource.SelectList(MapSearchResult); + return httpResponse.Resource.Select(MapSearchResult) + .Where(x => x != null) + .ToList(); } public List SearchForNewEntity(string title) @@ -335,7 +339,15 @@ namespace NzbDrone.Core.MetadataSource.SkyHook var album = SearchForNewAlbum(lowerTitle, null); if (album.Any()) { - return new List { album.First() }; + var result = album.Where(x => x.AlbumReleases.Value.Any()).FirstOrDefault(); + if (result != null) + { + return new List { result }; + } + else + { + return new List(); + } } } @@ -344,12 +356,14 @@ namespace NzbDrone.Core.MetadataSource.SkyHook var httpRequest = _requestBuilder.GetRequestBuilder().Create() .SetSegment("route", "search") .AddQueryParam("type", "all") - .AddQueryParam("query", title.ToLower().Trim()) + .AddQueryParam("query", lowerTitle.Trim()) .Build(); var httpResponse = _httpClient.Get>(httpRequest); - return httpResponse.Resource.SelectList(MapSearchResult); + return httpResponse.Resource.Select(MapSearchResult) + .Where(x => x != null) + .ToList(); } catch (HttpException) { @@ -394,6 +408,11 @@ namespace NzbDrone.Core.MetadataSource.SkyHook album.Artist = artist; album.ArtistMetadata = artist.Metadata.Value; + if (!album.AlbumReleases.Value.Any()) + { + return null; + } + return album; }