From 9d396d32e581cc0bc4c58c274a056976db4ed467 Mon Sep 17 00:00:00 2001 From: Stuart Boston Date: Mon, 16 Feb 2015 15:47:01 +0000 Subject: [PATCH] Updated --- .../omertron/themoviedbapi/TheMovieDbApi.java | 837 ++++++------------ .../themoviedbapi/methods/TmdbMovies.java | 567 ++++++++++++ .../themoviedbapi/methods/TmdbNetworks.java | 33 + .../themoviedbapi/model/TBD_Network.java | 2 +- .../themoviedbapi/tools/MethodBase.java | 1 + 5 files changed, 881 insertions(+), 559 deletions(-) diff --git a/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java b/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java index 91f62df72..3128da369 100644 --- a/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java +++ b/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java @@ -66,6 +66,7 @@ import com.omertron.themoviedbapi.model.Reviews; import com.omertron.themoviedbapi.model.StatusCode; import com.omertron.themoviedbapi.model.TBD_ExternalSource; import com.omertron.themoviedbapi.model.TBD_FindResults; +import com.omertron.themoviedbapi.model.TBD_Network; import com.omertron.themoviedbapi.model.TBD_PersonCredits; import com.omertron.themoviedbapi.model.TokenAuthorisation; import com.omertron.themoviedbapi.model.TokenSession; @@ -79,25 +80,17 @@ import com.omertron.themoviedbapi.tools.MethodBase; import com.omertron.themoviedbapi.tools.MethodSub; import com.omertron.themoviedbapi.tools.Param; import com.omertron.themoviedbapi.tools.TmdbParameters; -import com.omertron.themoviedbapi.wrapper.WrapperAlternativeTitles; import com.omertron.themoviedbapi.wrapper.WrapperCollection; import com.omertron.themoviedbapi.wrapper.WrapperCompany; import com.omertron.themoviedbapi.wrapper.WrapperImages; import com.omertron.themoviedbapi.wrapper.WrapperKeywords; import com.omertron.themoviedbapi.wrapper.WrapperMovie; -import com.omertron.themoviedbapi.wrapper.WrapperMovieCasts; -import com.omertron.themoviedbapi.wrapper.WrapperMovieKeywords; import com.omertron.themoviedbapi.wrapper.WrapperMovieList; import com.omertron.themoviedbapi.wrapper.WrapperPerson; import com.omertron.themoviedbapi.wrapper.WrapperPersonCredits; import com.omertron.themoviedbapi.wrapper.WrapperPersonList; -import com.omertron.themoviedbapi.wrapper.WrapperReleaseInfo; -import com.omertron.themoviedbapi.wrapper.WrapperReviews; -import com.omertron.themoviedbapi.wrapper.WrapperTranslations; -import com.omertron.themoviedbapi.wrapper.WrapperVideos; import java.io.IOException; import java.net.URL; -import java.util.Collections; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; @@ -124,8 +117,6 @@ public class TheMovieDbApi { private static final ObjectMapper MAPPER = new ObjectMapper(); // Constants private static final int YEAR_LENGTH = 4; - private static final int RATING_MAX = 10; - private static final int POST_SUCCESS_STATUS_CODE = 12; // Sub-methods private static TmdbAccount tmdbAccount; private static TmdbAuthentication tmdbAuth; @@ -296,554 +287,6 @@ public class TheMovieDbApi { return StringUtils.isNotBlank(year) && !"UNKNOWN".equals(year); } - /** - * This method is used to retrieve all of the basic movie information. - * - * It will return the single highest rated poster and backdrop. - * - * ApiExceptionType.MOVIE_ID_NOT_FOUND will be thrown if there are no movies - * found. - * - * @param movieId - * @param language - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public MovieDb getMovieInfo(int movieId, String language, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, movieId); - parameters.add(Param.LANGUAGE, language); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - try { - MovieDb movie = MAPPER.readValue(webpage, MovieDb.class); - if (movie == null || movie.getId() == 0) { - LOG.warn("No movie found for ID '{}'", movieId); - throw new MovieDbException(ApiExceptionType.ID_NOT_FOUND, "No movie found for ID: " + movieId, url); - } - return movie; - } catch (IOException ex) { - LOG.warn("Failed to get movie info: {}", ex.getMessage(), ex); - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, webpage, url, ex); - } - } - - /** - * This method is used to retrieve all of the basic movie information. - * - * It will return the single highest rated poster and backdrop. - * - * ApiExceptionType.MOVIE_ID_NOT_FOUND will be thrown if there are no movies - * found. - * - * @param imdbId - * @param language - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public MovieDb getMovieInfoImdb(String imdbId, String language, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, imdbId); - parameters.add(Param.LANGUAGE, language); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - - try { - MovieDb movie = MAPPER.readValue(webpage, MovieDb.class); - if (movie == null || movie.getId() == 0) { - LOG.warn("No movie found for IMDB ID: '{}'", imdbId); - throw new MovieDbException(ApiExceptionType.ID_NOT_FOUND, "No movie found for IMDB ID: " + imdbId, url); - } - return movie; - } catch (IOException ex) { - LOG.warn("Failed to get movie info: {}", ex.getMessage(), ex); - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get movie info", url, ex); - } - } - - /** - * This method is used to retrieve all of the alternative titles we have for - * a particular movie. - * - * @param movieId - * @param country - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public TmdbResultsList getMovieAlternativeTitles(int movieId, String country, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, movieId); - parameters.add(Param.COUNTRY, country); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).setSubMethod(MethodSub.ALT_TITLES).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - try { - WrapperAlternativeTitles wrapper = MAPPER.readValue(webpage, WrapperAlternativeTitles.class); - TmdbResultsList results = new TmdbResultsList(wrapper.getTitles()); - results.copyWrapper(wrapper); - return results; - } catch (IOException ex) { - LOG.warn("Failed to get movie alternative titles: {}", ex.getMessage(), ex); - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, webpage, url, ex); - } - } - - /** - * Get the cast information for a specific movie id. - * - * TODO: Add a function to enrich the data with the people methods - * - * @param movieId - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public TmdbResultsList getMovieCasts(int movieId, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, movieId); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).setSubMethod(MethodSub.CASTS).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - - try { - WrapperMovieCasts wrapper = MAPPER.readValue(webpage, WrapperMovieCasts.class); - TmdbResultsList results = new TmdbResultsList(wrapper.getAll()); - results.copyWrapper(wrapper); - return results; - } catch (IOException ex) { - LOG.warn("Failed to get movie casts: {}", ex.getMessage(), ex); - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, webpage, url, ex); - } - } - - /** - * This method should be used when you’re wanting to retrieve all of the - * images for a particular movie. - * - * @param movieId - * @param language - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public TmdbResultsList getMovieImages(int movieId, String language, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, movieId); - parameters.add(Param.LANGUAGE, language); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).setSubMethod(MethodSub.IMAGES).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - - try { - WrapperImages wrapper = MAPPER.readValue(webpage, WrapperImages.class); - TmdbResultsList results = new TmdbResultsList(wrapper.getAll()); - results.copyWrapper(wrapper); - return results; - } catch (IOException ex) { - LOG.warn("Failed to get movie images: {}", ex.getMessage(), ex); - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, webpage, url, ex); - } - } - - /** - * This method is used to retrieve all of the keywords that have been added - * to a particular movie. - * - * Currently, only English keywords exist. - * - * @param movieId - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public TmdbResultsList getMovieKeywords(int movieId, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, movieId); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).setSubMethod(MethodSub.KEYWORDS).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - - try { - WrapperMovieKeywords wrapper = MAPPER.readValue(webpage, WrapperMovieKeywords.class); - TmdbResultsList results = new TmdbResultsList(wrapper.getKeywords()); - results.copyWrapper(wrapper); - return results; - } catch (IOException ex) { - LOG.warn("Failed to get movie keywords: {}", ex.getMessage(), ex); - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, webpage, url, ex); - } - } - - /** - * This method is used to retrieve all of the release and certification data - * we have for a specific movie. - * - * @param movieId - * @param language - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public TmdbResultsList getMovieReleaseInfo(int movieId, String language, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, movieId); - parameters.add(Param.LANGUAGE, language); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).setSubMethod(MethodSub.RELEASES).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - - try { - WrapperReleaseInfo wrapper = MAPPER.readValue(webpage, WrapperReleaseInfo.class); - TmdbResultsList results = new TmdbResultsList(wrapper.getCountries()); - results.copyWrapper(wrapper); - return results; - } catch (IOException ex) { - LOG.warn("Failed to get movie release information: {}", ex.getMessage(), ex); - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, webpage, url, ex); - } - } - - /** - * This method is used to retrieve all of the trailers for a particular - * movie. - * - * Supported sites are YouTube and QuickTime. - * - * @param movieId - * @param language - * @param appendToResponse - * @return - * @throws MovieDbException - */ - public TmdbResultsList