mirror of
https://github.com/gabehf/Tdarr_Plugins.git
synced 2026-03-09 07:29:04 -07:00
Merge branch 'master' into pr/650
This commit is contained in:
commit
7767f05c9a
25 changed files with 341 additions and 159 deletions
|
|
@ -1,10 +1,42 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.plugin = exports.details = void 0;
|
||||
var fs_1 = __importDefault(require("fs"));
|
||||
var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils");
|
||||
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
|
||||
var details = function () { return ({
|
||||
|
|
@ -57,28 +89,36 @@ var details = function () { return ({
|
|||
}); };
|
||||
exports.details = details;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
var plugin = function (args) {
|
||||
var lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
var directory = String(args.inputs.directory).trim() || (0, fileUtils_1.getFileAbosluteDir)(args.inputFileObj._id);
|
||||
var fileName = (0, fileUtils_1.getFileName)(args.inputFileObj._id);
|
||||
var fileToCheck = String(args.inputs.fileToCheck).trim();
|
||||
fileToCheck = fileToCheck.replace(/\${fileName}/g, fileName);
|
||||
fileToCheck = fileToCheck.replace(/\${container}/g, (0, fileUtils_1.getContainer)(args.inputFileObj._id));
|
||||
fileToCheck = "".concat(directory, "/").concat(fileToCheck);
|
||||
var fileExists = false;
|
||||
if (fs_1.default.existsSync(fileToCheck)) {
|
||||
fileExists = true;
|
||||
args.jobLog("File exists: ".concat(fileToCheck));
|
||||
}
|
||||
else {
|
||||
args.jobLog("File does not exist: ".concat(fileToCheck));
|
||||
}
|
||||
return {
|
||||
outputFileObj: args.inputFileObj,
|
||||
outputNumber: fileExists ? 1 : 2,
|
||||
variables: args.variables,
|
||||
};
|
||||
};
|
||||
var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
||||
var lib, directory, fileName, fileToCheck, fileDoesExist;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
directory = String(args.inputs.directory).trim() || (0, fileUtils_1.getFileAbosluteDir)(args.inputFileObj._id);
|
||||
fileName = (0, fileUtils_1.getFileName)(args.inputFileObj._id);
|
||||
fileToCheck = String(args.inputs.fileToCheck).trim();
|
||||
fileToCheck = fileToCheck.replace(/\${fileName}/g, fileName);
|
||||
fileToCheck = fileToCheck.replace(/\${container}/g, (0, fileUtils_1.getContainer)(args.inputFileObj._id));
|
||||
fileToCheck = "".concat(directory, "/").concat(fileToCheck);
|
||||
fileDoesExist = false;
|
||||
return [4 /*yield*/, (0, fileUtils_1.fileExists)(fileToCheck)];
|
||||
case 1:
|
||||
if (_a.sent()) {
|
||||
fileDoesExist = true;
|
||||
args.jobLog("File exists: ".concat(fileToCheck));
|
||||
}
|
||||
else {
|
||||
args.jobLog("File does not exist: ".concat(fileToCheck));
|
||||
}
|
||||
return [2 /*return*/, {
|
||||
outputFileObj: args.inputFileObj,
|
||||
outputNumber: fileDoesExist ? 1 : 2,
|
||||
variables: args.variables,
|
||||
}];
|
||||
}
|
||||
});
|
||||
}); };
|
||||
exports.plugin = plugin;
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
_a = args.inputs, keepRelativePath = _a.keepRelativePath, makeWorkingFile = _a.makeWorkingFile;
|
||||
outputDirectory = String(args.inputs.outputDirectory);
|
||||
originalFileName = (0, fileUtils_1.getFileName)(args.originalLibraryFile._id);
|
||||
originalFileName = (0, fileUtils_1.getFileName)(args.inputFileObj._id);
|
||||
newContainer = (0, fileUtils_1.getContainer)(args.inputFileObj._id);
|
||||
outputPath = '';
|
||||
if (keepRelativePath) {
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|||
lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
originalFileName = (0, fileUtils_1.getFileName)(args.originalLibraryFile._id);
|
||||
originalFileName = (0, fileUtils_1.getFileName)(args.inputFileObj._id);
|
||||
newContainer = (0, fileUtils_1.getContainer)(args.inputFileObj._id);
|
||||
outputPath = args.workDir;
|
||||
ouputFilePath = (0, normJoinPath_1.default)({
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
keepRelativePath = args.inputs.keepRelativePath;
|
||||
outputDirectory = String(args.inputs.outputDirectory);
|
||||
originalFileName = (0, fileUtils_1.getFileName)(args.originalLibraryFile._id);
|
||||
originalFileName = (0, fileUtils_1.getFileName)(args.inputFileObj._id);
|
||||
newContainer = (0, fileUtils_1.getContainer)(args.inputFileObj._id);
|
||||
outputPath = '';
|
||||
if (keepRelativePath) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.plugin = exports.details = void 0;
|
||||
var fs_1 = require("fs");
|
||||
var fileMoveOrCopy_1 = __importDefault(require("../../../../FlowHelpers/1.0.0/fileMoveOrCopy"));
|
||||
var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils");
|
||||
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
|
||||
|
|
@ -66,11 +67,10 @@ var details = function () { return ({
|
|||
exports.details = details;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
||||
var fs, lib, currentPath, orignalFolder, fileName, container, newPath, newPathTmp;
|
||||
var lib, currentPath, orignalFolder, fileName, container, newPath, newPathTmp;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
fs = require('fs');
|
||||
lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
|
|
@ -106,14 +106,17 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|||
})];
|
||||
case 2:
|
||||
_a.sent();
|
||||
// delete original file
|
||||
if (fs.existsSync(args.originalLibraryFile._id)
|
||||
&& args.originalLibraryFile._id !== currentPath) {
|
||||
args.jobLog("Deleting original file:".concat(args.originalLibraryFile._id));
|
||||
fs.unlinkSync(args.originalLibraryFile._id);
|
||||
}
|
||||
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 2000); })];
|
||||
return [4 /*yield*/, (0, fileUtils_1.fileExists)(args.originalLibraryFile._id)];
|
||||
case 3:
|
||||
if (!((_a.sent())
|
||||
&& args.originalLibraryFile._id !== currentPath)) return [3 /*break*/, 5];
|
||||
args.jobLog("Deleting original file:".concat(args.originalLibraryFile._id));
|
||||
return [4 /*yield*/, fs_1.promises.unlink(args.originalLibraryFile._id)];
|
||||
case 4:
|
||||
_a.sent();
|
||||
_a.label = 5;
|
||||
case 5: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 2000); })];
|
||||
case 6:
|
||||
_a.sent();
|
||||
return [4 /*yield*/, (0, fileMoveOrCopy_1.default)({
|
||||
operation: 'move',
|
||||
|
|
@ -121,7 +124,7 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|||
destinationPath: newPath,
|
||||
args: args,
|
||||
})];
|
||||
case 4:
|
||||
case 7:
|
||||
_a.sent();
|
||||
return [2 /*return*/, {
|
||||
outputFileObj: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,44 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.plugin = exports.details = void 0;
|
||||
var fs_1 = require("fs");
|
||||
var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils");
|
||||
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
|
||||
var details = function () { return ({
|
||||
name: 'Transcode Video File',
|
||||
|
|
@ -42,21 +80,32 @@ var details = function () { return ({
|
|||
}); };
|
||||
exports.details = details;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
var plugin = function (args) {
|
||||
var lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
var fs = require('fs');
|
||||
var oldFile = args.inputFileObj._id;
|
||||
var newFile = "".concat(args.inputFileObj._id, ".tmp");
|
||||
if (fs.existsSync(newFile)) {
|
||||
fs.unlinkSync(newFile);
|
||||
}
|
||||
fs.copyFileSync(oldFile, newFile);
|
||||
return {
|
||||
outputFileObj: { _id: newFile },
|
||||
outputNumber: 1,
|
||||
variables: args.variables,
|
||||
};
|
||||
};
|
||||
var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
||||
var lib, oldFile, newFile;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
oldFile = args.inputFileObj._id;
|
||||
newFile = "".concat(args.inputFileObj._id, ".tmp");
|
||||
return [4 /*yield*/, (0, fileUtils_1.fileExists)(newFile)];
|
||||
case 1:
|
||||
if (!_a.sent()) return [3 /*break*/, 3];
|
||||
return [4 /*yield*/, fs_1.promises.unlink(newFile)];
|
||||
case 2:
|
||||
_a.sent();
|
||||
_a.label = 3;
|
||||
case 3: return [4 /*yield*/, fs_1.promises.copyFile(oldFile, newFile)];
|
||||
case 4:
|
||||
_a.sent();
|
||||
return [2 /*return*/, {
|
||||
outputFileObj: { _id: newFile },
|
||||
outputNumber: 1,
|
||||
variables: args.variables,
|
||||
}];
|
||||
}
|
||||
});
|
||||
}); };
|
||||
exports.plugin = plugin;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.editreadyParser = exports.getFFmpegVar = exports.getFFmpegPercentage = exports.ffmpegParser = exports.handbrakeParser = void 0;
|
||||
exports.editreadyParser = exports.getHandBrakeFps = exports.getFFmpegVar = exports.getFFmpegPercentage = exports.ffmpegParser = exports.handbrakeParser = void 0;
|
||||
var handbrakeParser = function (_a) {
|
||||
var str = _a.str, hbPass = _a.hbPass;
|
||||
if (typeof str !== 'string') {
|
||||
|
|
@ -30,6 +30,24 @@ var handbrakeParser = function (_a) {
|
|||
return percentage;
|
||||
};
|
||||
exports.handbrakeParser = handbrakeParser;
|
||||
var getHandBrakeFps = function (_a) {
|
||||
var str = _a.str;
|
||||
try {
|
||||
if (typeof str !== 'string' || !(str.includes('(') && str.includes('fps'))) {
|
||||
return 0;
|
||||
}
|
||||
var out = parseInt(str.split('(')[1].split('fps')[0].trim(), 10);
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
if (!isNaN(out)) {
|
||||
return out;
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
// err
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
exports.getHandBrakeFps = getHandBrakeFps;
|
||||
// frame= 889 fps=106 q=26.0 Lsize= 25526kB time=00:00:35.69 bitrate=5858.3kbits/s speed=4.25x
|
||||
var getFFmpegVar = function (_a) {
|
||||
var str = _a.str, variable = _a.variable;
|
||||
|
|
|
|||
|
|
@ -35,10 +35,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CLI = exports.getFFmpegVar = void 0;
|
||||
var fs_1 = __importDefault(require("fs"));
|
||||
var cliParsers_1 = require("./cliParsers");
|
||||
var fs = require('fs');
|
||||
var fileUtils_1 = require("./fileUtils");
|
||||
var fancyTimeFormat = function (time) {
|
||||
// Hours, minutes and seconds
|
||||
// eslint-disable-next-line no-bitwise
|
||||
|
|
@ -93,60 +97,71 @@ var CLI = /** @class */ (function () {
|
|||
this.oldProgress = 0;
|
||||
this.lastProgCheck = 0;
|
||||
this.hbPass = 0;
|
||||
this.updateETA = function (perc) {
|
||||
if (perc > 0) {
|
||||
if (_this.lastProgCheck === 0) {
|
||||
_this.lastProgCheck = new Date().getTime();
|
||||
_this.oldProgress = perc;
|
||||
}
|
||||
else if (perc !== _this.oldProgress) {
|
||||
var n = new Date().getTime();
|
||||
var secsSinceLastCheck = (n - _this.lastProgCheck) / 1000;
|
||||
if (secsSinceLastCheck > 1) {
|
||||
// eta total
|
||||
var eta = Math.round((100 / (perc - _this.oldProgress)) * secsSinceLastCheck);
|
||||
this.updateETA = function (perc) { return __awaiter(_this, void 0, void 0, function () {
|
||||
var n, secsSinceLastCheck, eta, sum, avg, estSize, outputFileSizeInGbytes, singleFileSize, err_1;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
if (!(perc > 0)) return [3 /*break*/, 6];
|
||||
if (!(this.lastProgCheck === 0)) return [3 /*break*/, 1];
|
||||
this.lastProgCheck = new Date().getTime();
|
||||
this.oldProgress = perc;
|
||||
return [3 /*break*/, 6];
|
||||
case 1:
|
||||
if (!(perc !== this.oldProgress)) return [3 /*break*/, 6];
|
||||
n = new Date().getTime();
|
||||
secsSinceLastCheck = (n - this.lastProgCheck) / 1000;
|
||||
if (!(secsSinceLastCheck > 1)) return [3 /*break*/, 6];
|
||||
eta = Math.round((100 / (perc - this.oldProgress)) * secsSinceLastCheck);
|
||||
// eta remaining
|
||||
eta *= ((100 - perc) / 100);
|
||||
_this.progAVG.push(eta);
|
||||
// let values = [2, 56, 3, 41, 0, 4, 100, 23];
|
||||
var sum = _this.progAVG.reduce(
|
||||
this.progAVG.push(eta);
|
||||
sum = this.progAVG.reduce(
|
||||
// eslint-disable-next-line
|
||||
function (previous, current) { return (current += previous); });
|
||||
var avg = sum / _this.progAVG.length;
|
||||
// est size
|
||||
var estSize = 0;
|
||||
var outputFileSizeInGbytes = void 0;
|
||||
try {
|
||||
if (fs.existsSync(_this.config.outputFilePath)) {
|
||||
var singleFileSize = fs.statSync(_this.config.outputFilePath);
|
||||
singleFileSize = singleFileSize.size;
|
||||
outputFileSizeInGbytes = singleFileSize / (1024 * 1024 * 1024);
|
||||
if (outputFileSizeInGbytes !== _this.oldOutSize) {
|
||||
_this.oldOutSize = outputFileSizeInGbytes;
|
||||
estSize = outputFileSizeInGbytes
|
||||
+ ((100 - perc) / perc) * outputFileSizeInGbytes;
|
||||
_this.oldEstSize = estSize;
|
||||
}
|
||||
avg = sum / this.progAVG.length;
|
||||
estSize = 0;
|
||||
outputFileSizeInGbytes = void 0;
|
||||
_a.label = 2;
|
||||
case 2:
|
||||
_a.trys.push([2, 4, , 5]);
|
||||
return [4 /*yield*/, (0, fileUtils_1.fileExists)(this.config.outputFilePath)];
|
||||
case 3:
|
||||
if (_a.sent()) {
|
||||
singleFileSize = fs_1.default.statSync(this.config.outputFilePath);
|
||||
// @ts-expect-error type
|
||||
singleFileSize = singleFileSize.size;
|
||||
// @ts-expect-error type
|
||||
outputFileSizeInGbytes = singleFileSize / (1024 * 1024 * 1024);
|
||||
if (outputFileSizeInGbytes !== this.oldOutSize) {
|
||||
this.oldOutSize = outputFileSizeInGbytes;
|
||||
estSize = outputFileSizeInGbytes
|
||||
+ ((100 - perc) / perc) * outputFileSizeInGbytes;
|
||||
this.oldEstSize = estSize;
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(err);
|
||||
}
|
||||
_this.config.updateWorker({
|
||||
return [3 /*break*/, 5];
|
||||
case 4:
|
||||
err_1 = _a.sent();
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(err_1);
|
||||
return [3 /*break*/, 5];
|
||||
case 5:
|
||||
this.config.updateWorker({
|
||||
ETA: fancyTimeFormat(avg),
|
||||
outputFileSizeInGbytes: outputFileSizeInGbytes === undefined ? 0 : outputFileSizeInGbytes,
|
||||
estSize: _this.oldEstSize === undefined ? 0 : _this.oldEstSize,
|
||||
estSize: this.oldEstSize === undefined ? 0 : this.oldEstSize,
|
||||
});
|
||||
if (_this.progAVG.length > 30) {
|
||||
_this.progAVG.splice(0, 1);
|
||||
if (this.progAVG.length > 30) {
|
||||
this.progAVG.splice(0, 1);
|
||||
}
|
||||
_this.lastProgCheck = n;
|
||||
_this.oldProgress = perc;
|
||||
}
|
||||
this.lastProgCheck = n;
|
||||
this.oldProgress = perc;
|
||||
_a.label = 6;
|
||||
case 6: return [2 /*return*/];
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
}); };
|
||||
this.parseOutput = function (data) {
|
||||
var _a, _b, _c, _d, _e, _f, _g;
|
||||
var str = "".concat(data);
|
||||
|
|
@ -166,11 +181,19 @@ var CLI = /** @class */ (function () {
|
|||
hbPass: _this.hbPass,
|
||||
});
|
||||
if (percentage > 0) {
|
||||
_this.updateETA(percentage);
|
||||
void _this.updateETA(percentage);
|
||||
_this.config.updateWorker({
|
||||
percentage: percentage,
|
||||
});
|
||||
}
|
||||
var fps = (0, cliParsers_1.getHandBrakeFps)({
|
||||
str: str,
|
||||
});
|
||||
if (fps > 0) {
|
||||
_this.config.updateWorker({
|
||||
fps: fps,
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (_this.config.cli.toLowerCase().includes('ffmpeg')) {
|
||||
var n = str.indexOf('fps');
|
||||
|
|
@ -206,7 +229,7 @@ var CLI = /** @class */ (function () {
|
|||
});
|
||||
}
|
||||
if (percentage > 0) {
|
||||
_this.updateETA(percentage);
|
||||
void _this.updateETA(percentage);
|
||||
_this.config.updateWorker({
|
||||
percentage: percentage,
|
||||
});
|
||||
|
|
@ -217,7 +240,7 @@ var CLI = /** @class */ (function () {
|
|||
str: str,
|
||||
});
|
||||
if (percentage > 0) {
|
||||
_this.updateETA(percentage);
|
||||
void _this.updateETA(percentage);
|
||||
_this.config.updateWorker({
|
||||
percentage: percentage,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -36,8 +36,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|||
}
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getScanTypes = exports.getPluginWorkDir = exports.moveFileAndValidate = exports.getFileSize = exports.getSubStem = exports.getFfType = exports.getFileAbosluteDir = exports.getFileName = exports.getContainer = void 0;
|
||||
exports.getScanTypes = exports.getPluginWorkDir = exports.moveFileAndValidate = exports.getFileSize = exports.getSubStem = exports.getFfType = exports.getFileAbosluteDir = exports.getFileName = exports.getContainer = exports.fileExists = void 0;
|
||||
var fs_1 = require("fs");
|
||||
var fileExists = function (path) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, fs_1.promises.stat(path).catch(function () { return false; })];
|
||||
case 1: return [2 /*return*/, !!(_a.sent())];
|
||||
}
|
||||
}); }); };
|
||||
exports.fileExists = fileExists;
|
||||
var getContainer = function (filePath) {
|
||||
var parts = filePath.split('.');
|
||||
return parts[parts.length - 1];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import fs from 'fs';
|
||||
import { getContainer, getFileAbosluteDir, getFileName } from '../../../../FlowHelpers/1.0.0/fileUtils';
|
||||
import {
|
||||
fileExists, getContainer, getFileAbosluteDir, getFileName,
|
||||
} from '../../../../FlowHelpers/1.0.0/fileUtils';
|
||||
import {
|
||||
IpluginDetails,
|
||||
IpluginInputArgs,
|
||||
|
|
@ -57,7 +58,7 @@ const details = (): IpluginDetails => ({
|
|||
});
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const plugin = (args: IpluginInputArgs): IpluginOutputArgs => {
|
||||
const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
||||
const lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
|
|
@ -71,9 +72,9 @@ const plugin = (args: IpluginInputArgs): IpluginOutputArgs => {
|
|||
fileToCheck = fileToCheck.replace(/\${container}/g, getContainer(args.inputFileObj._id));
|
||||
fileToCheck = `${directory}/${fileToCheck}`;
|
||||
|
||||
let fileExists = false;
|
||||
if (fs.existsSync(fileToCheck)) {
|
||||
fileExists = true;
|
||||
let fileDoesExist = false;
|
||||
if (await fileExists(fileToCheck)) {
|
||||
fileDoesExist = true;
|
||||
args.jobLog(`File exists: ${fileToCheck}`);
|
||||
} else {
|
||||
args.jobLog(`File does not exist: ${fileToCheck}`);
|
||||
|
|
@ -81,7 +82,7 @@ const plugin = (args: IpluginInputArgs): IpluginOutputArgs => {
|
|||
|
||||
return {
|
||||
outputFileObj: args.inputFileObj,
|
||||
outputNumber: fileExists ? 1 : 2,
|
||||
outputNumber: fileDoesExist ? 1 : 2,
|
||||
variables: args.variables,
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
import {
|
||||
getContainer, getFileAbosluteDir, getSubStem,
|
||||
} from '../../../../FlowHelpers/1.0.0/fileUtils';
|
||||
|
|
@ -188,7 +188,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
sourceDir = getFileAbosluteDir(args.inputFileObj._id);
|
||||
}
|
||||
|
||||
let filesInDir = (await fs.readdir(sourceDir))
|
||||
let filesInDir = (await fsp.readdir(sourceDir))
|
||||
.map((row) => ({
|
||||
source: `${sourceDir}/${row}`,
|
||||
destination: normJoinPath({
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
import { getContainer, getFileName, getSubStem } from '../../../../FlowHelpers/1.0.0/fileUtils';
|
||||
import {
|
||||
IpluginDetails,
|
||||
|
|
@ -73,7 +73,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
|
||||
const outputDirectory = String(args.inputs.outputDirectory);
|
||||
|
||||
const originalFileName = getFileName(args.originalLibraryFile._id);
|
||||
const originalFileName = getFileName(args.inputFileObj._id);
|
||||
const newContainer = getContainer(args.inputFileObj._id);
|
||||
|
||||
let outputPath = '';
|
||||
|
|
@ -126,7 +126,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
|
||||
args.deps.fsextra.ensureDirSync(outputPath);
|
||||
|
||||
await fs.copyFile(args.inputFileObj._id, ouputFilePath);
|
||||
await fsp.copyFile(args.inputFileObj._id, ouputFilePath);
|
||||
|
||||
return {
|
||||
outputFileObj: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
import { getContainer, getFileName } from '../../../../FlowHelpers/1.0.0/fileUtils';
|
||||
import {
|
||||
IpluginDetails,
|
||||
|
|
@ -37,7 +37,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
|
||||
const originalFileName = getFileName(args.originalLibraryFile._id);
|
||||
const originalFileName = getFileName(args.inputFileObj._id);
|
||||
const newContainer = getContainer(args.inputFileObj._id);
|
||||
|
||||
const outputPath = args.workDir;
|
||||
|
|
@ -67,7 +67,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
|
||||
args.deps.fsextra.ensureDirSync(outputPath);
|
||||
|
||||
await fs.copyFile(args.inputFileObj._id, ouputFilePath);
|
||||
await fsp.copyFile(args.inputFileObj._id, ouputFilePath);
|
||||
|
||||
return {
|
||||
outputFileObj: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
|
||||
import {
|
||||
IpluginDetails,
|
||||
IpluginInputArgs,
|
||||
|
|
@ -64,21 +65,21 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
|
||||
if (fileToDelete === 'workingFile') {
|
||||
args.jobLog(`Deleting working file ${args.inputFileObj._id}`);
|
||||
await fs.unlink(args.inputFileObj._id);
|
||||
await fsp.unlink(args.inputFileObj._id);
|
||||
} else if (fileToDelete === 'originalFile') {
|
||||
args.jobLog(`Deleting original file ${args.originalLibraryFile._id}`);
|
||||
await fs.unlink(args.originalLibraryFile._id);
|
||||
await fsp.unlink(args.originalLibraryFile._id);
|
||||
}
|
||||
|
||||
const fileDir = getFileAbosluteDir(args.originalLibraryFile._id);
|
||||
|
||||
if (deleteParentFolderIfEmpty) {
|
||||
args.jobLog(`Checking if folder ${fileDir} is empty`);
|
||||
const files = await fs.readdir(fileDir);
|
||||
const files = await fsp.readdir(fileDir);
|
||||
|
||||
if (files.length === 0) {
|
||||
args.jobLog(`Deleting empty folder ${fileDir}`);
|
||||
await fs.rmdir(fileDir);
|
||||
await fsp.rmdir(fileDir);
|
||||
} else {
|
||||
args.jobLog(`Folder ${fileDir} is not empty, skipping delete`);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ const plugin = async (args:IpluginInputArgs):Promise<IpluginOutputArgs> => {
|
|||
|
||||
const outputDirectory = String(args.inputs.outputDirectory);
|
||||
|
||||
const originalFileName = getFileName(args.originalLibraryFile._id);
|
||||
const originalFileName = getFileName(args.inputFileObj._id);
|
||||
const newContainer = getContainer(args.inputFileObj._id);
|
||||
|
||||
let outputPath = '';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
import { promises as fsp } from 'fs';
|
||||
import fileMoveOrCopy from '../../../../FlowHelpers/1.0.0/fileMoveOrCopy';
|
||||
import {
|
||||
fileExists,
|
||||
getContainer, getFileAbosluteDir, getFileName,
|
||||
} from '../../../../FlowHelpers/1.0.0/fileUtils';
|
||||
import {
|
||||
|
|
@ -32,7 +34,6 @@ const details = (): IpluginDetails => ({
|
|||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
||||
const fs = require('fs');
|
||||
const lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
|
|
@ -76,11 +77,11 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
|
||||
// delete original file
|
||||
if (
|
||||
fs.existsSync(args.originalLibraryFile._id)
|
||||
await fileExists(args.originalLibraryFile._id)
|
||||
&& args.originalLibraryFile._id !== currentPath
|
||||
) {
|
||||
args.jobLog(`Deleting original file:${args.originalLibraryFile._id}`);
|
||||
fs.unlinkSync(args.originalLibraryFile._id);
|
||||
await fsp.unlink(args.originalLibraryFile._id);
|
||||
}
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000));
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
import { CLI } from '../../../../FlowHelpers/1.0.0/cliUtils';
|
||||
import {
|
||||
IpluginDetails,
|
||||
|
|
@ -99,7 +99,7 @@ const plugin = async (args:IpluginInputArgs):Promise<IpluginOutputArgs> => {
|
|||
|
||||
if (presetString.trim() !== '') {
|
||||
const preset = JSON.parse(presetString);
|
||||
await fs.writeFile(presetPath, JSON.stringify(preset, null, 2));
|
||||
await fsp.writeFile(presetPath, JSON.stringify(preset, null, 2));
|
||||
cliArgs.push('--preset-import-file');
|
||||
cliArgs.push(presetPath);
|
||||
cliArgs.push('-Z');
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
import { CLI } from '../../../../FlowHelpers/1.0.0/cliUtils';
|
||||
import {
|
||||
IpluginDetails,
|
||||
|
|
@ -142,7 +142,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
|
||||
if (useJsonPreset) {
|
||||
const preset = JSON.parse(presetString);
|
||||
await fs.writeFile(presetPath, JSON.stringify(preset, null, 2));
|
||||
await fsp.writeFile(presetPath, JSON.stringify(preset, null, 2));
|
||||
cliArgs.push('--preset-import-file');
|
||||
cliArgs.push(presetPath);
|
||||
cliArgs.push('-Z');
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
|
||||
import {
|
||||
IpluginDetails,
|
||||
|
|
@ -86,7 +86,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
|
||||
const checkReadWrite = async (location: string) => {
|
||||
try {
|
||||
await fs.access(location, fs.constants.R_OK);
|
||||
await fsp.access(location, fsp.constants.R_OK);
|
||||
} catch (err) {
|
||||
args.jobLog(JSON.stringify(err));
|
||||
if (pauseNodeIfAccessChecksFail) {
|
||||
|
|
@ -97,7 +97,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
|
|||
}
|
||||
|
||||
try {
|
||||
await fs.access(location, fs.constants.W_OK);
|
||||
await fsp.access(location, fsp.constants.W_OK);
|
||||
} catch (err) {
|
||||
args.jobLog(JSON.stringify(err));
|
||||
if (pauseNodeIfAccessChecksFail) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
import { promises as fsp } from 'fs';
|
||||
import {
|
||||
IpluginDetails,
|
||||
IpluginInputArgs,
|
||||
IpluginOutputArgs,
|
||||
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
|
||||
import { fileExists } from '../../../../FlowHelpers/1.0.0/fileUtils';
|
||||
|
||||
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
|
||||
const details = ():IpluginDetails => ({
|
||||
|
|
@ -46,21 +48,19 @@ const details = ():IpluginDetails => ({
|
|||
});
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const plugin = (args:IpluginInputArgs):IpluginOutputArgs => {
|
||||
const plugin = async (args:IpluginInputArgs):Promise<IpluginOutputArgs> => {
|
||||
const lib = require('../../../../../methods/lib')();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
|
||||
args.inputs = lib.loadDefaultValues(args.inputs, details);
|
||||
|
||||
const fs = require('fs');
|
||||
|
||||
const oldFile = args.inputFileObj._id;
|
||||
const newFile = `${args.inputFileObj._id}.tmp`;
|
||||
|
||||
if (fs.existsSync(newFile)) {
|
||||
fs.unlinkSync(newFile);
|
||||
if (await fileExists(newFile)) {
|
||||
await fsp.unlink(newFile);
|
||||
}
|
||||
|
||||
fs.copyFileSync(oldFile, newFile);
|
||||
await fsp.copyFile(oldFile, newFile);
|
||||
|
||||
return {
|
||||
outputFileObj: { _id: newFile },
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
import {
|
||||
getContainer, getFileName, getPluginWorkDir, getScanTypes,
|
||||
} from './fileUtils';
|
||||
|
|
@ -43,7 +43,7 @@ export const runClassicPlugin = async (args:IpluginInputArgs, type:'filter'|'tra
|
|||
let pluginSrcStr = '';
|
||||
if (pluginSource === 'Community') {
|
||||
classicPlugin = args.deps.importFresh(relativePluginPath);
|
||||
pluginSrcStr = await fs.readFile(absolutePath, 'utf8');
|
||||
pluginSrcStr = await fsp.readFile(absolutePath, 'utf8');
|
||||
} else {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
const res = await args.deps.axiosMiddleware('api/v2/read-plugin', {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,28 @@ const handbrakeParser = ({
|
|||
return percentage;
|
||||
};
|
||||
|
||||
const getHandBrakeFps = ({
|
||||
str,
|
||||
}: {
|
||||
str: string,
|
||||
}): number => {
|
||||
try {
|
||||
if (typeof str !== 'string' || !(str.includes('(') && str.includes('fps'))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const out = parseInt(str.split('(')[1].split('fps')[0].trim(), 10);
|
||||
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
if (!isNaN(out)) {
|
||||
return out;
|
||||
}
|
||||
} catch (err) {
|
||||
// err
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
|
||||
// frame= 889 fps=106 q=26.0 Lsize= 25526kB time=00:00:35.69 bitrate=5858.3kbits/s speed=4.25x
|
||||
const getFFmpegVar = ({
|
||||
str,
|
||||
|
|
@ -227,5 +249,6 @@ export {
|
|||
ffmpegParser,
|
||||
getFFmpegPercentage,
|
||||
getFFmpegVar,
|
||||
getHandBrakeFps,
|
||||
editreadyParser,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
import { editreadyParser, ffmpegParser, handbrakeParser } from './cliParsers';
|
||||
import fs from 'fs';
|
||||
import {
|
||||
editreadyParser, ffmpegParser, getHandBrakeFps, handbrakeParser,
|
||||
} from './cliParsers';
|
||||
import { Ilog, IupdateWorker } from './interfaces/interfaces';
|
||||
import { IFileObject, Istreams } from './interfaces/synced/IFileObject';
|
||||
|
||||
const fs = require('fs');
|
||||
import { fileExists } from './fileUtils';
|
||||
|
||||
const fancyTimeFormat = (time: number) => {
|
||||
// Hours, minutes and seconds
|
||||
|
|
@ -91,7 +93,7 @@ class CLI {
|
|||
this.config = config;
|
||||
}
|
||||
|
||||
updateETA = (perc: number): void => {
|
||||
updateETA = async (perc: number): Promise<void> => {
|
||||
if (perc > 0) {
|
||||
if (this.lastProgCheck === 0) {
|
||||
this.lastProgCheck = new Date().getTime();
|
||||
|
|
@ -123,9 +125,11 @@ class CLI {
|
|||
let outputFileSizeInGbytes;
|
||||
|
||||
try {
|
||||
if (fs.existsSync(this.config.outputFilePath)) {
|
||||
if (await fileExists(this.config.outputFilePath)) {
|
||||
let singleFileSize = fs.statSync(this.config.outputFilePath);
|
||||
// @ts-expect-error type
|
||||
singleFileSize = singleFileSize.size;
|
||||
// @ts-expect-error type
|
||||
outputFileSizeInGbytes = singleFileSize / (1024 * 1024 * 1024);
|
||||
|
||||
if (outputFileSizeInGbytes !== this.oldOutSize) {
|
||||
|
|
@ -177,11 +181,21 @@ class CLI {
|
|||
});
|
||||
|
||||
if (percentage > 0) {
|
||||
this.updateETA(percentage);
|
||||
void this.updateETA(percentage);
|
||||
this.config.updateWorker({
|
||||
percentage,
|
||||
});
|
||||
}
|
||||
|
||||
const fps = getHandBrakeFps({
|
||||
str,
|
||||
});
|
||||
|
||||
if (fps > 0) {
|
||||
this.config.updateWorker({
|
||||
fps,
|
||||
});
|
||||
}
|
||||
} else if (this.config.cli.toLowerCase().includes('ffmpeg')) {
|
||||
const n = str.indexOf('fps');
|
||||
const shouldUpdate = str.length >= 6 && n >= 6;
|
||||
|
|
@ -223,7 +237,7 @@ class CLI {
|
|||
}
|
||||
|
||||
if (percentage > 0) {
|
||||
this.updateETA(percentage);
|
||||
void this.updateETA(percentage);
|
||||
this.config.updateWorker({
|
||||
percentage,
|
||||
});
|
||||
|
|
@ -233,7 +247,7 @@ class CLI {
|
|||
str,
|
||||
});
|
||||
if (percentage > 0) {
|
||||
this.updateETA(percentage);
|
||||
void this.updateETA(percentage);
|
||||
this.config.updateWorker({
|
||||
percentage,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
|
||||
import { getFileSize } from './fileUtils';
|
||||
import { IpluginInputArgs } from './interfaces/interfaces';
|
||||
|
|
@ -48,7 +48,7 @@ const tryMove = async ({
|
|||
|
||||
let error = false;
|
||||
try {
|
||||
await fs.rename(sourcePath, destinationPath);
|
||||
await fsp.rename(sourcePath, destinationPath);
|
||||
} catch (err) {
|
||||
error = true;
|
||||
args.jobLog(`File move error: ${JSON.stringify(err)}`);
|
||||
|
|
@ -157,7 +157,7 @@ const tryNormalCopy = async ({
|
|||
|
||||
let error = false;
|
||||
try {
|
||||
await fs.copyFile(sourcePath, destinationPath);
|
||||
await fsp.copyFile(sourcePath, destinationPath);
|
||||
} catch (err) {
|
||||
error = true;
|
||||
args.jobLog(`File copy error: ${JSON.stringify(err)}`);
|
||||
|
|
@ -186,7 +186,7 @@ const cleanSourceFile = async ({
|
|||
}) => {
|
||||
try {
|
||||
args.jobLog(`Deleting source file ${sourcePath}`);
|
||||
await fs.unlink(sourcePath);
|
||||
await fsp.unlink(sourcePath);
|
||||
} catch (err) {
|
||||
args.jobLog(`Failed to delete source file ${sourcePath}: ${JSON.stringify(err)}`);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import { promises as fs } from 'fs';
|
||||
import { promises as fsp } from 'fs';
|
||||
import { IpluginInputArgs } from './interfaces/interfaces';
|
||||
|
||||
export const fileExists = async (path:string): Promise<boolean> => !!(await fsp.stat(path).catch(() => false));
|
||||
|
||||
export const getContainer = (filePath: string): string => {
|
||||
const parts = filePath.split('.');
|
||||
return parts[parts.length - 1];
|
||||
|
|
@ -37,7 +39,7 @@ export const getSubStem = ({
|
|||
};
|
||||
|
||||
export const getFileSize = async (file:string):Promise<number> => {
|
||||
const stats = await fs.stat(file);
|
||||
const stats = await fsp.stat(file);
|
||||
const { size } = stats;
|
||||
return size;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue