|
|
|
@ -37,7 +37,7 @@ public class TheMovieDb {
|
|
|
|
|
|
|
|
|
|
|
|
private String apiKey;
|
|
|
|
private String apiKey;
|
|
|
|
private static String apiSite = "http://api.themoviedb.org/2.1/";
|
|
|
|
private static String apiSite = "http://api.themoviedb.org/2.1/";
|
|
|
|
private static String defaultLanguage = "en";
|
|
|
|
private static String defaultLanguage = "en-US";
|
|
|
|
private static Logger logger;
|
|
|
|
private static Logger logger;
|
|
|
|
private static LogFormatter tmdbFormatter = new LogFormatter();
|
|
|
|
private static LogFormatter tmdbFormatter = new LogFormatter();
|
|
|
|
private static ConsoleHandler tmdbConsoleHandler = new ConsoleHandler();
|
|
|
|
private static ConsoleHandler tmdbConsoleHandler = new ConsoleHandler();
|
|
|
|
@ -103,10 +103,9 @@ public class TheMovieDb {
|
|
|
|
return movie;
|
|
|
|
return movie;
|
|
|
|
|
|
|
|
|
|
|
|
Document doc = null;
|
|
|
|
Document doc = null;
|
|
|
|
language = validateLanguage(language);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String searchUrl = buildSearchUrl("Movie.search", URLEncoder.encode(movieTitle, "UTF-8"), language);
|
|
|
|
String searchUrl = buildSearchUrl("Movie.search", URLEncoder.encode(movieTitle, "UTF-8"), validateLanguage(language));
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
|
|
|
|
|
|
|
|
@ -131,10 +130,9 @@ public class TheMovieDb {
|
|
|
|
return movie;
|
|
|
|
return movie;
|
|
|
|
|
|
|
|
|
|
|
|
Document doc = null;
|
|
|
|
Document doc = null;
|
|
|
|
language = validateLanguage(language);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String searchUrl = buildSearchUrl("Movie.imdbLookup", imdbID, language);
|
|
|
|
String searchUrl = buildSearchUrl("Movie.imdbLookup", imdbID, validateLanguage(language));
|
|
|
|
|
|
|
|
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
@ -175,10 +173,9 @@ public class TheMovieDb {
|
|
|
|
return movie;
|
|
|
|
return movie;
|
|
|
|
|
|
|
|
|
|
|
|
Document doc = null;
|
|
|
|
Document doc = null;
|
|
|
|
language = validateLanguage(language);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String searchUrl = buildSearchUrl("Movie.getInfo", tmdbID, language);
|
|
|
|
String searchUrl = buildSearchUrl("Movie.getInfo", tmdbID, validateLanguage(language));
|
|
|
|
|
|
|
|
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
@ -208,10 +205,9 @@ public class TheMovieDb {
|
|
|
|
return movie;
|
|
|
|
return movie;
|
|
|
|
|
|
|
|
|
|
|
|
Document doc = null;
|
|
|
|
Document doc = null;
|
|
|
|
language = validateLanguage(language);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String searchUrl = buildSearchUrl("Movie.getImages", searchTerm, language);
|
|
|
|
String searchUrl = buildSearchUrl("Movie.getImages", searchTerm, validateLanguage(language));
|
|
|
|
|
|
|
|
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
movie = DOMParser.parseMovieInfo(doc);
|
|
|
|
@ -223,21 +219,6 @@ public class TheMovieDb {
|
|
|
|
return movie;
|
|
|
|
return movie;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* This function will check the passed language against a list of known themoviedb.org languages
|
|
|
|
|
|
|
|
* Currently the only available language is English "en" and so that is what this function returns
|
|
|
|
|
|
|
|
* @param language
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String validateLanguage(String language) {
|
|
|
|
|
|
|
|
if (language == null) {
|
|
|
|
|
|
|
|
language = defaultLanguage;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
language = defaultLanguage;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return language;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* The Person.search method is used to search for an actor, actress or production member.
|
|
|
|
* The Person.search method is used to search for an actor, actress or production member.
|
|
|
|
* http://api.themoviedb.org/2.1/methods/Person.search
|
|
|
|
* http://api.themoviedb.org/2.1/methods/Person.search
|
|
|
|
@ -253,10 +234,9 @@ public class TheMovieDb {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Document doc = null;
|
|
|
|
Document doc = null;
|
|
|
|
language = validateLanguage(language);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String searchUrl = buildSearchUrl("Person.search", personName, language);
|
|
|
|
String searchUrl = buildSearchUrl("Person.search", personName, validateLanguage(language));
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
person = DOMParser.parsePersonInfo(doc);
|
|
|
|
person = DOMParser.parsePersonInfo(doc);
|
|
|
|
} catch (Exception error) {
|
|
|
|
} catch (Exception error) {
|
|
|
|
@ -281,10 +261,9 @@ public class TheMovieDb {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Document doc = null;
|
|
|
|
Document doc = null;
|
|
|
|
language = validateLanguage(language);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String searchUrl = buildSearchUrl("Person.getInfo", personID, language);
|
|
|
|
String searchUrl = buildSearchUrl("Person.getInfo", personID, validateLanguage(language));
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
person = DOMParser.parsePersonInfo(doc);
|
|
|
|
person = DOMParser.parsePersonInfo(doc);
|
|
|
|
} catch (Exception error) {
|
|
|
|
} catch (Exception error) {
|
|
|
|
@ -310,10 +289,9 @@ public class TheMovieDb {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Document doc = null;
|
|
|
|
Document doc = null;
|
|
|
|
language = validateLanguage(language);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String searchUrl = buildSearchUrl("Person.getVersion", personID, language);
|
|
|
|
String searchUrl = buildSearchUrl("Person.getVersion", personID, validateLanguage(language));
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
doc = DOMHelper.getEventDocFromUrl(searchUrl);
|
|
|
|
person = DOMParser.parsePersonGetVersion(doc);
|
|
|
|
person = DOMParser.parsePersonGetVersion(doc);
|
|
|
|
} catch (Exception error) {
|
|
|
|
} catch (Exception error) {
|
|
|
|
@ -322,4 +300,31 @@ public class TheMovieDb {
|
|
|
|
|
|
|
|
|
|
|
|
return person;
|
|
|
|
return person;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* This function will check the passed language against a list of known themoviedb.org languages
|
|
|
|
|
|
|
|
* Currently the only available language is English "en" and so that is what this function returns
|
|
|
|
|
|
|
|
* @param language
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String validateLanguage(String language) {
|
|
|
|
|
|
|
|
if (language == null) {
|
|
|
|
|
|
|
|
return defaultLanguage;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
* Rather than check every conceivable language, we'll just validate the format of the language
|
|
|
|
|
|
|
|
* The language should either be 2 or 5 characters "xx" or "xx-YY"
|
|
|
|
|
|
|
|
* http://api.themoviedb.org/2.1/language-tags
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
if (language.length() == 2) {
|
|
|
|
|
|
|
|
return language.toLowerCase();
|
|
|
|
|
|
|
|
} else if (language.length() == 5) {
|
|
|
|
|
|
|
|
return language.substring(1, 2).toLowerCase() + "-" + language.substring(4, 5).toUpperCase();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// The format of the language is wrong, so just cut the first two characters and use that
|
|
|
|
|
|
|
|
// The site will take care of invalid languages
|
|
|
|
|
|
|
|
return language.substring(1, 2).toLowerCase();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|