* avoid odd behaviour when lookup is called with an empty list of files

This commit is contained in:
Reinhard Pointner 2015-01-03 21:16:13 +00:00
parent 2d4c573386
commit 693aa93224
3 changed files with 22 additions and 21 deletions

View File

@ -10,6 +10,7 @@ import java.lang.ProcessBuilder.Redirect;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
@ -54,21 +55,24 @@ public class AcoustIDClient implements MusicIdentificationService {
}
@Override
public Map<File, AudioTrack> lookup(Iterable<File> files) throws Exception {
public Map<File, AudioTrack> lookup(Collection<File> files) throws Exception {
Map<File, AudioTrack> results = new LinkedHashMap<File, AudioTrack>();
for (Map<String, String> fp : fpcalc(files)) {
File file = new File(fp.get("FILE"));
int duration = Integer.parseInt(fp.get("DURATION"));
String fingerprint = fp.get("FINGERPRINT");
if (files.size() > 0) {
for (Map<String, String> fp : fpcalc(files)) {
File file = new File(fp.get("FILE"));
int duration = Integer.parseInt(fp.get("DURATION"));
String fingerprint = fp.get("FINGERPRINT");
if (duration > 10 && fingerprint != null) {
String response = lookup(duration, fingerprint);
if (response != null && response.length() > 0) {
results.put(file, parseResult(lookup(duration, fingerprint), duration));
if (duration > 10 && fingerprint != null) {
String response = lookup(duration, fingerprint);
if (response != null && response.length() > 0) {
results.put(file, parseResult(lookup(duration, fingerprint), duration));
}
}
}
}
return results;
}
@ -210,7 +214,7 @@ public class AcoustIDClient implements MusicIdentificationService {
return System.getProperty("net.filebot.AcoustID.fpcalc", "fpcalc");
}
public List<Map<String, String>> fpcalc(Iterable<File> files) throws IOException, InterruptedException {
public List<Map<String, String>> fpcalc(Collection<File> files) throws IOException, InterruptedException {
List<String> command = new ArrayList<String>();
command.add(getChromaprintCommand());
for (File f : files) {

View File

@ -2,6 +2,7 @@ package net.filebot.web;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
@ -27,7 +28,7 @@ public class ID3Lookup implements MusicIdentificationService {
}
@Override
public Map<File, AudioTrack> lookup(Iterable<File> files) throws Exception {
public Map<File, AudioTrack> lookup(Collection<File> files) throws Exception {
Map<File, AudioTrack> info = new LinkedHashMap<File, AudioTrack>();
MediaInfo mediaInfo = new MediaInfo();

View File

@ -1,21 +1,17 @@
package net.filebot.web;
import java.io.File;
import java.util.Collection;
import java.util.Map;
import javax.swing.Icon;
public interface MusicIdentificationService {
String getName();
Icon getIcon();
Map<File, AudioTrack> lookup(Iterable<File> files) throws Exception;
Map<File, AudioTrack> lookup(Collection<File> files) throws Exception;
}