mirror of
https://github.com/mitb-archive/filebot
synced 2025-03-11 06:50:27 -04:00
Improved matching between AniDB and TheTVDB mappings on XEM:
https://www.filebot.net/forums/viewtopic.php?f=6&t=6037&p=44576#p44576
This commit is contained in:
parent
541a9cd18a
commit
49b6a822ba
@ -4,6 +4,7 @@ import static java.util.Arrays.*;
|
|||||||
import static java.util.Collections.*;
|
import static java.util.Collections.*;
|
||||||
import static java.util.stream.Collectors.*;
|
import static java.util.stream.Collectors.*;
|
||||||
import static net.filebot.Logging.*;
|
import static net.filebot.Logging.*;
|
||||||
|
import static net.filebot.similarity.Normalization.*;
|
||||||
import static net.filebot.util.JsonUtilities.*;
|
import static net.filebot.util.JsonUtilities.*;
|
||||||
import static net.filebot.util.StringUtilities.*;
|
import static net.filebot.util.StringUtilities.*;
|
||||||
import static net.filebot.web.WebRequest.*;
|
import static net.filebot.web.WebRequest.*;
|
||||||
@ -58,6 +59,10 @@ public enum XEM {
|
|||||||
return values == null || values.isEmpty() ? null : values.get(0);
|
return values == null || values.isEmpty() ? null : values.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String normalizeSeriesName(String n) {
|
||||||
|
return normalizePunctuation(n).toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
protected final Resource<Set<Integer>> haveMap = Resource.lazy(this::getHaveMap);
|
protected final Resource<Set<Integer>> haveMap = Resource.lazy(this::getHaveMap);
|
||||||
|
|
||||||
public Optional<Episode> map(Episode episode, XEM destination) throws Exception {
|
public Optional<Episode> map(Episode episode, XEM destination) throws Exception {
|
||||||
@ -67,14 +72,14 @@ public enum XEM {
|
|||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
String seriesName = episode.getSeriesName();
|
String seriesName = normalizeSeriesName(episode.getSeriesName());
|
||||||
Integer season = getSeason(episode.getSeason());
|
Integer season = getSeason(episode.getSeason());
|
||||||
|
|
||||||
Map<String, List<String>> names = getNames(seriesId);
|
Map<String, List<String>> names = getNames(seriesId);
|
||||||
debug.finest(format("[XEM] %s", names));
|
debug.finest(format("[XEM] %s", names));
|
||||||
|
|
||||||
Integer mappedSeason = names.entrySet().stream().filter(it -> {
|
Integer mappedSeason = names.entrySet().stream().filter(it -> {
|
||||||
return it.getValue().stream().anyMatch(seriesName::equals);
|
return it.getValue().stream().map(this::normalizeSeriesName).anyMatch(seriesName::equals);
|
||||||
}).map(it -> {
|
}).map(it -> {
|
||||||
return matchInteger(it.getKey());
|
return matchInteger(it.getKey());
|
||||||
}).filter(Objects::nonNull).findFirst().orElse(season);
|
}).filter(Objects::nonNull).findFirst().orElse(season);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user