diff --git a/source/net/sourceforge/filebot/cli/ArgumentBean.java b/source/net/sourceforge/filebot/cli/ArgumentBean.java index 420aa2f4..1b7d94b0 100644 --- a/source/net/sourceforge/filebot/cli/ArgumentBean.java +++ b/source/net/sourceforge/filebot/cli/ArgumentBean.java @@ -9,6 +9,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.net.URI; import java.net.URISyntaxException; +import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -145,8 +146,8 @@ public class ArgumentBean { public URI getScriptLocation() { try { - return new URI(script); - } catch (URISyntaxException eu) { + return new URL(script).toURI(); + } catch (Exception eu) { if (script.startsWith("script://")) { try { return new URI("script", script.substring(9), null, null, null); diff --git a/source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java b/source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java index 45bf5f9b..e36be5a0 100644 --- a/source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java +++ b/source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java @@ -24,32 +24,32 @@ public class SubsceneSubtitleDescriptor implements SubtitleDescriptor { private URL subtitlePage; private Map subtitleInfo; - + public SubsceneSubtitleDescriptor(String title, String language, URL subtitlePage) { this.title = title; this.language = language; this.subtitlePage = subtitlePage; } - + @Override public String getName() { return title; } - + @Override public String getLanguageName() { return language; } - + @Override public String getType() { return null; } - + @Override public ByteBuffer fetch() throws Exception { // e.g. http://subscene.com/english/Firefly-The-Complete-Series/subtitle-40003-dlpath-20008/rar.zipx @@ -65,7 +65,7 @@ public class SubsceneSubtitleDescriptor implements SubtitleDescriptor { return WebRequest.post(connection, downloadPostData); } - + private synchronized Map getSubtitleInfo() { // extract subtitle information from subtitle page if necessary if (subtitleInfo == null) { @@ -84,25 +84,25 @@ public class SubsceneSubtitleDescriptor implements SubtitleDescriptor { return subtitleInfo; } - + @Override public String getPath() { - return String.format("%s.%s", getName(), getSubtitleInfo().get("typeId")); + return String.format("%s.%s", getName(), subtitleInfo == null ? null : subtitleInfo.get("typeId")); } - + @Override public long getLength() { return -1; } - + @Override public int hashCode() { return subtitlePage.getPath().hashCode(); } - + @Override public boolean equals(Object object) { if (object instanceof SubsceneSubtitleDescriptor) { @@ -113,7 +113,7 @@ public class SubsceneSubtitleDescriptor implements SubtitleDescriptor { return false; } - + @Override public String toString() { return String.format("%s [%s]", getName(), getLanguageName());