Skip to content

Commit

Permalink
feat(discover): Show more relevant shows in upcoming TV
Browse files Browse the repository at this point in the history
  • Loading branch information
sephrat committed Apr 28, 2022
1 parent b54fba5 commit 8357819
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/Ombi.Core/Engine/MovieSearchEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ public async Task<IEnumerable<SearchMovieViewModel>> UpcomingMovies()
var result = await Cache.GetOrAddAsync(CacheKeys.UpcomingMovies, async () =>
{
var langCode = await DefaultLanguageCode(null);
return await MovieApi.Upcoming(langCode);
return await MovieApi.UpcomingMovies(langCode);
}, DateTimeOffset.Now.AddHours(12));
if (result != null)
{
Expand Down
4 changes: 2 additions & 2 deletions src/Ombi.Core/Engine/V2/MovieSearchEngineV2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ public async Task<IEnumerable<SearchMovieViewModel>> UpcomingMovies()
var result = await Cache.GetOrAddAsync(CacheKeys.UpcomingMovies, async () =>
{
var langCode = await DefaultLanguageCode(null);
return await MovieApi.Upcoming(langCode);
return await MovieApi.UpcomingMovies(langCode);
}, DateTimeOffset.Now.AddHours(12));
if (result != null)
{
Expand All @@ -307,7 +307,7 @@ public async Task<IEnumerable<SearchMovieViewModel>> UpcomingMovies(int currentP
foreach (var pagesToLoad in pages)
{
var apiResult = await Cache.GetOrAddAsync(nameof(UpcomingMovies) + pagesToLoad.Page + langCode,
() => MovieApi.Upcoming(langCode, pagesToLoad.Page), DateTimeOffset.Now.AddHours(12));
() => MovieApi.UpcomingMovies(langCode, pagesToLoad.Page), DateTimeOffset.Now.AddHours(12));
results.AddRange(apiResult.Skip(pagesToLoad.Skip).Take(pagesToLoad.Take));
}
return await TransformMovieResultsToResponse(results);
Expand Down
2 changes: 1 addition & 1 deletion src/Ombi.TheMovieDbApi/IMovieDbApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public interface IMovieDbApi
Task<List<MovieDbSearchResult>> GetMoviesViaKeywords(string keywordId, string langCode, CancellationToken cancellationToken, int? page = null);
Task<List<TvSearchResult>> SearchTv(string searchTerm, string year = default);
Task<List<MovieDbSearchResult>> TopRated(string languageCode, int? page = null);
Task<List<MovieDbSearchResult>> Upcoming(string languageCode, int? page = null);
Task<List<MovieDbSearchResult>> UpcomingMovies(string languageCode, int? page = null);
Task<List<MovieDbSearchResult>> TopRatedTv(string languageCode, int? page = null);
Task<List<MovieDbSearchResult>> TrendingTv(string languageCode, int? page = null);
Task<List<MovieDbSearchResult>> UpcomingTv(string languageCode, int? page = null);
Expand Down
36 changes: 23 additions & 13 deletions src/Ombi.TheMovieDbApi/TheMovieDbApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -308,22 +308,12 @@ private async Task<List<MovieDbSearchResult>> Trending(string type, string langC
var result = await Api.Request<TheMovieDbContainer<SearchResult>>(request);
return Mapper.Map<List<MovieDbSearchResult>>(result.results);
}

public Task<List<MovieDbSearchResult>> Upcoming(string langCode, int? page = null)
{
return Upcoming("movie", langCode, page);
}
public Task<List<MovieDbSearchResult>> UpcomingTv(string langCode, int? page = null)
{
return Upcoming("tv", langCode, page);
}

/// <remarks>
/// Maintains filter parity with <a href="https://developers.themoviedb.org/3/movies/get-upcoming">/movie/upcoming</a>.
/// </remarks>
private async Task<List<MovieDbSearchResult>> Upcoming(string type, string langCode, int? page = null)
public async Task<List<MovieDbSearchResult>> UpcomingMovies(string langCode, int? page = null)
{
var request = new Request($"discover/{type}", BaseUri, HttpMethod.Get);
var request = new Request($"discover/movie", BaseUri, HttpMethod.Get);
request.AddQueryString("api_key", ApiToken);
request.AddQueryString("language", langCode);

Expand All @@ -340,7 +330,27 @@ private async Task<List<MovieDbSearchResult>> Upcoming(string type, string langC
request.AddQueryString("page", page.ToString());
}
await AddDiscoverSettings(request);
await AddGenreFilter(request, type);
await AddGenreFilter(request, "movie");
AddRetry(request);
var result = await Api.Request<TheMovieDbContainer<SearchResult>>(request);
return Mapper.Map<List<MovieDbSearchResult>>(result.results);
}
public async Task<List<MovieDbSearchResult>> UpcomingTv(string langCode, int? page = null)
{
var request = new Request($"discover/tv", BaseUri, HttpMethod.Get);
request.AddQueryString("api_key", ApiToken);
request.AddQueryString("language", langCode);

// Search for shows that will air in the next month
var startDate = DateTime.Today.AddDays(1);
request.AddQueryString($"first_air_date.gte", startDate.ToString("yyyy-MM-dd"));
request.AddQueryString($"first_air_date.lte", startDate.AddDays(30).ToString("yyyy-MM-dd"));
if (page != null)
{
request.AddQueryString("page", page.ToString());
}
await AddDiscoverSettings(request);
await AddGenreFilter(request, "tv");
AddRetry(request);
var result = await Api.Request<TheMovieDbContainer<SearchResult>>(request);
return Mapper.Map<List<MovieDbSearchResult>>(result.results);
Expand Down

0 comments on commit 8357819

Please sign in to comment.