Fix: Centralize default download path and enhance path validation logic

This commit is contained in:
MasterAcnolo
2026-02-17 23:29:31 +01:00
parent 45e0840fea
commit 32c9a66a35
6 changed files with 94 additions and 40 deletions

View File

@@ -1,6 +1,5 @@
const { execFile } = require("child_process");
const { userYtDlp } = require("../helpers/path");
const path = require("path");
const { userYtDlp, defaultDownloadFolder } = require("../helpers/path");
const fs = require("fs");
const { logger } = require("../logger");
const { buildYtDlpArgs } = require("../helpers/buildArgs");
@@ -9,8 +8,16 @@ const notify = require("../helpers/notify")
function fetchDownload(options, listeners, speedListeners) {
return new Promise((resolve, reject) => {
const outputFolder = options.outputFolder || path.join(process.env.USERPROFILE, "Downloads", "Freedom Loader");
fs.mkdirSync(outputFolder, { recursive: true });
const outputFolder = options.outputFolder || defaultDownloadFolder;
// Create download folder if it doesn't exist
try {
fs.mkdirSync(outputFolder, { recursive: true });
logger.info(`Output folder ready: ${outputFolder}`);
} catch (err) {
logger.error(`Failed to create output folder: ${err.message}`);
return reject(new Error(`Unable to create download folder: ${err.message}`));
}
const args = buildYtDlpArgs({ ...options, outputFolder });
logger.info(`[yt-dlp args] ${args.join(" ")}`);
@@ -31,7 +38,7 @@ function fetchDownload(options, listeners, speedListeners) {
if (!line.trim()) return;
logger.info(`[yt-dlp] ${line}`);
/* Barre de Chargement*/
/* Progress Bar */
if (line.startsWith("[download] Destination:")) listeners.forEach(fn => fn("reset"));
const match = line.match(/\[download\]\s+(\d+\.\d+)%/);
if (match) listeners.forEach(fn => fn(parseFloat(match[1])));