diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico index 88f888b..679f4f9 100644 Binary files a/public/assets/favicon.ico and b/public/assets/favicon.ico differ diff --git a/server/fetch.html b/server/fetch.html deleted file mode 100644 index bf80920..0000000 --- a/server/fetch.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - Document - - - - - \ No newline at end of file diff --git a/server/routes/download.js b/server/routes/download.js index 8259516..497e8cd 100644 --- a/server/routes/download.js +++ b/server/routes/download.js @@ -1,6 +1,7 @@ const express = require("express"); const router = express.Router(); const { exec } = require("child_process"); +const path = require("path"); router.post("/", (req, res) => { const options = { @@ -14,6 +15,12 @@ router.post("/", (req, res) => { return res.status(400).send("❌ URL manquante !"); } + // Récupérer le chemin Freedom Loader Output depuis app.locals + const outputFolder = req.app.locals.outputFolder; + + // Construire le template de sortie + const outputTemplate = path.join(outputFolder, "%(title)s.%(ext)s"); + let command = `yt-dlp`; if (options.audioOnly) { @@ -25,18 +32,18 @@ router.post("/", (req, res) => { } command += ` -f ${options.quality}`; - command += ` -o "downloads/%(title)s.%(ext)s"`; + command += ` -o "${outputTemplate}"`; command += ` "${options.url}"`; console.log("🔧 Commande finale :", command); exec(command, (error, stdout, stderr) => { if (error) { - console.error("Erreur yt-dlp :", stderr || error.message); + console.error("❌ Erreur yt-dlp :", stderr || error.message); return res.status(500).send("❌ Erreur pendant le téléchargement."); } - console.log("yt-dlp terminé :", stdout); + console.log("✅ yt-dlp terminé :", stdout); res.send("✅ Téléchargement terminé !"); }); }); diff --git a/server/server.js b/server/server.js index 1a7ed50..c1d5263 100644 --- a/server/server.js +++ b/server/server.js @@ -1,27 +1,38 @@ const express = require("express"); -const { exec } = require("child_process"); // Requis pour écrire dans un terminal +const { exec } = require("child_process"); const fs = require("fs"); +const path = require("path"); const app = express(); +// import des routes const infoRoute = require("./routes/info"); const downloadRoute = require("./routes/download"); -app.use(express.urlencoded({ extended: true })); // Pour pouvoir recevoir plein de truc +// Chemin vers le dossier Téléchargements de l'utilisateur +const downloadsPath = path.join(process.env.USERPROFILE, 'Downloads'); -if (!fs.existsSync("downloads")) { // Si jamais il n'y a pas de dossier downloads - fs.mkdirSync("downloads"); // On le crée +// Créer un sous-dossier "Freedom Loader Output" dans le dossier Téléchargements +const outputFolder = path.join(downloadsPath, 'Freedom Loader Output'); + +if (!fs.existsSync(outputFolder)) { + fs.mkdirSync(outputFolder); + console.log("✅ Dossier Freedom Loader Output créé dans Téléchargements."); } -app.use(express.static("public")); // Ca c'est pour ouvrir le serveur, comme ça plus besoin d'utiliser live server +// rendre le chemin accessible à tes routes +app.locals.outputFolder = outputFolder; +app.use(express.urlencoded({ extended: true })); -// route pour le formulaire de téléchargement -app.use("/download", downloadRoute); // on associe le contenu de infos.js à /download -// route pour l'info -app.use("/info", infoRoute); // on associe le contenu de infos.js à /info +// servir le dossier public comme site +app.use(express.static("public")); +// routes +app.use("/download", downloadRoute); // ex: /download +app.use("/info", infoRoute); // ex: /info app.listen(8080, () => { - console.log("🟢 Serveur prêt sur http://localhost:8080 \n Bonjour!"); + console.log("🟢 Serveur prêt sur http://localhost:8080"); + console.log("📂 Dossier de sortie :", outputFolder); });