Feature identify, after a restart, if last downloaded file is complete, if it's not the download is restarted

This commit is contained in:
ditie193ch 2020-07-11 18:51:08 -03:00
commit c5b0599301

View file

@ -64,9 +64,15 @@ function loadVideo(num, cb) {
function processFile(type, baseUrl, initData, segments, filename, cb) {
const filePath = `./parts/${filename}`;
if (fs.existsSync(filePath)) {
const downloadingFlag = `./parts/.${filename}~`
if(fs.existsSync(downloadingFlag)) {
log("⚠️", ` ${filename} - ${type} is incomplete, restarting the download`);
} else if (fs.existsSync(filePath)) {
log("⚠️", ` ${filename} - ${type} already exists`);
return cb();
} else {
fs.writeFileSync(downloadingFlag, '');
}
const segmentsUrl = segments.map(seg => baseUrl + seg.url);
@ -78,7 +84,7 @@ function processFile(type, baseUrl, initData, segments, filename, cb) {
flags: "a"
});
combineSegments(type, 0, segmentsUrl, output, filePath, err => {
combineSegments(type, 0, segmentsUrl, output, filePath, downloadingFlag, err => {
if (err) {
log("⚠️", ` ${err}`);
}
@ -88,8 +94,9 @@ function processFile(type, baseUrl, initData, segments, filename, cb) {
});
}
function combineSegments(type, i, segmentsUrl, output, filename, cb) {
function combineSegments(type, i, segmentsUrl, output, filename, downloadingFlag, cb) {
if (i >= segmentsUrl.length) {
fs.unlinkSync(downloadingFlag);
log("🏁", ` ${filename} - ${type} done`);
return cb();
}