mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
Using Download Route MVC Model
This commit is contained in:
@@ -1,40 +1,10 @@
|
|||||||
const express = require("express");
|
const express = require("express");
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const { fetchDownload } = require("../services/download.services");
|
const { downloadController, progressController } = require("../controller/download.controller");
|
||||||
|
|
||||||
const listeners = [];
|
router.post("/", downloadController);
|
||||||
|
|
||||||
router.post("/", async (req, res) => {
|
// SSE pour la progression du téléchargement
|
||||||
const options = {
|
router.get("/progress", progressController);
|
||||||
url: req.body.url,
|
|
||||||
audioOnly: req.body.audioOnly === "1",
|
|
||||||
quality: req.body.quality || "best",
|
|
||||||
outputFolder: req.body.savePath || null
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
await fetchDownload(options, listeners);
|
|
||||||
res.send(`✅ Téléchargement terminé`);
|
|
||||||
} catch (err) {
|
|
||||||
res.status(500).send(`❌ ${err.message}`);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// SSE pour la barre de progression
|
|
||||||
router.get("/progress", (req, res) => {
|
|
||||||
res.set({
|
|
||||||
'Content-Type': 'text/event-stream',
|
|
||||||
'Cache-Control': 'no-cache',
|
|
||||||
'Connection': 'keep-alive',
|
|
||||||
});
|
|
||||||
|
|
||||||
const sendProgress = percent => res.write(`data: ${percent}\n\n`);
|
|
||||||
listeners.push(sendProgress);
|
|
||||||
|
|
||||||
req.on("close", () => {
|
|
||||||
listeners.splice(listeners.indexOf(sendProgress), 1);
|
|
||||||
res.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
Reference in New Issue
Block a user