diff --git a/lib/torrentFiles.js b/lib/torrentFiles.js index 224b1c8..d15e875 100644 --- a/lib/torrentFiles.js +++ b/lib/torrentFiles.js @@ -4,7 +4,7 @@ const { torrentFiles } = require('../lib/torrent'); const { escapeTitle, getMetadata, getImdbId } = require('../lib/metadata'); const { Type } = require('./types'); -const MIN_SIZE = 20 * 1024 * 1024; // 20 MB +const MIN_SIZE = 10 * 1024 * 1024; // 20 MB async function parseTorrentFiles(torrent) { const parsedTorrentName = parse(torrent.title); @@ -119,6 +119,12 @@ function parseSeriesFile(file, parsedTorrentName) { const pathInfo = parse(folders[folders.length - 2]); fileInfo.season = pathInfo.season; } + // force episode to any found number if it was not parsed + if (!fileInfo.episodes) { + const epMatcher = fileInfo.title.match(/(? metadata.episodeCount[div100(ep) - 1] >= mod100(ep)) && files.every(file => !file.season || file.episodes.every(ep => div100(ep) === file.season))) { decomposeConcatSeasonAndEpisodeFiles(torrent, files, metadata); - } else if ((files.filter(file => !file.isMovie && file.episodes).every(file => !file.season && file.episodes) || + } else if (files.filter(file => !file.isMovie && file.episodes).every(file => !file.season && file.episodes) || files.some(file => file.season && file.episodes && file.episodes - .every(ep => metadata.episodeCount[file.season - 1] < ep))) - && (sortedEpisodes.length <= 1 || sortedEpisodes.slice(1).every((ep, i) => ep - sortedEpisodes[i] <= 2))) { + .every(ep => metadata.episodeCount[file.season - 1] < ep))) { decomposeAbsoluteEpisodeFiles(torrent, files, metadata); } else if (files.every(file => (!file.season || !metadata.episodeCount[file.season - 1]) && file.date)) { decomposeDateEpisodeFiles(torrent, files, metadata);