diff --git a/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/TheMovieDb.java b/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/TheMovieDb.java index a806b6a54..a34775eac 100644 --- a/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/TheMovieDb.java +++ b/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/TheMovieDb.java @@ -44,7 +44,6 @@ public class TheMovieDb { */ private static final String BASE_MOVIE = "movie/"; private static final String BASE_PERSON = "person/"; - // Configuration URL private final ApiUrl tmdbConfigUrl = new ApiUrl(this, "configuration"); // Search URLS @@ -65,17 +64,16 @@ public class TheMovieDb { private final ApiUrl tmdbPersonInfo = new ApiUrl(this, BASE_PERSON); private final ApiUrl tmdbPersonCredits = new ApiUrl(this, BASE_PERSON, "/credits"); private final ApiUrl tmdbPersonImages = new ApiUrl(this, BASE_PERSON, "/images"); - // Misc Movie - // - Movie Add Rating - Issue 9 - // - Latest Movie + /* + * Misc Movie - Movie Add Rating - Issue 9 + */ private final ApiUrl tmdbLatestMovie = new ApiUrl(this, "latest/movie"); - // - Now Playing Movies + private final ApiUrl tmdbNowPlaying = new ApiUrl(this, "movie/now-playing"); // - Populate Movie List // - Top Rated Movies // Company Info // - Company Info // - Company Movies - /* * Jackson JSON configuration */ @@ -566,6 +564,31 @@ public class TheMovieDb { } } + /** + * This method is used to retrieve the movies currently in theatres. This is + * a curated list that will normally contain 100 movies. The default + * response will return 20 movies. + * + * @return + * @throws MovieDbException + */ + public List getNowPlayingMovies(String language) throws MovieDbException { + URL url = tmdbNowPlaying.getIdUrl("", language); + String webPage = WebBrowser.request(url); + + try { + WrapperResultList resultList = mapper.readValue(webPage, WrapperResultList.class); + return resultList.getResults(); + } catch (IOException ex) { + LOGGER.warn("Failed to get latest movie: " + ex.getMessage()); + throw new MovieDbException(MovieDbExceptionType.MAPPING_FAILED, webPage); + } + } + + public List getNowPlayingMovies() throws MovieDbException { + return getNowPlayingMovies(""); + } + /** * Compare the MovieDB object with a title & year * diff --git a/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/tools/ApiUrl.java b/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/tools/ApiUrl.java index 232a46185..a7f920cc5 100644 --- a/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/tools/ApiUrl.java +++ b/themoviedbapi/src/main/java/com/moviejukebox/themoviedb/tools/ApiUrl.java @@ -147,7 +147,7 @@ public class ApiUrl { LOGGER.trace("URL: " + urlString.toString()); return new URL(urlString.toString()); } catch (MalformedURLException ex) { - LOGGER.warn("Failed to create URL " + urlString.toString()); + LOGGER.warn("Failed to create URL " + urlString.toString() + " - " + ex.toString()); return null; } } diff --git a/themoviedbapi/src/test/java/com/moviejukebox/themoviedb/TheMovieDbTest.java b/themoviedbapi/src/test/java/com/moviejukebox/themoviedb/TheMovieDbTest.java index 7a8fc4a5e..f89df73ce 100644 --- a/themoviedbapi/src/test/java/com/moviejukebox/themoviedb/TheMovieDbTest.java +++ b/themoviedbapi/src/test/java/com/moviejukebox/themoviedb/TheMovieDbTest.java @@ -77,7 +77,7 @@ public class TheMovieDbTest { * Test of searchMovie method, of class TheMovieDb. */ @Test - public void testSearchMovie() throws MovieDbException { + public void testSearchMovie() throws MovieDbException { LOGGER.info("searchMovie"); // Try a movie with less than 1 page of results @@ -302,9 +302,9 @@ public class TheMovieDbTest { public void testGetLatestMovie() throws MovieDbException { LOGGER.info("getLatestMovie"); MovieDb result = tmdb.getLatestMovie(); - LOGGER.info(result.toString()); + assertTrue("No latest movie found", result != null); assertTrue("No latest movie found", result.getId() > 0); -} + } /** * Test of compareMovies method, of class TheMovieDb. @@ -313,4 +313,30 @@ public class TheMovieDbTest { public void testCompareMovies() { // Not required } + + /** + * Test of setProxy method, of class TheMovieDb. + */ + @Test + public void testSetProxy() { + // Not required + } + + /** + * Test of setTimeout method, of class TheMovieDb. + */ + @Test + public void testSetTimeout() { + // Not required + } + + /** + * Test of getNowPlayingMovies method, of class TheMovieDb. + */ + @Test + public void testGetNowPlayingMovies() throws Exception { + LOGGER.info("getNowPlayingMovies"); + List results = tmdb.getNowPlayingMovies(); + assertTrue("No now playing movies foind", !results.isEmpty()); + } }