73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
|
|
// Mock Tdarr lib
|
|
const lib = {
|
|
loadDefaultValues: (inputs, details) => {
|
|
const d = details();
|
|
const result = { ...inputs };
|
|
d.Inputs.forEach(i => {
|
|
if (result[i.name] === undefined) result[i.name] = i.defaultValue;
|
|
});
|
|
return result;
|
|
}
|
|
};
|
|
|
|
const moduleAlias = require('module');
|
|
const originalRequire = moduleAlias.prototype.require;
|
|
moduleAlias.prototype.require = function (path) {
|
|
if (path === '../methods/lib') {
|
|
return () => lib;
|
|
}
|
|
return originalRequire.apply(this, arguments);
|
|
};
|
|
|
|
const { plugin } = require('../Local/Tdarr_Plugin_04_subtitle_conversion.js');
|
|
|
|
const mockFileMP4 = {
|
|
container: 'mp4',
|
|
fileMedium: 'video',
|
|
ffProbeData: {
|
|
streams: [
|
|
{ index: 0, codec_type: 'video', codec_name: 'h264' },
|
|
{ index: 1, codec_type: 'subtitle', codec_name: 'srt' }
|
|
]
|
|
}
|
|
};
|
|
|
|
const inputs = {
|
|
enable_conversion: 'true',
|
|
always_convert_webvtt: 'true'
|
|
};
|
|
|
|
console.log('--- Testing MP4 Support ---');
|
|
const resultMP4 = plugin(mockFileMP4, {}, inputs, {});
|
|
console.log('Info Log:', resultMP4.infoLog);
|
|
console.log('Preset:', resultMP4.preset);
|
|
|
|
if (resultMP4.processFile && resultMP4.preset.includes('-c:1 mov_text')) {
|
|
console.log('PASS: MP4 subtitle conversion enabled and correctly mapping mov_text.');
|
|
} else {
|
|
console.error('FAIL: MP4 subtitle conversion failed or correctly ignored.');
|
|
}
|
|
|
|
const mockFileWebVTT = {
|
|
container: 'mkv',
|
|
fileMedium: 'video',
|
|
ffProbeData: {
|
|
streams: [
|
|
{ index: 0, codec_type: 'video', codec_name: 'h264' },
|
|
{ index: 1, codec_type: 'subtitle', codec_name: 'none', codec_tag_string: 'WEBVTT' }
|
|
]
|
|
}
|
|
};
|
|
|
|
console.log('\n--- Testing WebVTT Detection (MKV) ---');
|
|
const resultWebVTT = plugin(mockFileWebVTT, {}, inputs, {});
|
|
console.log('Info Log:', resultWebVTT.infoLog);
|
|
console.log('Preset:', resultWebVTT.preset);
|
|
|
|
if (resultWebVTT.processFile && resultWebVTT.preset.includes('-c:1 srt')) {
|
|
console.log('PASS: WebVTT detected via codec_tag_string and converted to SRT.');
|
|
} else {
|
|
console.error('FAIL: WebVTT detection failed.');
|
|
}
|