diff --git a/source/net/filebot/WebServices.java b/source/net/filebot/WebServices.java index 5e5543e4..d799c15b 100644 --- a/source/net/filebot/WebServices.java +++ b/source/net/filebot/WebServices.java @@ -200,7 +200,7 @@ public final class WebServices { } @Override - public synchronized List search(final String query, final boolean byMovie, final boolean bySeries) throws Exception { + public synchronized List search(final String query) throws Exception { List results = getLocalIndex().search(query); return sortBySimilarity(results, singleton(query), new MetricAvg(getSeriesMatchMetric(), getMovieMatchMetric()), false); diff --git a/source/net/filebot/subtitle/SubtitleUtilities.java b/source/net/filebot/subtitle/SubtitleUtilities.java index 6f0ce2d4..e7154117 100644 --- a/source/net/filebot/subtitle/SubtitleUtilities.java +++ b/source/net/filebot/subtitle/SubtitleUtilities.java @@ -29,6 +29,7 @@ import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Set; import java.util.TreeSet; +import java.util.stream.Stream; import net.filebot.Language; import net.filebot.similarity.EpisodeMetrics; @@ -196,7 +197,12 @@ public final class SubtitleUtilities { // search for and automatically select movie / show entry Set resultSet = new HashSet(); for (String query : querySet) { - resultSet.addAll(findProbableSearchResults(query, service.search(query, searchByMovie, searchBySeries), querySet.size() == 1 ? 4 : 2)); + // search and filter by movie/series as required + Stream searchResults = service.search(query).stream().filter((it) -> { + return (searchByMovie && it.isMovie()) || (searchBySeries && it.isSeries()); + }); + + resultSet.addAll(findProbableSearchResults(query, searchResults::iterator, querySet.size() == 1 ? 4 : 2)); } // fetch subtitles for all search results diff --git a/source/net/filebot/ui/subtitle/SubtitlePanel.java b/source/net/filebot/ui/subtitle/SubtitlePanel.java index 894d43c9..dfd20fbf 100644 --- a/source/net/filebot/ui/subtitle/SubtitlePanel.java +++ b/source/net/filebot/ui/subtitle/SubtitlePanel.java @@ -151,8 +151,12 @@ public class SubtitlePanel extends AbstractSearchPanel getHistory(SubtitleProvider engine) throws Exception { List names = new ArrayList(); - for (SearchResult it : MediaDetection.releaseInfo.getOpenSubtitlesIndex()) { - names.addAll(it.getEffectiveNames()); + for (SubtitleSearchResult it : MediaDetection.releaseInfo.getOpenSubtitlesIndex()) { + if (it.isMovie()) { + names.add(it.getNameWithYear()); + } else if (it.isSeries()) { + names.add(it.getName()); + } } return names; }; @@ -220,7 +224,7 @@ public class SubtitlePanel extends AbstractSearchPanel search() throws Exception { - return request.getProvider().search(request.getSearchText(), true, true); + return request.getProvider().search(request.getSearchText()); } @Override diff --git a/source/net/filebot/web/OpenSubtitlesClient.java b/source/net/filebot/web/OpenSubtitlesClient.java index 4b099208..50e24d9e 100644 --- a/source/net/filebot/web/OpenSubtitlesClient.java +++ b/source/net/filebot/web/OpenSubtitlesClient.java @@ -88,7 +88,7 @@ public class OpenSubtitlesClient implements SubtitleProvider, VideoHashSubtitleS } @Override - public synchronized List search(String query, boolean byMovie, boolean bySeries) throws Exception { + public synchronized List search(String query) throws Exception { throw new UnsupportedOperationException(); // XMLRPC::SearchMoviesOnIMDB is not allowed due to abuse } diff --git a/source/net/filebot/web/SubtitleProvider.java b/source/net/filebot/web/SubtitleProvider.java index 9078e966..83cf1e7f 100644 --- a/source/net/filebot/web/SubtitleProvider.java +++ b/source/net/filebot/web/SubtitleProvider.java @@ -7,7 +7,7 @@ import javax.swing.Icon; public interface SubtitleProvider { - public List search(String query, boolean byMovie, boolean bySeries) throws Exception; + public List search(String query) throws Exception; public List getSubtitleList(SubtitleSearchResult searchResult, String languageName) throws Exception; diff --git a/source/net/filebot/web/SubtitleSearchResult.java b/source/net/filebot/web/SubtitleSearchResult.java index 0293c156..1c2b787e 100644 --- a/source/net/filebot/web/SubtitleSearchResult.java +++ b/source/net/filebot/web/SubtitleSearchResult.java @@ -25,4 +25,12 @@ public class SubtitleSearchResult extends Movie { return score; } + public boolean isMovie() { + return kind == KIND_MOVIE; + } + + public boolean isSeries() { + return kind == KIND_SERIES; + } + }