* all users will now require authentication when using OpenSubtitles

This commit is contained in:
Reinhard Pointner 2014-10-28 17:22:48 +00:00
parent 8fe8e4d400
commit 834b8b5205
1 changed files with 13 additions and 2 deletions

View File

@ -74,6 +74,7 @@ import net.filebot.web.MovieFormat;
import net.filebot.web.MovieIdentificationService; import net.filebot.web.MovieIdentificationService;
import net.filebot.web.MoviePart; import net.filebot.web.MoviePart;
import net.filebot.web.MusicIdentificationService; import net.filebot.web.MusicIdentificationService;
import net.filebot.web.OpenSubtitlesClient;
import net.filebot.web.SearchResult; import net.filebot.web.SearchResult;
import net.filebot.web.SortOrder; import net.filebot.web.SortOrder;
import net.filebot.web.SubtitleDescriptor; import net.filebot.web.SubtitleDescriptor;
@ -720,7 +721,7 @@ public class CmdlineOperations implements CmdlineInterface {
// lookup subtitles by hash // lookup subtitles by hash
for (VideoHashSubtitleService service : getVideoHashSubtitleServices()) { for (VideoHashSubtitleService service : getVideoHashSubtitleServices()) {
if (remainingVideos.isEmpty() || (databaseFilter != null && !databaseFilter.matcher(service.getName()).matches())) { if (remainingVideos.isEmpty() || (databaseFilter != null && !databaseFilter.matcher(service.getName()).matches()) || !requireLogin(service)) {
continue; continue;
} }
@ -736,7 +737,7 @@ public class CmdlineOperations implements CmdlineInterface {
} }
for (SubtitleProvider service : getSubtitleProviders()) { for (SubtitleProvider service : getSubtitleProviders()) {
if (strict || remainingVideos.isEmpty() || (databaseFilter != null && !databaseFilter.matcher(service.getName()).matches())) { if (strict || remainingVideos.isEmpty() || (databaseFilter != null && !databaseFilter.matcher(service.getName()).matches()) || !requireLogin(service)) {
continue; continue;
} }
@ -766,6 +767,16 @@ public class CmdlineOperations implements CmdlineInterface {
return subtitleFiles; return subtitleFiles;
} }
private static boolean requireLogin(Object service) {
if (service instanceof OpenSubtitlesClient) {
OpenSubtitlesClient osdb = (OpenSubtitlesClient) service;
if (osdb.isAnonymous()) {
throw new CmdlineException(String.format("%s: Please enter your login details by calling `filebot -script fn:osdb.login`", osdb.getName()));
}
}
return true; // no login => logged in by default
}
@Override @Override
public List<File> getMissingSubtitles(Collection<File> files, String db, String query, final String languageName, String output, String csn, final String format, boolean strict) throws Exception { public List<File> getMissingSubtitles(Collection<File> files, String db, String query, final String languageName, String output, String csn, final String format, boolean strict) throws Exception {
List<File> videoFiles = filter(filter(files, VIDEO_FILES), new FileFilter() { List<File> videoFiles = filter(filter(files, VIDEO_FILES), new FileFilter() {