mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
Fixed: (Indexers) Don't fetch releases when using unsupported capabilities
This commit is contained in:
@@ -128,19 +128,12 @@ namespace NzbDrone.Core.IndexerSearch
|
||||
private TSpec Get<TSpec>(NewznabRequest query, List<int> indexerIds, bool interactiveSearch)
|
||||
where TSpec : SearchCriteriaBase, new()
|
||||
{
|
||||
var spec = new TSpec()
|
||||
var spec = new TSpec
|
||||
{
|
||||
InteractiveSearch = interactiveSearch
|
||||
};
|
||||
|
||||
if (query.cat != null)
|
||||
{
|
||||
spec.Categories = query.cat.Split(',').Where(s => !string.IsNullOrWhiteSpace(s)).Select(s => int.Parse(s)).ToArray();
|
||||
}
|
||||
else
|
||||
{
|
||||
spec.Categories = Array.Empty<int>();
|
||||
}
|
||||
spec.Categories = query.cat != null ? query.cat.Split(',').Where(s => !string.IsNullOrWhiteSpace(s)).Select(int.Parse).ToArray() : Array.Empty<int>();
|
||||
|
||||
spec.SearchTerm = query.q?.Trim();
|
||||
spec.SearchType = query.t;
|
||||
|
@@ -66,6 +66,20 @@ namespace NzbDrone.Core.Indexers
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
var caps = GetCapabilities();
|
||||
|
||||
if ((searchCriteria.ImdbId.IsNotNullOrWhiteSpace() && !caps.MovieSearchImdbAvailable) ||
|
||||
(searchCriteria.TmdbId.HasValue && !caps.MovieSearchTmdbAvailable) ||
|
||||
(searchCriteria.TraktId.HasValue && !caps.MovieSearchTraktAvailable) ||
|
||||
(searchCriteria.DoubanId.HasValue && !caps.MovieSearchDoubanAvailable) ||
|
||||
(searchCriteria.Genre.IsNotNullOrWhiteSpace() && !caps.MovieSearchGenreAvailable) ||
|
||||
(searchCriteria.Year.HasValue && !caps.MovieSearchYearAvailable))
|
||||
{
|
||||
_logger.Debug("Movie search skipped due to unsupported capabilities used: {0}", Definition.Name);
|
||||
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
return FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria), searchCriteria);
|
||||
}
|
||||
|
||||
@@ -81,6 +95,20 @@ namespace NzbDrone.Core.Indexers
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
var caps = GetCapabilities();
|
||||
|
||||
if ((searchCriteria.Album.IsNotNullOrWhiteSpace() && !caps.MusicSearchAlbumAvailable) ||
|
||||
(searchCriteria.Artist.IsNotNullOrWhiteSpace() && !caps.MusicSearchArtistAvailable) ||
|
||||
(searchCriteria.Label.IsNotNullOrWhiteSpace() && !caps.MusicSearchLabelAvailable) ||
|
||||
(searchCriteria.Track.IsNotNullOrWhiteSpace() && !caps.MusicSearchTrackAvailable) ||
|
||||
(searchCriteria.Genre.IsNotNullOrWhiteSpace() && !caps.MusicSearchGenreAvailable) ||
|
||||
(searchCriteria.Year.HasValue && !caps.MusicSearchYearAvailable))
|
||||
{
|
||||
_logger.Debug("Music search skipped due to unsupported capabilities used: {0}", Definition.Name);
|
||||
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
return FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria), searchCriteria);
|
||||
}
|
||||
|
||||
@@ -96,6 +124,23 @@ namespace NzbDrone.Core.Indexers
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
var caps = GetCapabilities();
|
||||
|
||||
if ((searchCriteria.ImdbId.IsNotNullOrWhiteSpace() && !caps.TvSearchImdbAvailable) ||
|
||||
(searchCriteria.TvdbId.HasValue && !caps.TvSearchTvdbAvailable) ||
|
||||
(searchCriteria.RId.HasValue && !caps.TvSearchTvRageAvailable) ||
|
||||
(searchCriteria.TvMazeId.HasValue && !caps.TvSearchTvMazeAvailable) ||
|
||||
(searchCriteria.TraktId.HasValue && !caps.TvSearchTraktAvailable) ||
|
||||
(searchCriteria.TmdbId.HasValue && !caps.TvSearchTmdbAvailable) ||
|
||||
(searchCriteria.DoubanId.HasValue && !caps.TvSearchDoubanAvailable) ||
|
||||
(searchCriteria.Genre.IsNotNullOrWhiteSpace() && !caps.TvSearchGenreAvailable) ||
|
||||
(searchCriteria.Year.HasValue && !caps.TvSearchYearAvailable))
|
||||
{
|
||||
_logger.Debug("TV search skipped due to unsupported capabilities used: {0}", Definition.Name);
|
||||
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
return FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria), searchCriteria);
|
||||
}
|
||||
|
||||
@@ -111,6 +156,19 @@ namespace NzbDrone.Core.Indexers
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
var caps = GetCapabilities();
|
||||
|
||||
if ((searchCriteria.Title.IsNotNullOrWhiteSpace() && !caps.BookSearchTitleAvailable) ||
|
||||
(searchCriteria.Author.IsNotNullOrWhiteSpace() && !caps.BookSearchAuthorAvailable) ||
|
||||
(searchCriteria.Publisher.IsNotNullOrWhiteSpace() && !caps.BookSearchPublisherAvailable) ||
|
||||
(searchCriteria.Genre.IsNotNullOrWhiteSpace() && !caps.BookSearchGenreAvailable) ||
|
||||
(searchCriteria.Year.HasValue && !caps.BookSearchYearAvailable))
|
||||
{
|
||||
_logger.Debug("Book search skipped due to unsupported capabilities used: {0}", Definition.Name);
|
||||
|
||||
return Task.FromResult(new IndexerPageableQueryResult());
|
||||
}
|
||||
|
||||
return FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria), searchCriteria);
|
||||
}
|
||||
|
||||
|
@@ -89,9 +89,9 @@ namespace NzbDrone.Core.Indexers
|
||||
public bool MovieSearchImdbAvailable => MovieSearchParams.Contains(MovieSearchParam.ImdbId);
|
||||
public bool MovieSearchTmdbAvailable => MovieSearchParams.Contains(MovieSearchParam.TmdbId);
|
||||
public bool MovieSearchTraktAvailable => MovieSearchParams.Contains(MovieSearchParam.TraktId);
|
||||
public bool MovieSearchDoubanAvailable => MovieSearchParams.Contains(MovieSearchParam.DoubanId);
|
||||
public bool MovieSearchGenreAvailable => MovieSearchParams.Contains(MovieSearchParam.Genre);
|
||||
public bool MovieSearchYearAvailable => MovieSearchParams.Contains(MovieSearchParam.Year);
|
||||
public bool MovieSearchDoubanAvailable => MovieSearchParams.Contains(MovieSearchParam.DoubanId);
|
||||
|
||||
public List<MusicSearchParam> MusicSearchParams;
|
||||
public bool MusicSearchAvailable => MusicSearchParams.Count > 0;
|
||||
@@ -99,16 +99,16 @@ namespace NzbDrone.Core.Indexers
|
||||
public bool MusicSearchArtistAvailable => MusicSearchParams.Contains(MusicSearchParam.Artist);
|
||||
public bool MusicSearchLabelAvailable => MusicSearchParams.Contains(MusicSearchParam.Label);
|
||||
public bool MusicSearchTrackAvailable => MusicSearchParams.Contains(MusicSearchParam.Track);
|
||||
public bool MusicSearchYearAvailable => MusicSearchParams.Contains(MusicSearchParam.Year);
|
||||
public bool MusicSearchGenreAvailable => MusicSearchParams.Contains(MusicSearchParam.Genre);
|
||||
public bool MusicSearchYearAvailable => MusicSearchParams.Contains(MusicSearchParam.Year);
|
||||
|
||||
public List<BookSearchParam> BookSearchParams;
|
||||
public bool BookSearchAvailable => BookSearchParams.Count > 0;
|
||||
public bool BookSearchTitleAvailable => BookSearchParams.Contains(BookSearchParam.Title);
|
||||
public bool BookSearchAuthorAvailable => BookSearchParams.Contains(BookSearchParam.Author);
|
||||
public bool BookSearchPublisherAvailable => BookSearchParams.Contains(BookSearchParam.Publisher);
|
||||
public bool BookSearchYearAvailable => BookSearchParams.Contains(BookSearchParam.Year);
|
||||
public bool BookSearchGenreAvailable => BookSearchParams.Contains(BookSearchParam.Genre);
|
||||
public bool BookSearchYearAvailable => BookSearchParams.Contains(BookSearchParam.Year);
|
||||
|
||||
public readonly IndexerCapabilitiesCategories Categories;
|
||||
public List<IndexerFlag> Flags;
|
||||
|
Reference in New Issue
Block a user