diff --git a/source/net/sourceforge/filebot/format/AssociativeScriptObject.java b/source/net/sourceforge/filebot/format/AssociativeScriptObject.java index 9aa9b8c7..7888d45c 100644 --- a/source/net/sourceforge/filebot/format/AssociativeScriptObject.java +++ b/source/net/sourceforge/filebot/format/AssociativeScriptObject.java @@ -9,7 +9,7 @@ import java.util.TreeMap; import org.mozilla.javascript.Scriptable; -class AssociativeScriptObject implements Scriptable { +public class AssociativeScriptObject implements Scriptable { /** * Map allowing look-up of values by a fault-tolerant key as specified by the defining key. diff --git a/source/net/sourceforge/filebot/format/EpisodeFormatBindingBean.java b/source/net/sourceforge/filebot/format/EpisodeFormatBindingBean.java index f39dea67..aa7c9bcc 100644 --- a/source/net/sourceforge/filebot/format/EpisodeFormatBindingBean.java +++ b/source/net/sourceforge/filebot/format/EpisodeFormatBindingBean.java @@ -125,9 +125,7 @@ public class EpisodeFormatBindingBean { @Define("crc32") public String getCRC32() throws IOException, InterruptedException { - // make sure media file is defined - checkMediaFile(); - + // use inferred media file (e.g. actual movie file instead of subtitle file) File inferredMediaFile = getInferredMediaFile(); // try to get checksum from file name @@ -201,6 +199,9 @@ public class EpisodeFormatBindingBean { @Define("inferredFile") public File getInferredMediaFile() { + // make sure media file is defined + checkMediaFile(); + if (SUBTITLE_FILES.accept(mediaFile)) { // file is a subtitle String name = FileUtilities.getName(mediaFile); @@ -234,6 +235,7 @@ public class EpisodeFormatBindingBean { MediaInfo newMediaInfo = new MediaInfo(); + // use inferred media file (e.g. actual movie file instead of subtitle file) if (!newMediaInfo.open(getInferredMediaFile())) { throw new RuntimeException(String.format("Cannot open media file: %s", mediaFile)); } diff --git a/source/net/sourceforge/tuned/FastFile.java b/source/net/sourceforge/tuned/FastFile.java index 9a5d8995..9e042249 100644 --- a/source/net/sourceforge/tuned/FastFile.java +++ b/source/net/sourceforge/tuned/FastFile.java @@ -13,6 +13,7 @@ public class FastFile extends File { private Long length; private Boolean isDirectory; private Boolean isFile; + private Boolean exists; public FastFile(String path) { @@ -31,6 +32,12 @@ public class FastFile extends File { } + @Override + public boolean exists() { + return exists != null ? exists : (exists = super.exists()); + } + + @Override public boolean isDirectory() { return isDirectory != null ? isDirectory : (isDirectory = super.isDirectory());