|
|
@ -36,6 +36,8 @@ namespace Ombi.Core.Engine
|
|
|
|
private IMapper Mapper { get; }
|
|
|
|
private IMapper Mapper { get; }
|
|
|
|
private ILogger<MovieSearchEngine> Logger { get; }
|
|
|
|
private ILogger<MovieSearchEngine> Logger { get; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private const int MovieLimit = 10;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Lookups the imdb information.
|
|
|
|
/// Lookups the imdb information.
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
@ -54,13 +56,13 @@ namespace Ombi.Core.Engine
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="search">The search.</param>
|
|
|
|
/// <param name="search">The search.</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <returns></returns>
|
|
|
|
public async Task<IEnumerable<SearchMovieViewModel>> Search(string search)
|
|
|
|
public async Task<IEnumerable<SearchMovieViewModel>> Search(string search, int? year)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var result = await MovieApi.SearchMovie(search);
|
|
|
|
var result = await MovieApi.SearchMovie(search, year);
|
|
|
|
|
|
|
|
|
|
|
|
if (result != null)
|
|
|
|
if (result != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(10)); // Take 10 to stop us overloading the API
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(MovieLimit)); // Take x to stop us overloading the API
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -76,7 +78,7 @@ namespace Ombi.Core.Engine
|
|
|
|
if (result != null)
|
|
|
|
if (result != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Logger.LogDebug("Search Result: {result}", result);
|
|
|
|
Logger.LogDebug("Search Result: {result}", result);
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(10)); // Take 10 to stop us overloading the API
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(MovieLimit)); // Take x to stop us overloading the API
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -90,7 +92,7 @@ namespace Ombi.Core.Engine
|
|
|
|
var result = await Cache.GetOrAdd(CacheKeys.PopularMovies, async () => await MovieApi.PopularMovies(), DateTime.Now.AddHours(12));
|
|
|
|
var result = await Cache.GetOrAdd(CacheKeys.PopularMovies, async () => await MovieApi.PopularMovies(), DateTime.Now.AddHours(12));
|
|
|
|
if (result != null)
|
|
|
|
if (result != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(10)); // Take 10 to stop us overloading the API
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(MovieLimit)); // Take x to stop us overloading the API
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -104,7 +106,7 @@ namespace Ombi.Core.Engine
|
|
|
|
var result = await Cache.GetOrAdd(CacheKeys.TopRatedMovies, async () => await MovieApi.TopRated(), DateTime.Now.AddHours(12));
|
|
|
|
var result = await Cache.GetOrAdd(CacheKeys.TopRatedMovies, async () => await MovieApi.TopRated(), DateTime.Now.AddHours(12));
|
|
|
|
if (result != null)
|
|
|
|
if (result != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(10)); // Take 10 to stop us overloading the API
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(MovieLimit)); // Take x to stop us overloading the API
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -119,7 +121,7 @@ namespace Ombi.Core.Engine
|
|
|
|
if (result != null)
|
|
|
|
if (result != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Logger.LogDebug("Search Result: {result}", result);
|
|
|
|
Logger.LogDebug("Search Result: {result}", result);
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(10)); // Take 10 to stop us overloading the API
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(MovieLimit)); // Take x to stop us overloading the API
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -133,7 +135,7 @@ namespace Ombi.Core.Engine
|
|
|
|
var result = await Cache.GetOrAdd(CacheKeys.NowPlayingMovies, async () => await MovieApi.NowPlaying(), DateTime.Now.AddHours(12));
|
|
|
|
var result = await Cache.GetOrAdd(CacheKeys.NowPlayingMovies, async () => await MovieApi.NowPlaying(), DateTime.Now.AddHours(12));
|
|
|
|
if (result != null)
|
|
|
|
if (result != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(10)); // Take 10 to stop us overloading the API
|
|
|
|
return await TransformMovieResultsToResponse(result.Take(MovieLimit)); // Take x to stop us overloading the API
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|