diff --git a/source/net/sourceforge/filebot/media/ReleaseInfo.java b/source/net/sourceforge/filebot/media/ReleaseInfo.java index ada22cf2..a8419e31 100644 --- a/source/net/sourceforge/filebot/media/ReleaseInfo.java +++ b/source/net/sourceforge/filebot/media/ReleaseInfo.java @@ -271,7 +271,7 @@ public class ReleaseInfo { public FileFilter getClutterFileFilter() throws IOException { - return new FileFolderNameFilter(getExcludePattern()); + return new ClutterFileFilter(getExcludePattern(), 262144000); // only files smaller than 250 MB may be considered clutter } // fetch release group names online and try to update the data every other day @@ -430,6 +430,24 @@ public class ReleaseInfo { } + public static class ClutterFileFilter extends FileFolderNameFilter { + + private long maxFileSize; + + + public ClutterFileFilter(Pattern namePattern, long maxFileSize) { + super(namePattern); + this.maxFileSize = maxFileSize; + } + + + @Override + public boolean accept(File file) { + return super.accept(file) && file.isFile() && file.length() < maxFileSize; + } + } + + private Collection quoteAll(Collection strings) { List patterns = new ArrayList(strings.size()); for (String it : strings) { diff --git a/website/scripts/amc.groovy b/website/scripts/amc.groovy index 50c312fd..f419c99e 100644 --- a/website/scripts/amc.groovy +++ b/website/scripts/amc.groovy @@ -135,7 +135,7 @@ def groups = input.groupBy{ f -> if (parseEpisodeNumber(fn, true) || parseDate(fn) || (fn.contains(sn) && (parseEpisodeNumber(fn.after(sn), false) || fn.after(sn) =~ /\d{1,2}\D+\d{1,2}/) && matchMovie(fn, true) == null) || (fn.after(sn) ==~ /.{0,3} - .+/ && matchMovie(fn, true) == null) || f.dir.listFiles{ it.isVideo() && norm(it.name) =~ sn && it.name =~ /\b\d{1,3}\b/}.size() >= 10) { _log.fine("Exclude Movie: $mov") mov = null - } else if ((detectMovie(f, true) && [dn, fn].find{ it =~ /(19|20)\d{2}/ }) || [dn, fn].find{ it =~ mn && !(it.after(mn) =~ /\b\d{1,3}\b/) && !(it.before(mn).contains(sn)) }) { + } else if (mn ==~ fn || (detectMovie(f, true) && [dn, fn].find{ it =~ /(19|20)\d{2}/ }) || [dn, fn].find{ it =~ mn && !(it.after(mn) =~ /\b\d{1,3}\b/) && !(it.before(mn).contains(sn)) }) { _log.fine("Exclude Series: $tvs") tvs = null }