From 7249508c7d5956b22c333fa88b227be7bca7aaa7 Mon Sep 17 00:00:00 2001 From: Uwe Date: Wed, 22 Oct 2025 14:21:21 +0200 Subject: [PATCH] Support getting watch providers for a specific season --- CHANGELOG.md | 5 +++-- .../tmdb2/services/TvSeasonsService.java | 13 ++++++++++--- .../tmdb2/services/TvSeasonsServiceTest.java | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b5d601..0061eeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,9 @@ ## Next version -* Add TV season translations method by @laurentblue in https://github.com/UweTrottmann/tmdb-java/pull/108 -* Add Watch Providers service with methods for movies and TV shows. +* Add `TvSeasonsService.translations` by @laurentblue in https://github.com/UweTrottmann/tmdb-java/pull/108 +* Add `TvSeasonsService.watchProviders` to get watch providers for a specific season +* Add `Tmdb.watchProvidersService` to get all available watch providers for movies and TV shows in a region * Note: TMDB has added additional primary translation languages: Bangla (India, `bn-IN`), Nepali (Nepal, `ne-NP`) and Occitan (France, `oc-FR`). diff --git a/src/main/java/com/uwetrottmann/tmdb2/services/TvSeasonsService.java b/src/main/java/com/uwetrottmann/tmdb2/services/TvSeasonsService.java index 5bb142e..2fde656 100644 --- a/src/main/java/com/uwetrottmann/tmdb2/services/TvSeasonsService.java +++ b/src/main/java/com/uwetrottmann/tmdb2/services/TvSeasonsService.java @@ -13,14 +13,14 @@ import com.uwetrottmann.tmdb2.entities.TvSeason; import com.uwetrottmann.tmdb2.entities.TvSeasonExternalIds; import com.uwetrottmann.tmdb2.entities.Videos; +import com.uwetrottmann.tmdb2.entities.WatchProviders; +import java.util.Map; import retrofit2.Call; import retrofit2.http.GET; import retrofit2.http.Path; import retrofit2.http.Query; import retrofit2.http.QueryMap; -import java.util.Map; - public interface TvSeasonsService { /** @@ -173,5 +173,12 @@ Call videos( @Query("language") String language ); - + /** + * See Watch Providers. + */ + @GET("tv/{tv_id}/season/{season_number}/watch/providers") + Call watchProviders( + @Path("tv_id") int tvShowId, + @Path("season_number") int tvShowSeasonNumber + ); } diff --git a/src/test/java/com/uwetrottmann/tmdb2/services/TvSeasonsServiceTest.java b/src/test/java/com/uwetrottmann/tmdb2/services/TvSeasonsServiceTest.java index 372fcc8..192d613 100644 --- a/src/test/java/com/uwetrottmann/tmdb2/services/TvSeasonsServiceTest.java +++ b/src/test/java/com/uwetrottmann/tmdb2/services/TvSeasonsServiceTest.java @@ -12,6 +12,7 @@ import static com.uwetrottmann.tmdb2.assertions.GenericAssertions.assertImages; import static com.uwetrottmann.tmdb2.assertions.GenericAssertions.assertTranslations; import static com.uwetrottmann.tmdb2.assertions.GenericAssertions.assertVideos; +import static com.uwetrottmann.tmdb2.assertions.GenericAssertions.assertWatchProviders; import static com.uwetrottmann.tmdb2.assertions.TvAssertions.assertTvSeason; import static com.uwetrottmann.tmdb2.assertions.TvAssertions.assertTvSeasonDataIntegrity; import static org.assertj.core.api.Assertions.assertThat; @@ -27,6 +28,7 @@ import com.uwetrottmann.tmdb2.entities.TvSeason; import com.uwetrottmann.tmdb2.entities.TvSeasonExternalIds; import com.uwetrottmann.tmdb2.entities.Videos; +import com.uwetrottmann.tmdb2.entities.WatchProviders; import com.uwetrottmann.tmdb2.enumerations.AppendToResponseItem; import java.io.IOException; import org.junit.Test; @@ -151,4 +153,17 @@ public void test_videos() throws IOException { assertVideos(videos); } + @Test + public void watchProviders() throws IOException { + WatchProviders providers = getUnauthenticatedInstance() + .tvSeasonsService() + .watchProviders(testTvShow.id, testTvSeason.season_number) + .execute() + .body(); + + assertThat(providers).isNotNull(); + assertThat(providers.id).isEqualTo(testTvSeason.id); + assertWatchProviders(providers); + } + }