Fix rename(map: ...) function
@see https://www.filebot.net/forums/viewtopic.php?f=11&t=4628&p=25807#p25807
This commit is contained in:
parent
738089a6fc
commit
64de406c3b
|
@ -24,7 +24,6 @@ import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
@ -341,19 +340,20 @@ public abstract class ScriptShellBaseClass extends Script {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<File> rename(Map<String, ?> parameters) throws Exception {
|
public List<File> rename(Map<String, ?> parameters) throws Exception {
|
||||||
|
// consume all parameters
|
||||||
List<File> files = getInputFileList(parameters);
|
List<File> files = getInputFileList(parameters);
|
||||||
|
Map<File, File> map = files.isEmpty() ? getInputFileMap(parameters) : emptyMap(); // check map parameter if file/folder is not set
|
||||||
RenameAction action = getRenameAction(parameters);
|
RenameAction action = getRenameAction(parameters);
|
||||||
ArgumentBean args = getArgumentBean(parameters);
|
ArgumentBean args = getArgumentBean(parameters);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (files.size() > 0) {
|
if (files.size() > 0) {
|
||||||
return getCLI().rename(files, args.getRenameAction(), args.getConflictAction(), args.getAbsoluteOutputFolder(), args.getExpressionFormat(), args.getDatasource(), args.getSearchQuery(), args.getSortOrder(), args.getExpressionFilter(), args.getLanguage().getLocale(), args.isStrict());
|
return getCLI().rename(files, args.getRenameAction(), args.getConflictAction(), args.getAbsoluteOutputFolder(), args.getExpressionFormat(), args.getDatasource(), args.getSearchQuery(), args.getSortOrder(), args.getExpressionFilter(), args.getLanguage().getLocale(), args.isStrict());
|
||||||
} else {
|
}
|
||||||
Map<File, File> map = getInputFileMap(parameters);
|
|
||||||
if (map.size() > 0) {
|
if (map.size() > 0) {
|
||||||
return getCLI().rename(map, action, args.getConflictAction());
|
return getCLI().rename(map, action, args.getConflictAction());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
printException(e);
|
printException(e);
|
||||||
}
|
}
|
||||||
|
@ -484,9 +484,17 @@ public abstract class ScriptShellBaseClass extends Script {
|
||||||
|
|
||||||
private Map<File, File> getInputFileMap(Map<String, ?> parameters) {
|
private Map<File, File> getInputFileMap(Map<String, ?> parameters) {
|
||||||
// convert keys and values to files
|
// convert keys and values to files
|
||||||
Function<Object, File> mapping = f -> asFileList(f).iterator().next();
|
Map<File, File> map = new LinkedHashMap<File, File>();
|
||||||
|
|
||||||
return consumeParameter(parameters, "map").map(Map.class::cast).collect(toMap(mapping, mapping, (a, b) -> a, LinkedHashMap::new));
|
consumeParameter(parameters, "map").map(Map.class::cast).forEach(m -> {
|
||||||
|
m.forEach((k, v) -> {
|
||||||
|
File from = asFileList(k).get(0);
|
||||||
|
File to = asFileList(v).get(0);
|
||||||
|
map.put(from, to);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
private RenameAction getRenameAction(Map<String, ?> parameters) {
|
private RenameAction getRenameAction(Map<String, ?> parameters) {
|
||||||
|
|
Loading…
Reference in New Issue