From c7f4efe47958cbeb9c605f48be2bcf519721c6f3 Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Wed, 2 Oct 2019 01:38:53 +0200 Subject: [PATCH 1/4] Added tv show reviews --- TMDbLib/Client/TMDbClientTvShows.cs | 6 ++++++ TMDbLib/Objects/TvShows/TvShowMethods.cs | 4 +++- TMDbLibTests/ClientTvShowTests.cs | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/TMDbLib/Client/TMDbClientTvShows.cs b/TMDbLib/Client/TMDbClientTvShows.cs index 6f0a5587..89b275b6 100644 --- a/TMDbLib/Client/TMDbClientTvShows.cs +++ b/TMDbLib/Client/TMDbClientTvShows.cs @@ -6,6 +6,7 @@ using TMDbLib.Objects.Authentication; using TMDbLib.Objects.Changes; using TMDbLib.Objects.General; +using TMDbLib.Objects.Reviews; using TMDbLib.Objects.Search; using TMDbLib.Objects.TvShows; using TMDbLib.Rest; @@ -298,6 +299,11 @@ public partial class TMDbClient return await GetTvShowMethod>(id, TvShowMethods.Videos, cancellationToken: cancellationToken).ConfigureAwait(false); } + public async Task> GetTvShowReviewsAsync(int id, string language = null, int page = 0, CancellationToken cancellationToken = default(CancellationToken)) + { + return await GetTvShowMethod>(id, TvShowMethods.Reviews, language: language, page: page, cancellationToken: cancellationToken).ConfigureAwait(false); + } + public async Task TvShowRemoveRatingAsync(int tvShowId, CancellationToken cancellationToken = default(CancellationToken)) { RequireSessionId(SessionType.GuestSession); diff --git a/TMDbLib/Objects/TvShows/TvShowMethods.cs b/TMDbLib/Objects/TvShows/TvShowMethods.cs index f2e85dda..cb9a2f46 100644 --- a/TMDbLib/Objects/TvShows/TvShowMethods.cs +++ b/TMDbLib/Objects/TvShows/TvShowMethods.cs @@ -31,6 +31,8 @@ public enum TvShowMethods [EnumValue("changes")] Changes = 1024, [EnumValue("recommendations")] - Recommendations = 2048 + Recommendations = 2048, + [EnumValue("reviews")] + Reviews = 4096 } } diff --git a/TMDbLibTests/ClientTvShowTests.cs b/TMDbLibTests/ClientTvShowTests.cs index 481d6c6d..cad0a332 100644 --- a/TMDbLibTests/ClientTvShowTests.cs +++ b/TMDbLibTests/ClientTvShowTests.cs @@ -442,6 +442,12 @@ public void TestTvShowLatest() Assert.NotNull(tvShow); } + [Fact] + public void TestTvShowReviews() + { + TestHelpers.SearchPages(i => Config.Client.GetTvShowReviewsAsync(IdHelper.BreakingBad, page: i).Result); + } + [Fact] public void TestTvShowLists() { From cf4f1ad019cbfb0db624418793dc376a437270a7 Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Wed, 2 Oct 2019 01:39:19 +0200 Subject: [PATCH 2/4] Added method for finding tv episodes screened theatrically --- TMDbLib/Client/TMDbClientTvEpisodes.cs | 7 +++++++ TMDbLib/Objects/TvShows/TvEpisodeBase.cs | 11 +---------- TMDbLib/Objects/TvShows/TvEpisodeInfo.cs | 16 ++++++++++++++++ TMDbLibTests/ClientTvEpisodeTests.cs | 11 +++++++++++ 4 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 TMDbLib/Objects/TvShows/TvEpisodeInfo.cs diff --git a/TMDbLib/Client/TMDbClientTvEpisodes.cs b/TMDbLib/Client/TMDbClientTvEpisodes.cs index 1a454f5b..67c91758 100644 --- a/TMDbLib/Client/TMDbClientTvEpisodes.cs +++ b/TMDbLib/Client/TMDbClientTvEpisodes.cs @@ -102,6 +102,13 @@ public partial class TMDbClient return response; } + public async Task> GetTvEpisodesScreenedTheatricallyAsync(int tvShowId, CancellationToken cancellationToken = default(CancellationToken)) + { + RestRequest req = _client.Create("tv/{tv_id}/screened_theatrically"); + req.AddUrlSegment("tv_id", tvShowId.ToString(CultureInfo.InvariantCulture)); + + return await req.ExecuteGet>(cancellationToken).ConfigureAwait(false); + } /// /// Returns a credits object for the specified episode. diff --git a/TMDbLib/Objects/TvShows/TvEpisodeBase.cs b/TMDbLib/Objects/TvShows/TvEpisodeBase.cs index 255bc4fe..a970ec9f 100644 --- a/TMDbLib/Objects/TvShows/TvEpisodeBase.cs +++ b/TMDbLib/Objects/TvShows/TvEpisodeBase.cs @@ -3,17 +3,11 @@ namespace TMDbLib.Objects.TvShows { - public class TvEpisodeBase + public class TvEpisodeBase : TvEpisodeInfo { [JsonProperty("air_date")] public DateTime? AirDate { get; set; } - [JsonProperty("episode_number")] - public int EpisodeNumber { get; set; } - - [JsonProperty("id")] - public int? Id { get; set; } - [JsonProperty("name")] public string Name { get; set; } @@ -23,9 +17,6 @@ public class TvEpisodeBase [JsonProperty("production_code")] public string ProductionCode { get; set; } - [JsonProperty("season_number")] - public int SeasonNumber { get; set; } - [JsonProperty("show_id")] public int ShowId { get; set; } diff --git a/TMDbLib/Objects/TvShows/TvEpisodeInfo.cs b/TMDbLib/Objects/TvShows/TvEpisodeInfo.cs new file mode 100644 index 00000000..9b9c2e78 --- /dev/null +++ b/TMDbLib/Objects/TvShows/TvEpisodeInfo.cs @@ -0,0 +1,16 @@ +using Newtonsoft.Json; + +namespace TMDbLib.Objects.TvShows +{ + public class TvEpisodeInfo + { + [JsonProperty("id")] + public int? Id { get; set; } + + [JsonProperty("season_number")] + public int SeasonNumber { get; set; } + + [JsonProperty("episode_number")] + public int EpisodeNumber { get; set; } + } +} diff --git a/TMDbLibTests/ClientTvEpisodeTests.cs b/TMDbLibTests/ClientTvEpisodeTests.cs index a2de567a..515f36d0 100644 --- a/TMDbLibTests/ClientTvEpisodeTests.cs +++ b/TMDbLibTests/ClientTvEpisodeTests.cs @@ -260,5 +260,16 @@ public void TestTvEpisodeMissing() Assert.Null(tvEpisode); } + + [Fact] + public void TestTvEpisodesScreenedTheatrically() + { + var results = Config.Client.GetTvEpisodesScreenedTheatricallyAsync(IdHelper.GameOfThrones).Result; + + Assert.Equal(IdHelper.GameOfThrones, results.Id); + Assert.NotNull(results); + Assert.NotNull(results.Results); + Assert.True(results.Results.Count > 0); + } } } \ No newline at end of file From 1677d1b50f6d3ebdd63fd81a31c735a037671ddf Mon Sep 17 00:00:00 2001 From: Michael Bisbjerg Date: Thu, 12 Mar 2020 13:17:52 +0100 Subject: [PATCH 3/4] Formatting --- TMDbLib/Client/TMDbClientTvEpisodes.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/TMDbLib/Client/TMDbClientTvEpisodes.cs b/TMDbLib/Client/TMDbClientTvEpisodes.cs index 67c91758..1fe1af7f 100644 --- a/TMDbLib/Client/TMDbClientTvEpisodes.cs +++ b/TMDbLib/Client/TMDbClientTvEpisodes.cs @@ -102,6 +102,7 @@ public partial class TMDbClient return response; } + public async Task> GetTvEpisodesScreenedTheatricallyAsync(int tvShowId, CancellationToken cancellationToken = default(CancellationToken)) { RestRequest req = _client.Create("tv/{tv_id}/screened_theatrically"); From 80e53708fb53f1cb1cde8a9609c09364834bf5b1 Mon Sep 17 00:00:00 2001 From: Michael Bisbjerg Date: Thu, 12 Mar 2020 13:22:17 +0100 Subject: [PATCH 4/4] Specify test --- TMDbLibTests/ClientTvEpisodeTests.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/TMDbLibTests/ClientTvEpisodeTests.cs b/TMDbLibTests/ClientTvEpisodeTests.cs index 515f36d0..6a761720 100644 --- a/TMDbLibTests/ClientTvEpisodeTests.cs +++ b/TMDbLibTests/ClientTvEpisodeTests.cs @@ -264,12 +264,14 @@ public void TestTvEpisodeMissing() [Fact] public void TestTvEpisodesScreenedTheatrically() { - var results = Config.Client.GetTvEpisodesScreenedTheatricallyAsync(IdHelper.GameOfThrones).Result; + ResultContainer results = Config.Client.GetTvEpisodesScreenedTheatricallyAsync(IdHelper.GameOfThrones).Result; Assert.Equal(IdHelper.GameOfThrones, results.Id); - Assert.NotNull(results); - Assert.NotNull(results.Results); - Assert.True(results.Results.Count > 0); + + TvEpisodeInfo single = results.Results.FirstOrDefault(s => s.Id == 63103); + Assert.NotNull(single); + Assert.Equal(4, single.SeasonNumber); + Assert.Equal(10, single.EpisodeNumber); } } } \ No newline at end of file