diff --git a/BuildData.groovy b/BuildData.groovy index d758a88a..189ef51f 100644 --- a/BuildData.groovy +++ b/BuildData.groovy @@ -122,6 +122,8 @@ def thetvdb_index = thetvdb_index_url.fetch().getHtml('UTF-8') .depthFirst().TR.findAll{ it.TD.size() == 3 && it.TD[1].text() == 'English' && it.TD[0].A.text() } .findResults{ [it.TD[2].text(), it.TD[0].A.text()] } +thetvdb_index = thetvdb_index.findResults{ [it[0] as Integer, it[1].replaceAll(/\s+/, ' ').trim()] }.findAll{ !(it[1] =~ /(?i:duplicate)/ || it[1] =~ /\d{6,}/ || it[1].startsWith('*') || it[1].endsWith('*') || it[1].empty) } as HashSet + // join and sort def thetvdb = thetvdb_index.findResults{ [it[0].pad(6), it[1]].join('\t') }.sort() gz(thetvdb_out, thetvdb) diff --git a/installer/webstart/filebot.jnlp b/installer/webstart/filebot.jnlp index 7c2b6e55..fa537a7d 100644 --- a/installer/webstart/filebot.jnlp +++ b/installer/webstart/filebot.jnlp @@ -26,7 +26,7 @@ - + diff --git a/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy b/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy index effaeb95..327623e4 100644 --- a/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy +++ b/source/net/sourceforge/filebot/cli/ScriptShell.lib.groovy @@ -47,6 +47,7 @@ File.metaClass.copyTo = { dir -> copyAs(delegate, new File(dir, delegate.getName File.metaClass.getXattr = { new net.sourceforge.filebot.MetaAttributeView(delegate) } List.metaClass.mapByFolder = { mapByFolder(delegate) } List.metaClass.mapByExtension = { mapByExtension(delegate) } +String.metaClass.getNameWithoutExtension = { getNameWithoutExtension(delegate) } String.metaClass.getExtension = { getExtension(delegate) } String.metaClass.hasExtension = { String... ext -> hasExtension(delegate, ext) } String.metaClass.validateFileName = { validateFileName(delegate) } diff --git a/source/net/sourceforge/filebot/media/ReleaseInfo.java b/source/net/sourceforge/filebot/media/ReleaseInfo.java index 5c7e3b10..7c3f4106 100644 --- a/source/net/sourceforge/filebot/media/ReleaseInfo.java +++ b/source/net/sourceforge/filebot/media/ReleaseInfo.java @@ -342,7 +342,7 @@ public class ReleaseInfo { Scanner scanner = new Scanner(new GZIPInputStream(new ByteBufferInputStream(data)), "UTF-8").useDelimiter("\t|\n"); List tvshows = new ArrayList(); - while (scanner.hasNext()) { + while (scanner.hasNext() && scanner.hasNextInt()) { int id = scanner.nextInt(); String name = scanner.next().trim(); tvshows.add(new TheTVDBSearchResult(name, id)); diff --git a/source/net/sourceforge/filebot/web/OpenSubtitlesHasher.java b/source/net/sourceforge/filebot/web/OpenSubtitlesHasher.java index 900513a2..8220d14e 100644 --- a/source/net/sourceforge/filebot/web/OpenSubtitlesHasher.java +++ b/source/net/sourceforge/filebot/web/OpenSubtitlesHasher.java @@ -27,7 +27,7 @@ public final class OpenSubtitlesHasher { public static final int HASH_CHUNK_SIZE = 64 * 1024; - public static String computeHash(File file) throws IOException { + public static String computeHashNIO(File file) throws IOException { long size = file.length(); long chunkSizeForFile = Math.min(HASH_CHUNK_SIZE, size); @@ -43,6 +43,16 @@ public final class OpenSubtitlesHasher { } } + + public static String computeHash(File file) throws IOException { + FileInputStream in = new FileInputStream(file); + try { + return computeHash(in, file.length()); + } finally { + in.close(); + } + } + public static String computeHash(InputStream stream, long length) throws IOException { int chunkSizeForFile = (int) Math.min(HASH_CHUNK_SIZE, length);