Only process if properties are available

This commit is contained in:
HaveAGitGat 2020-08-08 01:12:28 +02:00
parent 29d1f7e836
commit 1931ff9afb

View file

@ -38,96 +38,100 @@ module.exports.plugin = function plugin(file, librarySettings, inputs) {
_Other: 'Other' _Other: 'Other'
} }
let resolution = '_' + file.video_resolution //only process if properties available
let resShouldBe = resolutions[resolution] if (file.ffProbeData.streams[0].codec_name && file.video_resolution) {
let codecShouldBe = file.ffProbeData.streams[0].codec_name
//Remove container from processing let resolution = '_' + file.video_resolution
let fileName = file._id; let resShouldBe = resolutions[resolution]
fileName = fileName.split('.') let codecShouldBe = file.ffProbeData.streams[0].codec_name
let container = fileName[fileName.length - 1]
fileName.splice(fileName.length - 1, 1)
fileName = fileName.join('.')
//put term substrings below strings (i.e. '480' below '480p') //Remove container from processing
let terms = [ let fileName = file._id;
'480p', fileName = fileName.split('.')
'480', let container = fileName[fileName.length - 1]
'576p', fileName.splice(fileName.length - 1, 1)
'576', fileName = fileName.join('.')
'720p',
'720',
'1080p',
'1080',
'2160p',
'2160',
'4k',
'8k',
'h264', //put term substrings below strings (i.e. '480' below '480p')
'264', let terms = [
'h265', '480p',
'265', '480',
'hevc' '576p',
] '576',
'720p',
'720',
'1080p',
'1080',
'2160p',
'2160',
'4k',
'8k',
//clean up res and codec terms from name 'h264',
for (let i = 0; i < terms.length; i++) { '264',
while (true) { 'h265',
let idx = fileName.indexOf(terms[i]); '265',
if (idx === -1) { 'hevc'
break ]
} else {
let length = terms[i].length
fileName = fileName.split('')
fileName.splice(idx, length);
fileName = fileName.join('')
}
}
}
if (resShouldBe === 'Other') { //clean up res and codec terms from name
fileName += '_' + codecShouldBe + '.' + container for (let i = 0; i < terms.length; i++) {
} else { while (true) {
fileName += '_' + resShouldBe + '_' + codecShouldBe + '.' + container let idx = fileName.indexOf(terms[i]);
} if (idx === -1) {
break
//clean up word breakers } else {
let breakers = [ let length = terms[i].length
'.', fileName = fileName.split('')
'_', fileName.splice(idx, length);
'-', fileName = fileName.join('')
]
fileName = fileName.split('')
for (let i = 0; i < fileName.length; i++) {
for (let j = 0; j < breakers.length; j++) {
for (let k = 0; k < breakers.length; k++) {
if (fileName[i] === breakers[j] && fileName[i + 1] === breakers[k]) {
fileName.splice(i, 1);
i--
} }
} }
} }
}
fileName = fileName.join('') if (resShouldBe === 'Other') {
fileName += '_' + codecShouldBe + '.' + container
} else {
fileName += '_' + resShouldBe + '_' + codecShouldBe + '.' + container
}
file._id = fileName //clean up word breakers
file.file = fileName let breakers = [
'.',
'_',
'-',
]
if (fileNameOld != file._id) { fileName = fileName.split('')
fsextra.moveSync(fileNameOld, file._id, { for (let i = 0; i < fileName.length; i++) {
overwrite: true, for (let j = 0; j < breakers.length; j++) {
}); for (let k = 0; k < breakers.length; k++) {
if (fileName[i] === breakers[j] && fileName[i + 1] === breakers[k]) {
fileName.splice(i, 1);
i--
}
}
}
}
let response = { fileName = fileName.join('')
file,
removeFromDB: false,
updateDB: true,
};
return response; file._id = fileName
file.file = fileName
if (fileNameOld != file._id) {
fsextra.moveSync(fileNameOld, file._id, {
overwrite: true,
});
let response = {
file,
removeFromDB: false,
updateDB: true,
};
return response;
}
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err);