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)
|
private TSpec Get<TSpec>(NewznabRequest query, List<int> indexerIds, bool interactiveSearch)
|
||||||
where TSpec : SearchCriteriaBase, new()
|
where TSpec : SearchCriteriaBase, new()
|
||||||
{
|
{
|
||||||
var spec = new TSpec()
|
var spec = new TSpec
|
||||||
{
|
{
|
||||||
InteractiveSearch = interactiveSearch
|
InteractiveSearch = interactiveSearch
|
||||||
};
|
};
|
||||||
|
|
||||||
if (query.cat != null)
|
spec.Categories = query.cat != null ? query.cat.Split(',').Where(s => !string.IsNullOrWhiteSpace(s)).Select(int.Parse).ToArray() : Array.Empty<int>();
|
||||||
{
|
|
||||||
spec.Categories = query.cat.Split(',').Where(s => !string.IsNullOrWhiteSpace(s)).Select(s => int.Parse(s)).ToArray();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
spec.Categories = Array.Empty<int>();
|
|
||||||
}
|
|
||||||
|
|
||||||
spec.SearchTerm = query.q?.Trim();
|
spec.SearchTerm = query.q?.Trim();
|
||||||
spec.SearchType = query.t;
|
spec.SearchType = query.t;
|
||||||
|
@@ -66,6 +66,20 @@ namespace NzbDrone.Core.Indexers
|
|||||||
return Task.FromResult(new IndexerPageableQueryResult());
|
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);
|
return FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria), searchCriteria);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,6 +95,20 @@ namespace NzbDrone.Core.Indexers
|
|||||||
return Task.FromResult(new IndexerPageableQueryResult());
|
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);
|
return FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria), searchCriteria);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,6 +124,23 @@ namespace NzbDrone.Core.Indexers
|
|||||||
return Task.FromResult(new IndexerPageableQueryResult());
|
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);
|
return FetchReleases(g => SetCookieFunctions(g).GetSearchRequests(searchCriteria), searchCriteria);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,6 +156,19 @@ namespace NzbDrone.Core.Indexers
|
|||||||
return Task.FromResult(new IndexerPageableQueryResult());
|
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);
|
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 MovieSearchImdbAvailable => MovieSearchParams.Contains(MovieSearchParam.ImdbId);
|
||||||
public bool MovieSearchTmdbAvailable => MovieSearchParams.Contains(MovieSearchParam.TmdbId);
|
public bool MovieSearchTmdbAvailable => MovieSearchParams.Contains(MovieSearchParam.TmdbId);
|
||||||
public bool MovieSearchTraktAvailable => MovieSearchParams.Contains(MovieSearchParam.TraktId);
|
public bool MovieSearchTraktAvailable => MovieSearchParams.Contains(MovieSearchParam.TraktId);
|
||||||
|
public bool MovieSearchDoubanAvailable => MovieSearchParams.Contains(MovieSearchParam.DoubanId);
|
||||||
public bool MovieSearchGenreAvailable => MovieSearchParams.Contains(MovieSearchParam.Genre);
|
public bool MovieSearchGenreAvailable => MovieSearchParams.Contains(MovieSearchParam.Genre);
|
||||||
public bool MovieSearchYearAvailable => MovieSearchParams.Contains(MovieSearchParam.Year);
|
public bool MovieSearchYearAvailable => MovieSearchParams.Contains(MovieSearchParam.Year);
|
||||||
public bool MovieSearchDoubanAvailable => MovieSearchParams.Contains(MovieSearchParam.DoubanId);
|
|
||||||
|
|
||||||
public List<MusicSearchParam> MusicSearchParams;
|
public List<MusicSearchParam> MusicSearchParams;
|
||||||
public bool MusicSearchAvailable => MusicSearchParams.Count > 0;
|
public bool MusicSearchAvailable => MusicSearchParams.Count > 0;
|
||||||
@@ -99,16 +99,16 @@ namespace NzbDrone.Core.Indexers
|
|||||||
public bool MusicSearchArtistAvailable => MusicSearchParams.Contains(MusicSearchParam.Artist);
|
public bool MusicSearchArtistAvailable => MusicSearchParams.Contains(MusicSearchParam.Artist);
|
||||||
public bool MusicSearchLabelAvailable => MusicSearchParams.Contains(MusicSearchParam.Label);
|
public bool MusicSearchLabelAvailable => MusicSearchParams.Contains(MusicSearchParam.Label);
|
||||||
public bool MusicSearchTrackAvailable => MusicSearchParams.Contains(MusicSearchParam.Track);
|
public bool MusicSearchTrackAvailable => MusicSearchParams.Contains(MusicSearchParam.Track);
|
||||||
public bool MusicSearchYearAvailable => MusicSearchParams.Contains(MusicSearchParam.Year);
|
|
||||||
public bool MusicSearchGenreAvailable => MusicSearchParams.Contains(MusicSearchParam.Genre);
|
public bool MusicSearchGenreAvailable => MusicSearchParams.Contains(MusicSearchParam.Genre);
|
||||||
|
public bool MusicSearchYearAvailable => MusicSearchParams.Contains(MusicSearchParam.Year);
|
||||||
|
|
||||||
public List<BookSearchParam> BookSearchParams;
|
public List<BookSearchParam> BookSearchParams;
|
||||||
public bool BookSearchAvailable => BookSearchParams.Count > 0;
|
public bool BookSearchAvailable => BookSearchParams.Count > 0;
|
||||||
public bool BookSearchTitleAvailable => BookSearchParams.Contains(BookSearchParam.Title);
|
public bool BookSearchTitleAvailable => BookSearchParams.Contains(BookSearchParam.Title);
|
||||||
public bool BookSearchAuthorAvailable => BookSearchParams.Contains(BookSearchParam.Author);
|
public bool BookSearchAuthorAvailable => BookSearchParams.Contains(BookSearchParam.Author);
|
||||||
public bool BookSearchPublisherAvailable => BookSearchParams.Contains(BookSearchParam.Publisher);
|
public bool BookSearchPublisherAvailable => BookSearchParams.Contains(BookSearchParam.Publisher);
|
||||||
public bool BookSearchYearAvailable => BookSearchParams.Contains(BookSearchParam.Year);
|
|
||||||
public bool BookSearchGenreAvailable => BookSearchParams.Contains(BookSearchParam.Genre);
|
public bool BookSearchGenreAvailable => BookSearchParams.Contains(BookSearchParam.Genre);
|
||||||
|
public bool BookSearchYearAvailable => BookSearchParams.Contains(BookSearchParam.Year);
|
||||||
|
|
||||||
public readonly IndexerCapabilitiesCategories Categories;
|
public readonly IndexerCapabilitiesCategories Categories;
|
||||||
public List<IndexerFlag> Flags;
|
public List<IndexerFlag> Flags;
|
||||||
|
Reference in New Issue
Block a user