diff --git a/source/net/filebot/similarity/EpisodeMetrics.java b/source/net/filebot/similarity/EpisodeMetrics.java index d10550d5..d17af039 100644 --- a/source/net/filebot/similarity/EpisodeMetrics.java +++ b/source/net/filebot/similarity/EpisodeMetrics.java @@ -285,16 +285,12 @@ public class EpisodeMetrics { } protected String[] getNormalizedEffectiveIdentifiers(Object object) { - List identifiers = getEffectiveIdentifiers(object); - String[] names = new String[identifiers.size()]; - - for (int i = 0; i < names.length; i++) { - names[i] = normalizeObject(identifiers.get(i)); - } - return names; + return getEffectiveIdentifiers(object).stream().map(it -> { + return normalizeObject(it); + }).toArray(String[]::new); } - protected List getEffectiveIdentifiers(Object object) { + protected Collection getEffectiveIdentifiers(Object object) { if (object instanceof Episode) { return ((Episode) object).getSeriesNames(); } else if (object instanceof Movie) { @@ -302,7 +298,7 @@ public class EpisodeMetrics { } else if (object instanceof File) { return listPathTail((File) object, 3, true); } - return singletonList(object); + return singleton(object); } @Override diff --git a/source/net/filebot/web/Episode.java b/source/net/filebot/web/Episode.java index 686ee4f4..eaa03e43 100644 --- a/source/net/filebot/web/Episode.java +++ b/source/net/filebot/web/Episode.java @@ -1,7 +1,6 @@ package net.filebot.web; import java.io.Serializable; -import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; @@ -95,7 +94,7 @@ public class Episode implements Serializable { return Arrays.asList(season, episode, special, absolute); } - public List getSeriesNames() { + public Set getSeriesNames() { Set names = new LinkedHashSet(); if (seriesName != null) { names.add(seriesName); @@ -110,7 +109,7 @@ public class Episode implements Serializable { } } } - return new ArrayList(names); + return names; } @Override diff --git a/source/net/filebot/web/XEM.java b/source/net/filebot/web/XEM.java index fcd5bc45..defb23c5 100644 --- a/source/net/filebot/web/XEM.java +++ b/source/net/filebot/web/XEM.java @@ -49,13 +49,14 @@ public enum XEM { return Optional.empty(); } - String seriesName = episode.getSeriesName(); + Set seriesNames = episode.getSeriesNames(); Integer season = getSeason(episode.getSeason()); Map> names = getNames(seriesId); + debug.finest(format("[XEM] %s", names)); Integer mappedSeason = names.entrySet().stream().filter(it -> { - return it.getValue().contains(seriesName); + return it.getValue().stream().anyMatch(seriesNames::contains); }).map(it -> { return matchInteger(it.getKey()); }).filter(Objects::nonNull).findFirst().orElse(season);