mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
70 lines
1.9 KiB
JavaScript
70 lines
1.9 KiB
JavaScript
const express = require("express");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const { logger, logSessionStart, logSessionEnd } = require("./logger");
|
|
const config = require("../config");
|
|
const { execFile } = require("child_process");
|
|
const { userYtDlp } = require("./helpers/path");
|
|
|
|
const app = express();
|
|
const PORT = config.applicationPort;
|
|
|
|
// Dossier de téléchargement
|
|
const outputFolder = path.join(process.env.USERPROFILE, "Downloads", "Freedom Loader");
|
|
|
|
// Création du dossier si nécessaire
|
|
try {
|
|
fs.mkdirSync(outputFolder, { recursive: true });
|
|
logger.info(`Dossier Freedom Loader prêt dans ${outputFolder}`);
|
|
} catch (err) {
|
|
logger.error("Impossible de créer le dossier :", err);
|
|
process.exit(1);
|
|
}
|
|
|
|
// Mise à jour yt-dlp au démarrage
|
|
execFile(userYtDlp, ["-U"], (err, stdout, stderr) => {
|
|
if (err) logger.warn("Erreur update yt-dlp:", err);
|
|
else logger.info(`Update yt-dlp : ${stdout}`);
|
|
});
|
|
|
|
// Middlewares
|
|
app.use(express.urlencoded({ extended: true }));
|
|
app.use(express.static(path.join(__dirname, "../public")));
|
|
|
|
// Routes
|
|
app.use("/download", require("./routes/download"));
|
|
app.use("/info", require("./routes/info"));
|
|
|
|
app.get("/", (req, res) => {
|
|
res.sendFile(path.join(__dirname, "../public/index.html"));
|
|
});
|
|
|
|
// Fonction pour démarrer le serveur
|
|
async function startServer() {
|
|
return new Promise((resolve, reject) => {
|
|
logSessionStart();
|
|
|
|
const server = app.listen(PORT, () => {
|
|
logger.info(`Serveur Express prêt sur http://localhost:${PORT}`);
|
|
resolve(server);
|
|
});
|
|
|
|
server.on("error", (err) => {
|
|
logger.error("Erreur serveur Express :", err);
|
|
reject(err);
|
|
});
|
|
|
|
const gracefulExit = () => {
|
|
logSessionEnd();
|
|
server.close(() => {
|
|
logger.info("Serveur Express fermé proprement.");
|
|
process.exit();
|
|
});
|
|
};
|
|
|
|
process.on("SIGINT", gracefulExit);
|
|
process.on("SIGTERM", gracefulExit);
|
|
});
|
|
}
|
|
|
|
module.exports = { startServer }; |