Added the ability to filter the main search bar

This commit is contained in:
tidusjar 2020-10-06 14:17:01 +01:00
parent 1eae6647db
commit 7ba63a33ce
13 changed files with 132 additions and 36 deletions

View file

@ -36,7 +36,7 @@ namespace Ombi.Core.Engine.V2
private readonly IMusicBrainzApi _musicApi;
public async Task<List<MultiSearchResult>> MultiSearch(string searchTerm, CancellationToken cancellationToken)
public async Task<List<MultiSearchResult>> MultiSearch(string searchTerm, MultiSearchFilter filter, CancellationToken cancellationToken)
{
var lang = await DefaultLanguageCode(null);
var model = new List<MultiSearchResult>();
@ -44,7 +44,7 @@ namespace Ombi.Core.Engine.V2
var movieDbData = (await _movieDbApi.MultiSearch(searchTerm, lang, cancellationToken)).results;
var lidarrSettings = await _lidarrSettings.GetSettingsAsync();
if (lidarrSettings.Enabled)
if (lidarrSettings.Enabled && filter.Music)
{
var artistResult = await _musicApi.SearchArtist(searchTerm);
foreach (var artist in artistResult)
@ -66,7 +66,7 @@ namespace Ombi.Core.Engine.V2
Poster = multiSearch.poster_path
};
if (multiSearch.media_type.Equals("movie", StringComparison.InvariantCultureIgnoreCase))
if (multiSearch.media_type.Equals("movie", StringComparison.InvariantCultureIgnoreCase) && filter.Movies)
{
if (multiSearch.release_date.HasValue() && DateTime.TryParse(multiSearch.release_date, out var releaseDate))
{
@ -78,7 +78,7 @@ namespace Ombi.Core.Engine.V2
}
}
if (multiSearch.media_type.Equals("tv", StringComparison.InvariantCultureIgnoreCase))
else if (multiSearch.media_type.Equals("tv", StringComparison.InvariantCultureIgnoreCase) && filter.TvShows)
{
if (multiSearch.release_date.HasValue() && DateTime.TryParse(multiSearch.release_date, out var releaseDate))
{
@ -89,11 +89,14 @@ namespace Ombi.Core.Engine.V2
result.Title = multiSearch.name;
}
}
if (multiSearch.media_type.Equals("person", StringComparison.InvariantCultureIgnoreCase))
else if (multiSearch.media_type.Equals("person", StringComparison.InvariantCultureIgnoreCase) && filter.People)
{
result.Title = multiSearch.name;
}
else
{
continue;
}
result.Id = multiSearch.id.ToString();
model.Add(result);