Files
Freedom-Loader/server/routes/download.route.js

41 lines
990 B
JavaScript

const express = require("express");
const router = express.Router();
const { fetchDownload } = require("../services/download.services");
const listeners = [];
router.post("/", async (req, res) => {
const options = {
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;