From bfb3e0cbdfa01fc7216c68aa98b36c7737f3e5e7 Mon Sep 17 00:00:00 2001 From: MasterAcnolo <68693319+MasterAcnolo@users.noreply.github.com> Date: Sat, 28 Jun 2025 21:19:48 +0200 Subject: [PATCH] Push avant l'enfer (PRIDEFUl - NF) --- public/assets/favicon.ico | Bin 100934 -> 15406 bytes server/fetch.html | 31 ------------------------------- server/routes/download.js | 13 ++++++++++--- server/server.js | 31 +++++++++++++++++++++---------- 4 files changed, 31 insertions(+), 44 deletions(-) delete mode 100644 server/fetch.html diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico index 88f888b9497d99f366213767209a549e46d7e128..679f4f9c86467fdf7759d13f1ea29e9faf2ece06 100644 GIT binary patch literal 15406 zcmeI2Ypfkr6@U+3k(LUySP=#5RUWArrD82;FhP*;QVAqt;}ZfHTB7lh5JjUHqlj;@ zKa`j@p(=>)XcQq9s?s7vQBo^P?5$9RwrWuj5ue|8dzV?6%$(WhobjOMuH@_9vuEwK z)~x-QJ?FO9+oLzpn?JutIoZ45(Y@ZXUavPfx%+zYf?jVmZA+HS+&{e6+wk~aZ!tP_ zp~voaiY8ggjhofAt))m9QNi1vfyo zzy41E{fF59F7R1ygfGLMunnsHy$;q=H(x%pZ9e}-cp@}CfAozq=XuclhmBljd(ocr z7i~?Y&)^)*OmW?$pW8o%-o7xe!rq1bPet!F@KEAj>Mw!pr>SoLvy<+v)DHn=3Yz*w zd-VSYx~pIggd9bsZT;H+OgJk#byd30Ou}*C{?sCSasO5D9oPkqX*^?Br8#n)xmF#Y zSj&$8b>RK3e6`te&aVNV`|>gR&2jm>uZJBS`}ZACn#*+q=;qj)>Yv5l{%{Oj4|RJ> z?t3#j`MRX8O`ow&SO0TCnSd4G-cYA&+o1k8)8{yFzy2cB+5H9WCqam7+r6<)x75Gm z>3fV*#lOX8%Qnr)UuW8^p93KurIK}{-sJyR=zjn%ncP)3pVgABzly&~i^-EK~rfT-DJ=e10Ipj95 z?RJQ~y=$f|d|P(u|3d63`u_=Nf78r0Mem)EeK+~HebD@WpFVRzSqiZ}KRMm9`=6^R zO8q>2&cE|O@jdqu zsM_?pZv5-?qAm6x&yZhfuz4r#r$ETdsl<4MohS$OZ$J0nSYKf$O4r!lpg0d5qd!C3 zua?93uiD7hYw=}n+ylN1j$6K8t#|ET`{t(2Z^ZGR@E^8I%Ku0Iz5^eGKNYYZosvA2 z=y+!S5F7%o0r$f;Jb#whF44IbTkbWA{`VXm*`~w zZR5HQzl%UAv0b85;@`dDec-r>F3|^m`px%^%GoF zZ4Gl>=ij~HGMJMcR_gn4{Y@y{vzub8`rnSt(;?O*)kg8RqgTWA;CKuZOZNYMY&;ES zr6mK4x$mLzY$*7h1g+_F%|Vne1J65C;9lpssA+DDqum%b!Nu?G@1{BxuMeutV#^$*DxQ6cn*R^Ni7s78~+;NQR&u`g7!QVTE*_TH3 zKWcx!eck}R|39>1n0rs5Oc)6=TevpA==mhO|jeF7QbuhT=2}~H*uh!322gP z{GI{dn3Nr_vtS!Ud{fk)10mYK3gUiU*%tqg>7U0nY`2xw`1S4hJt1{`EcH)8%q7>- z#p%A)bD-aT))xN{>Hj1R4JdW-J6BeL-&BfY@Cxuu8M*xu^}G+9$aTMS_}jJXEztJ_G)Xmn_n!-s zvbjG4^8Rxt*Uw5iu7hhJ_SlFymu>OecNc7ijj&;c?^3$|?*(;IjbER)!i!)MR=`$> z*v#>JA@Bds=6WaOc&qic_^bN)+Htr4p)@#n;`{gW5YLzW z=K3h{YsWp?J>@iTyhENxWd~$mb#>1_SAsbRaec1@pR=w{ZW}dzZJDEc;8J)x90Bg* z&iU*s*X^?fToe04hJue~nfkGS;bJeGdG9W(tN1jZXOkIHh`4q>yc>@xl~ zUvb}gbqs{Kb{w}4L&=;AJC=_`{I20Ouow=5i{K9UU-|xx{P`RYLch5dx=rOHk^iPx zhH0OTzkIJ4CckZcX7fLM{(TQT0KR93pI4M_HM)9A_zH_%4YD)GYG#%|5|u1 z^z+yCy=wf&J9?9_FP{p^hzzt8$6SO9T$?dPxSd&9=>H`*pR1M+tg zm;d$ozn>VLFRpv%OI5ngaX)*5=6@H#z766xuWIaG54wK(#n*PPG=AUBeiNJtdqO|C znwz7X!P{ca_eV#pZL4rYhfceeqF|#ZPmrU4S(0bGMIp2#lHTgu^c`PKLy7#`yaJl XjejZjUk3}JbiSZEE3+BsCIkNhAZ^xQ literal 100934 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 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); });