You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
958 B
JavaScript
44 lines
958 B
JavaScript
'use strict';
|
|
|
|
const rfr = require("rfr");
|
|
const inExtensions = rfr("lib/path/in-extensions");
|
|
const findMatchingBasenames = rfr("lib/filesets/find-matching-basenames");
|
|
|
|
module.exports = function(item, allItems) {
|
|
let matchExtensions = [
|
|
".mp4",
|
|
".mkv",
|
|
".flv"
|
|
]
|
|
|
|
let subtitleSetExtensions = [
|
|
".[a-z]{2}.vtt",
|
|
".[a-z]{2}.srt"
|
|
]
|
|
|
|
let setExtensions = [
|
|
".annotations.xml",
|
|
".info.json",
|
|
".description",
|
|
".jpg"
|
|
].concat(subtitleSetExtensions);
|
|
|
|
let match = inExtensions(item.name, matchExtensions);
|
|
|
|
if (match) {
|
|
let setFiles = findMatchingBasenames(item.name, match, Object.keys(allItems), setExtensions);
|
|
|
|
let nonSubtitles = setFiles.filter((setItem) => {
|
|
return !(inExtensions(setItem, subtitleSetExtensions));
|
|
});
|
|
|
|
if (nonSubtitles.length > 0) {
|
|
return setFiles;
|
|
} else {
|
|
// If we have either nothing or only subtitles, let the generic video file plugin handle it.
|
|
return [];
|
|
}
|
|
} else {
|
|
return [];
|
|
}
|
|
} |