mirror of
https://github.com/mitb-archive/filebot
synced 2025-03-09 22:09:47 -04:00
Coerce episode number [1.1] to [1]
This commit is contained in:
parent
8a4c5f116c
commit
623fee00cb
@ -4,6 +4,7 @@ import static java.util.Arrays.*;
|
||||
import static java.util.Collections.*;
|
||||
import static net.filebot.Logging.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
@ -88,10 +89,14 @@ public class JsonUtilities {
|
||||
return getStringValue(node, key, Integer::parseInt);
|
||||
}
|
||||
|
||||
public static Double getDecimal(Object node, String key) {
|
||||
public static Double getDouble(Object node, String key) {
|
||||
return getStringValue(node, key, Double::parseDouble);
|
||||
}
|
||||
|
||||
public static BigDecimal getDecimal(Object node, String key) {
|
||||
return getStringValue(node, key, BigDecimal::new);
|
||||
}
|
||||
|
||||
public static <V> V getStringValue(Object node, String key, Function<String, V> converter) {
|
||||
String value = getString(node, key);
|
||||
if (value != null) {
|
||||
|
@ -49,7 +49,7 @@ public class FanartTVClient implements Datasource, ArtworkProvider {
|
||||
try {
|
||||
String url = getString(it, "url");
|
||||
Locale language = getStringValue(it, "lang", Locale::new);
|
||||
Double likes = getDecimal(it, "likes");
|
||||
Double likes = getDouble(it, "likes");
|
||||
String season = getString(it, "season");
|
||||
String discType = getString(it, "disc_type");
|
||||
|
||||
|
@ -96,7 +96,7 @@ public class TMDbClient implements MovieIdentificationService, ArtworkProvider {
|
||||
return streamJsonObjects(response, "results").map(it -> {
|
||||
int id = -1, year = -1;
|
||||
try {
|
||||
id = getDecimal(it, "id").intValue();
|
||||
id = getDouble(it, "id").intValue();
|
||||
year = matchInteger(getString(it, "release_date")); // release date is often missing
|
||||
} catch (Exception e) {
|
||||
debug.fine(format("Missing data: release_date => %s", it));
|
||||
|
@ -162,7 +162,7 @@ public class TheTVDBClient extends AbstractEpisodeListProvider implements Artwor
|
||||
info.setNetwork(getString(data, "network"));
|
||||
info.setStatus(getString(data, "status"));
|
||||
|
||||
info.setRating(getDecimal(data, "siteRating"));
|
||||
info.setRating(getDouble(data, "siteRating"));
|
||||
info.setRatingCount(getInteger(data, "siteRatingCount"));
|
||||
|
||||
info.setRuntime(matchInteger(getString(data, "runtime")));
|
||||
@ -226,12 +226,16 @@ public class TheTVDBClient extends AbstractEpisodeListProvider implements Artwor
|
||||
// adjust for forced absolute numbering (if possible)
|
||||
if (sortOrder == SortOrder.DVD) {
|
||||
Integer dvdSeasonNumber = getInteger(it, "dvdSeason");
|
||||
Integer dvdEpisodeNumber = getInteger(it, "dvdEpisodeNumber");
|
||||
Number dvdEpisodeNumber = getDecimal(it, "dvdEpisodeNumber"); // e.g. 4.2
|
||||
|
||||
// require both values to be valid integer numbers
|
||||
if (dvdSeasonNumber != null && dvdEpisodeNumber != null) {
|
||||
seasonNumber = dvdSeasonNumber;
|
||||
episodeNumber = dvdEpisodeNumber;
|
||||
episodeNumber = dvdEpisodeNumber.intValue();
|
||||
|
||||
if (episodeNumber.doubleValue() != dvdEpisodeNumber.doubleValue()) {
|
||||
debug.finest(format("[%s] Coerce episode number [%s] to [%s]", info, dvdEpisodeNumber, episodeNumber));
|
||||
}
|
||||
}
|
||||
} else if (sortOrder == SortOrder.Absolute && absoluteNumber != null && absoluteNumber > 0) {
|
||||
seasonNumber = null;
|
||||
@ -292,7 +296,7 @@ public class TheTVDBClient extends AbstractEpisodeListProvider implements Artwor
|
||||
String subKey = getString(it, "subKey");
|
||||
String resolution = getString(it, "resolution");
|
||||
URL url = getStringValue(it, "fileName", this::resolveImage);
|
||||
Double rating = getDecimal(getMap(it, "ratingsInfo"), "average");
|
||||
Double rating = getDouble(getMap(it, "ratingsInfo"), "average");
|
||||
|
||||
return new Artwork(Stream.of(category, subKey, resolution), url, locale, rating);
|
||||
}).sorted(Artwork.RATING_ORDER).collect(toList());
|
||||
@ -337,7 +341,7 @@ public class TheTVDBClient extends AbstractEpisodeListProvider implements Artwor
|
||||
Integer seriesId = getInteger(data, "seriesId");
|
||||
String overview = getString(data, "overview");
|
||||
|
||||
Double rating = getDecimal(data, "siteRating");
|
||||
Double rating = getDouble(data, "siteRating");
|
||||
Integer votes = getInteger(data, "siteRatingCount");
|
||||
|
||||
List<Person> people = new ArrayList<Person>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user