It Works on my machine

This commit is contained in:
MasterAcnolo
2025-06-28 22:36:03 +02:00
parent accb55e538
commit 9d824f5c33
7 changed files with 7551 additions and 20 deletions

2
.gitignore vendored
View File

@@ -2,3 +2,5 @@
/downloads /downloads
/dist /dist
yt-dlp.exe yt-dlp.exe
out/
forge.config.js

BIN
build/installer-icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

BIN
build/uninstaller-icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

22
main.js
View File

@@ -1,7 +1,8 @@
const { app, BrowserWindow } = require("electron"); const { app, BrowserWindow } = require("electron");
const path = require("path"); const path = require("path");
function createWindow() { async function createWindow() {
console.log("🟢 Création de la fenêtre...");
const win = new BrowserWindow({ const win = new BrowserWindow({
width: 1000, width: 1000,
height: 700, height: 700,
@@ -11,16 +12,25 @@ function createWindow() {
}, },
}); });
// Charge ton frontend côté serveur Express win.loadURL("http://localhost:8080")
win.loadURL("http://localhost:8080"); // Express tournera comme dhabitude .then(() => console.log("✅ Fenêtre chargée"))
.catch(err => console.error("❌ Erreur chargement fenêtre:", err));
} }
app.whenReady().then(() => { app.whenReady().then(async () => {
// lancer Express avant douvrir Electron console.log("🟢 App prête, démarrage du serveur Express...");
const expressServer = require("./server/server.js"); const expressServer = require("./server/server.js");
createWindow(); try {
await expressServer.startServer();
console.log("✅ Serveur Express démarré");
await createWindow();
} catch (error) {
console.error("❌ Erreur serveur ou fenêtre :", error);
app.quit();
}
}); });
app.on("window-all-closed", () => { app.on("window-all-closed", () => {
console.log("🛑 Toutes fenêtres fermées, quitte l'app");
if (process.platform !== "darwin") app.quit(); if (process.platform !== "darwin") app.quit();
}); });

7460
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,58 @@
{ {
"devDependencies": { "name": "freedom-loader",
"electron": "^37.1.0" "productName": "Freedom Loader",
}, "version": "1.0.0",
"author": "MasterAcnolo",
"description": "Freedom Loader, parce que nous le valons bien",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
"start": "electron ." "start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"dist": "electron-builder"
}, },
"dependencies": { "dependencies": {
"express": "^5.1.0" "express": "^5.1.0",
"electron-squirrel-startup": "^1.0.1"
},
"devDependencies": {
"electron": "^37.1.0",
"electron-builder": "^26.0.12"
},
"build": {
"appId": "com.masteracnolo.freedomloader",
"productName": "Freedom Loader",
"files": [
"**/*"
],
"directories": {
"buildResources": "build"
},
"asar": false,
"win": {
"target": "nsis",
"icon": "build/installer-icon.ico"
},
"nsis": {
"oneClick": false,
"perMachine": true,
"allowToChangeInstallationDirectory": true,
"installerIcon": "build/installer-icon.ico",
"uninstallerIcon": "build/uninstaller-icon.ico",
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"shortcutName": "Freedom Loader"
}
} }
} }

View File

@@ -26,13 +26,34 @@ app.locals.outputFolder = outputFolder;
app.use(express.urlencoded({ extended: true })); app.use(express.urlencoded({ extended: true }));
// servir le dossier public comme site // servir le dossier public comme site
app.use(express.static("public")); // app.use(express.static("public"));
app.use(express.static(path.join(__dirname, "../public")));
// routes // routes
app.use("/download", downloadRoute); // ex: /download app.use("/download", downloadRoute); // ex: /download
app.use("/info", infoRoute); // ex: /info app.use("/info", infoRoute); // ex: /info
app.listen(8080, () => { app.get("/", (req, res) => {
console.log("🟢 Serveur prêt sur http://localhost:8080"); res.sendFile(path.join(__dirname, "../public/index.html"));
console.log("📂 Dossier de sortie :", outputFolder);
}); });
// Export d'une fonction startServer qui retourne une promesse
function startServer() {
return new Promise((resolve, reject) => {
console.log("🟢 Démarrage du serveur Express...");
const serverInstance = app.listen(8080, () => {
console.log("🟢 Serveur Express prêt sur http://localhost:8080");
resolve(serverInstance);
});
serverInstance.on('error', (err) => {
console.error("❌ Erreur serveur Express :", err);
reject(err);
});
});
}
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, "../public/index.html"));
});
module.exports = { startServer };