From c3decda9cb39217f58177cd84af349ecdf5e2ce9 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Mon, 1 Feb 2016 10:09:06 +0000 Subject: [PATCH] Improve Subtitle Upload usability --- .../ui/subtitle/SubtitleDropTarget.java | 21 ++++++++++++------- .../ui/subtitle/SubtitleUploadDialog.java | 2 +- website/data/release-groups.txt | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/source/net/filebot/ui/subtitle/SubtitleDropTarget.java b/source/net/filebot/ui/subtitle/SubtitleDropTarget.java index 339ee7e0..18f24a7b 100644 --- a/source/net/filebot/ui/subtitle/SubtitleDropTarget.java +++ b/source/net/filebot/ui/subtitle/SubtitleDropTarget.java @@ -23,7 +23,9 @@ import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.TreeSet; +import java.util.function.Function; import java.util.logging.Level; import javax.swing.Icon; @@ -284,16 +286,21 @@ abstract class SubtitleDropTarget extends JButton { } protected File getVideoForSubtitle(File subtitle, List videos) { - String baseName = stripReleaseInfo(FileUtilities.getName(subtitle)).toLowerCase(); + // 1. try to find exact match in drop data + return findMatch(subtitle, videos, FileUtilities::getName).orElseGet(() -> { + // 2. guess movie file from the parent folder if only a subtitle file was dropped in + return findMatch(subtitle, getChildren(subtitle.getParentFile(), VIDEO_FILES), FileUtilities::getName).get(); + }); + } - // find corresponding movie file - for (File it : videos) { - if (!baseName.isEmpty() && stripReleaseInfo(FileUtilities.getName(it)).toLowerCase().startsWith(baseName)) { - return it; + private Optional findMatch(File file, List options, Function comparator) { + String name = comparator.apply(file).toLowerCase(); + for (File it : options) { + if (name.length() > 0 && comparator.apply(it).toLowerCase().startsWith(name)) { + return Optional.of(it); } } - - return null; + return Optional.empty(); } @Override diff --git a/source/net/filebot/ui/subtitle/SubtitleUploadDialog.java b/source/net/filebot/ui/subtitle/SubtitleUploadDialog.java index d59bfd12..c15c9132 100644 --- a/source/net/filebot/ui/subtitle/SubtitleUploadDialog.java +++ b/source/net/filebot/ui/subtitle/SubtitleUploadDialog.java @@ -200,7 +200,7 @@ public class SubtitleUploadDialog extends JDialog { } } } else { - UILogger.warning(String.format("%s: \"%s\" not found.", database.getName(), input)); + UILogger.warning(String.format("%s: \"%s\" has not been found", database.getName(), input)); } } catch (Exception e) { Logger.getLogger(SubtitleUploadDialog.class.getClass().getName()).log(Level.WARNING, e.getMessage(), e); diff --git a/website/data/release-groups.txt b/website/data/release-groups.txt index 49ee7e5d..2ea14619 100644 --- a/website/data/release-groups.txt +++ b/website/data/release-groups.txt @@ -1705,6 +1705,7 @@ MRShanku MS mSD MsR +MTeam mthodmn101 MUC MURDER