You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.1 KiB
91 lines
2.1 KiB
module.exports.dependencies = [
|
|
'touch',
|
|
];
|
|
|
|
// tdarrSkipTest
|
|
const details = () => ({
|
|
id: 'Tdarr_Plugin_z80t_keep_original_date',
|
|
Stage: 'Post-processing',
|
|
Name: 'Keep original file dates and times after transcoding',
|
|
Type: 'Video',
|
|
Operation: 'Transcode',
|
|
Description: 'This plugin copies the original file dates and times to the transcoded file \n\n',
|
|
Version: '1.10',
|
|
Tags: 'post-processing,dates,date',
|
|
Inputs: [
|
|
{
|
|
name: 'log',
|
|
type: 'boolean',
|
|
defaultValue: false,
|
|
inputUI: {
|
|
type: 'dropdown',
|
|
options: [
|
|
'false',
|
|
'true',
|
|
],
|
|
},
|
|
tooltip: `Write log entries to console.log. Default is false.
|
|
|
|
\\nExample:\\n
|
|
true`,
|
|
},
|
|
],
|
|
});
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|
const lib = require('../methods/lib')();
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
|
inputs = lib.loadDefaultValues(inputs, details);
|
|
|
|
// eslint-disable-next-line import/no-unresolved,import/no-extraneous-dependencies
|
|
const touch = require('touch');
|
|
const os = require('os');
|
|
const fs = require('fs');
|
|
|
|
const log = (msg) => {
|
|
if (inputs.log === true) {
|
|
// eslint-disable-next-line no-console
|
|
console.log(msg);
|
|
}
|
|
};
|
|
|
|
const responseData = {
|
|
file,
|
|
removeFromDB: false,
|
|
updateDB: false,
|
|
infoLog: '',
|
|
};
|
|
|
|
try {
|
|
log('Changing date...');
|
|
|
|
const { mtimeMs, ctimeMs } = otherArguments.originalLibraryFile.statSync;
|
|
if (os.platform() === 'win32') {
|
|
fs.utimes(
|
|
file._id,
|
|
ctimeMs / 1000,
|
|
mtimeMs / 1000,
|
|
(err) => {
|
|
if (err) {
|
|
log('Error updating modified date');
|
|
}
|
|
},
|
|
);
|
|
} else {
|
|
touch.sync(file._id, { mtimeMs, force: true });
|
|
}
|
|
|
|
log('Done.');
|
|
responseData.infoLog += 'File timestamps updated or match original file\n';
|
|
return responseData;
|
|
} catch (err) {
|
|
log(err);
|
|
}
|
|
|
|
return responseData;
|
|
};
|
|
|
|
module.exports.details = details;
|
|
module.exports.plugin = plugin;
|