using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using TMDbLib.Objects.General; using TMDbLib.Objects.Genres; using TMDbLib.Objects.Search; using TMDbLib.Rest; namespace TMDbLib.Client { public partial class TMDbClient { [Obsolete("GetGenreMovies is deprecated, use DiscoverMovies instead")] public async Task> GetGenreMoviesAsync(int genreId, int page = 0, bool? includeAllMovies = null, CancellationToken cancellationToken = default) { return await GetGenreMoviesAsync(genreId, DefaultLanguage, page, includeAllMovies, cancellationToken).ConfigureAwait(false); } [Obsolete("GetGenreMovies is deprecated, use DiscoverMovies instead")] public async Task> GetGenreMoviesAsync(int genreId, string language, int page = 0, bool? includeAllMovies = null, CancellationToken cancellationToken = default) { RestRequest req = _client.Create("genre/{genreId}/movies"); req.AddUrlSegment("genreId", genreId.ToString()); language ??= DefaultLanguage; if (!string.IsNullOrWhiteSpace(language)) req.AddParameter("language", language); if (page >= 1) req.AddParameter("page", page.ToString()); if (includeAllMovies.HasValue) req.AddParameter("include_all_movies", includeAllMovies.Value ? "true" : "false"); SearchContainerWithId resp = await req.GetOfT>(cancellationToken).ConfigureAwait(false); return resp; } public async Task> GetMovieGenresAsync(CancellationToken cancellationToken = default) { return await GetMovieGenresAsync(DefaultLanguage, cancellationToken).ConfigureAwait(false); } public async Task> GetMovieGenresAsync(string language, CancellationToken cancellationToken = default) { RestRequest req = _client.Create("genre/movie/list"); language ??= DefaultLanguage; if (!string.IsNullOrWhiteSpace(language)) req.AddParameter("language", language); using RestResponse resp = await req.Get(cancellationToken).ConfigureAwait(false); return (await resp.GetDataObject().ConfigureAwait(false)).Genres; } public async Task> GetTvGenresAsync(CancellationToken cancellationToken = default) { return await GetTvGenresAsync(DefaultLanguage, cancellationToken).ConfigureAwait(false); } public async Task> GetTvGenresAsync(string language, CancellationToken cancellationToken = default) { RestRequest req = _client.Create("genre/tv/list"); language ??= DefaultLanguage; if (!string.IsNullOrWhiteSpace(language)) req.AddParameter("language", language); using RestResponse resp = await req.Get(cancellationToken).ConfigureAwait(false); return (await resp.GetDataObject().ConfigureAwait(false)).Genres; } } }