Internal TheMovieDB API for retrieving Country/AlternativeTitle mappings

This commit is contained in:
Reinhard Pointner 2016-06-06 14:21:28 +08:00
parent 109a43c5d7
commit e8266b14dc
2 changed files with 14 additions and 0 deletions

View File

@ -311,6 +311,11 @@ public class TMDbClient implements MovieIdentificationService, ArtworkProvider {
}
}
public Map<String, String> getAlternativeTitles(int id) throws Exception {
Object titles = request("movie/" + id + "/alternative_titles", emptyMap(), Locale.ROOT, REQUEST_LIMIT);
return streamJsonObjects(titles, "titles").collect(toMap(it -> getString(it, "iso_3166_1"), it -> getString(it, "title"), (a, b) -> a, LinkedHashMap::new));
}
protected Object request(String resource, Map<String, Object> parameters, Locale locale, final FloodLimit limit) throws Exception {
// default parameters
String key = parameters.isEmpty() ? resource : resource + '?' + encodeParameters(parameters, true);

View File

@ -8,6 +8,7 @@ import java.time.Duration;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.junit.Ignore;
import org.junit.Test;
@ -86,6 +87,14 @@ public class TMDbClientTest {
assertEquals("Michael Bay", movie.getDirector());
}
@Test
public void getAlternativeTitles() throws Exception {
Map<String, String> titles = db.getAlternativeTitles(16320); // Serenity
assertEquals("衝出寧靜號", titles.get("TW"));
assertEquals("萤火虫", titles.get("CN"));
}
@Test
public void getArtwork() throws Exception {
Artwork a = db.getArtwork(16320, "backdrops", Locale.ROOT).get(0);