mirror of
https://github.com/mitb-archive/filebot
synced 2024-11-16 06:15:02 -05:00
* add File utility methods to scripting env.
This commit is contained in:
parent
6e10fd5c4b
commit
17107d503b
@ -1,15 +1,12 @@
|
|||||||
import static groovy.io.FileType.*
|
import static groovy.io.FileType.*
|
||||||
import static net.sourceforge.tuned.FileUtilities.*;
|
|
||||||
|
|
||||||
|
|
||||||
File.metaClass.plus = { path -> new File(delegate, path) }
|
|
||||||
|
|
||||||
File.metaClass.isVideo = { _types.getFilter("video").accept(delegate) }
|
File.metaClass.isVideo = { _types.getFilter("video").accept(delegate) }
|
||||||
File.metaClass.isAudio = { _types.getFilter("audio").accept(delegate) }
|
File.metaClass.isAudio = { _types.getFilter("audio").accept(delegate) }
|
||||||
File.metaClass.isSubtitle = { _types.getFilter("subtitle").accept(delegate) }
|
File.metaClass.isSubtitle = { _types.getFilter("subtitle").accept(delegate) }
|
||||||
File.metaClass.isVerification = { _types.getFilter("verification").accept(delegate) }
|
File.metaClass.isVerification = { _types.getFilter("verification").accept(delegate) }
|
||||||
|
|
||||||
File.metaClass.isDerived = { file -> isDerived(delegate, file) }
|
File.metaClass.plus = { path -> new File(delegate, path) }
|
||||||
File.metaClass.hasFile = { c -> isDirectory() && listFiles().find{ c.call(it) }}
|
File.metaClass.hasFile = { c -> isDirectory() && listFiles().find{ c.call(it) }}
|
||||||
|
|
||||||
File.metaClass.getFiles = { def files = []; traverse(type:FILES) { files += it }; return files }
|
File.metaClass.getFiles = { def files = []; traverse(type:FILES) { files += it }; return files }
|
||||||
@ -25,6 +22,22 @@ String.metaClass.eachMediaFolder = { c -> new File(delegate).eachMediaFolder(c)
|
|||||||
List.metaClass.eachMediaFolder = { c -> getFolders().findAll{ it.hasFile{ it.isVideo() } }.each(c) }
|
List.metaClass.eachMediaFolder = { c -> getFolders().findAll{ it.hasFile{ it.isVideo() } }.each(c) }
|
||||||
|
|
||||||
|
|
||||||
|
// FileUtilities
|
||||||
|
import static net.sourceforge.tuned.FileUtilities.*;
|
||||||
|
|
||||||
|
File.metaClass.getNameWithoutExtension = { getNameWithoutExtension(delegate.getName()) }
|
||||||
|
File.metaClass.getExtension = { getExtension(delegate) }
|
||||||
|
File.metaClass.hasExtension = { String... ext -> hasExtension(delegate, ext) }
|
||||||
|
File.metaClass.isDerived = { f -> isDerived(delegate, f) }
|
||||||
|
File.metaClass.validateFileName = { validateFileName(delegate) }
|
||||||
|
File.metaClass.validateFilePath = { validateFilePath(delegate) }
|
||||||
|
File.metaClass.moveTo = { f -> renameFile(delegate, f) }
|
||||||
|
|
||||||
|
List.metaClass.mapByFolder = { mapByFolder(delegate) }
|
||||||
|
List.metaClass.mapByExtension = { mapByExtension(delegate) }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def require(cond) { if (!cond()) throw new Exception('Require failed') }
|
def require(cond) { if (!cond()) throw new Exception('Require failed') }
|
||||||
|
|
||||||
|
|
||||||
|
@ -346,11 +346,15 @@ public final class FileUtilities {
|
|||||||
SortedMap<File, List<File>> map = new TreeMap<File, List<File>>();
|
SortedMap<File, List<File>> map = new TreeMap<File, List<File>>();
|
||||||
|
|
||||||
for (File file : files) {
|
for (File file : files) {
|
||||||
List<File> valueList = map.get(file.getParentFile());
|
File key = file.getParentFile();
|
||||||
|
if (key == null) {
|
||||||
|
throw new IllegalArgumentException("Parent is null: " + file);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<File> valueList = map.get(key);
|
||||||
if (valueList == null) {
|
if (valueList == null) {
|
||||||
valueList = new ArrayList<File>();
|
valueList = new ArrayList<File>();
|
||||||
map.put(file.getParentFile(), valueList);
|
map.put(key, valueList);
|
||||||
}
|
}
|
||||||
|
|
||||||
valueList.add(file);
|
valueList.add(file);
|
||||||
|
Loading…
Reference in New Issue
Block a user