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

'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 [];
}
}