mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
It Works on my machine
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,4 +1,6 @@
|
|||||||
/node_modules
|
/node_modules
|
||||||
/downloads
|
/downloads
|
||||||
/dist
|
/dist
|
||||||
yt-dlp.exe
|
yt-dlp.exe
|
||||||
|
out/
|
||||||
|
forge.config.js
|
||||||
BIN
build/installer-icon.ico
Normal file
BIN
build/installer-icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 264 KiB |
BIN
build/uninstaller-icon.ico
Normal file
BIN
build/uninstaller-icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 264 KiB |
22
main.js
22
main.js
@@ -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 d’habitude
|
.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 d’ouvrir 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
7460
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
56
package.json
56
package.json
@@ -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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 };
|
||||||
|
|||||||
Reference in New Issue
Block a user