mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68cdad06ab | ||
|
|
ee7c6520b9 | ||
|
|
4ed1609e41 | ||
|
|
b64e61d45d | ||
|
|
b4c2c865d8 | ||
|
|
e32ffd8fa0 | ||
|
|
8be6a932e5 | ||
|
|
6ed59fd272 | ||
|
|
4df1cb207f | ||
|
|
d03e3bc7e5 | ||
|
|
df02acb97f | ||
|
|
6ef04700ab | ||
|
|
766694f330 | ||
|
|
93380b2f36 | ||
|
|
8c969d694f | ||
|
|
f2f3d42e8c | ||
|
|
8d8973acfc | ||
|
|
281bff2379 | ||
|
|
e30f54050f | ||
|
|
0ae808c1a0 | ||
|
|
2598573844 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,4 +2,5 @@
|
|||||||
/downloads
|
/downloads
|
||||||
/dist
|
/dist
|
||||||
logs/*.json
|
logs/*.json
|
||||||
|
logs/*.log
|
||||||
/out
|
/out
|
||||||
25
README-EN.md
25
README-EN.md
@@ -1,21 +1,26 @@
|
|||||||
# Freedom Loader
|
# Freedom Loader
|
||||||
|
|
||||||
|
<!-- Release -->
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
 
|
<!-- Build (Next Release) -->
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
> This project aims to enable free, open-source, and unrestricted downloading of Video/Audio content. Eventually, it will allow users to choose
|
> This project aims to enable free, open-source, and unrestricted downloading of Video/Audio content. Eventually, it will allow users to choose
|
||||||
|
|
||||||
## 🚀 Features
|
## 🚀 Features
|
||||||
|
|
||||||
✅ Video Download (MP4)
|
- ✅ Video download (MP4)
|
||||||
✅ Audio Download (MP3)
|
- ✅ Audio-only download (MP3)
|
||||||
✅ Detailed Logs (Console + Logs)
|
- ✅ Full playlist support
|
||||||
✅ Automatic Fetch of Information
|
- ✅ Automatic metadata retrieval (title, duration, etc.)
|
||||||
✅ Playlist Download
|
- ✅ Detailed logs: console and rotating files (7 days)
|
||||||
✅ Theme selection
|
- ✅ Custom output path selection with saving
|
||||||
✅ Custom output path selection for videos
|
- ✅ Multiple graphical themes available for interface customization
|
||||||
|
- ✅ Simple, intuitive, and responsive interface
|
||||||
|
- ✅ Notification system when download finished (Click = Open Output Folder)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -52,7 +57,7 @@ Try restarting the application, checking the logs, or opening the browser's deve
|
|||||||
- [ ] Extract / Split video using native chapters
|
- [ ] Extract / Split video using native chapters
|
||||||
- [ ] Parallel downloads
|
- [ ] Parallel downloads
|
||||||
- [ ] Skip sponsored parts of videos
|
- [ ] Skip sponsored parts of videos
|
||||||
- [ ] Custom output path selection (default **C:\Users\Username\Downloads** with a **Freedom Loader Output** folder created)
|
- [x] ~~Custom output path selection (default **C:\Users\Username\Downloads** with a **Freedom Loader Output** folder created)~~
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
25
README.md
25
README.md
@@ -1,21 +1,26 @@
|
|||||||
# Freedom Loader
|
# Freedom Loader
|
||||||
|
|
||||||
|
<!-- Release -->
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
 
|
<!-- Build (Next Release) -->
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
> Ce projet a pour but de permettre le téléchargement de contenu Vidéo/Audio de manière gratuite, open source et libre. Il permettra à terme de choisir
|
> Ce projet a pour but de permettre le téléchargement de contenu Vidéo/Audio de manière gratuite, open source et libre. Il permettra à terme de choisir
|
||||||
|
|
||||||
## 🚀 Fonctionnalités
|
## 🚀 Fonctionnalités
|
||||||
|
|
||||||
✅ Téléchargement Vidéo (MP4)
|
- ✅ Téléchargement de vidéos (MP4)
|
||||||
✅ Téléchargement Audio (MP3)
|
- ✅ Téléchargement audio uniquement (MP3)
|
||||||
✅ Logs détaillés (console + fichiers logs)
|
- ✅ Support des playlists complètes
|
||||||
✅ Récupération automatique des informations
|
- ✅ Récupération automatique des métadonnées (titre, durée, etc.)
|
||||||
✅ Téléchargement des playlists
|
- ✅ Logs détaillés : console et fichiers rotatifs (7 jours)
|
||||||
✅ Choix de thèmes
|
- ✅ Choix du chemin de sortie personnalisé avec sauvegarde
|
||||||
✅ Choix du chemin de sortie des vidéos personnalisés
|
- ✅ Plusieurs thèmes graphiques au choix pour personnaliser l’interface
|
||||||
|
- ✅ Interface simple, intuitive
|
||||||
|
- ✅ Notification quand le téléchargement est fini (Click = Ouverture Dossier Output)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -52,7 +57,7 @@ Essayez de relancer l'application, de consulter les logs ou d'ouvrir la console
|
|||||||
- [ ] Extraction / découpage de la vidéo via chapitrage natif
|
- [ ] Extraction / découpage de la vidéo via chapitrage natif
|
||||||
- [ ] Téléchargements parallèles
|
- [ ] Téléchargements parallèles
|
||||||
- [ ] Suppression automatique des parties sponsorisées (skip sponsor)
|
- [ ] Suppression automatique des parties sponsorisées (skip sponsor)
|
||||||
- [ ] Choix personnalisé du chemin de sortie (par défaut **C:\Users\Utilisateur\Downloads**, où un dossier **Freedom Loader Output** sera créé)
|
- [x] ~~Choix personnalisé du chemin de sortie (par défaut **C:\Users\Utilisateur\Downloads**, où un dossier **Freedom Loader Output** sera créé)~~
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
BIN
build/confirm-icon.png
Normal file
BIN
build/confirm-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.8 KiB |
34
main.js
34
main.js
@@ -16,12 +16,16 @@
|
|||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const { app, BrowserWindow, ipcMain, dialog } = require("electron");
|
const { app, BrowserWindow, ipcMain, dialog, Menu, shell } = require("electron");
|
||||||
|
// Désactive l'accélération GPU pour éviter les erreurs GPU sur certains systèmes
|
||||||
|
app.disableHardwareAcceleration();
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const os = require("os");
|
const os = require("os");
|
||||||
const { logger, logSessionStart, logSessionEnd } = require("./server/logger");
|
const { logger, logSessionStart, logSessionEnd, logDir } = require("./server/logger");
|
||||||
|
|
||||||
let mainWindow;
|
let mainWindow;
|
||||||
|
// Utilise le vrai dossier de logs défini dans logger.js
|
||||||
|
const logsFolderPath = logDir;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Fonction principale qui crée la fenêtre principale de l'application.
|
Fonction principale qui crée la fenêtre principale de l'application.
|
||||||
@@ -113,6 +117,32 @@ app.whenReady().then(async () => {
|
|||||||
await expressServer.startServer();
|
await expressServer.startServer();
|
||||||
logger.info("Serveur Express démarré");
|
logger.info("Serveur Express démarré");
|
||||||
await createWindow();
|
await createWindow();
|
||||||
|
|
||||||
|
// Ajout du menu personnalisé
|
||||||
|
const menuTemplate = [
|
||||||
|
// ... Menu standard Electron ...
|
||||||
|
{
|
||||||
|
label: "Logs",
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: "Ouvrir les logs",
|
||||||
|
click: () => {
|
||||||
|
shell.openPath(logsFolderPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
// Fusionner avec le menu par défaut
|
||||||
|
const defaultMenu = Menu.getApplicationMenu();
|
||||||
|
let template = menuTemplate;
|
||||||
|
if (defaultMenu) {
|
||||||
|
template = [...Menu.getApplicationMenu().items.map(item => item), ...menuTemplate];
|
||||||
|
}
|
||||||
|
const finalMenu = Menu.buildFromTemplate(template);
|
||||||
|
Menu.setApplicationMenu(finalMenu);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error("Erreur serveur ou fenêtre :", error);
|
logger.error("Erreur serveur ou fenêtre :", error);
|
||||||
app.quit();
|
app.quit();
|
||||||
|
|||||||
349
package-lock.json
generated
349
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "freedom-loader",
|
"name": "freedom-loader",
|
||||||
"version": "1.0.2",
|
"version": "1.1.2",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "freedom-loader",
|
"name": "freedom-loader",
|
||||||
"version": "1.0.2",
|
"version": "1.1.2",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"debug": "^4.4.1",
|
"debug": "^4.4.1",
|
||||||
@@ -67,9 +67,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/cli": {
|
"node_modules/@electron-forge/cli": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.8.3.tgz",
|
||||||
"integrity": "sha512-QI3EShutfq9Y+2TWWrPjm4JZM3eSAKzoQvRZdVhAfVpUbyJ8K23VqJShg3kGKlPf9BXHAGvE+8LyH5s2yDr1qA==",
|
"integrity": "sha512-BSAjGGfVf0yp3NQhXYmyCw9T//YCQHuktMv4HXfDVfo7AoV6DA1oEhqldI4Q7aHKeRob5+yBkvRRYPiu5ayCPw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -83,9 +83,9 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/core": "7.8.1",
|
"@electron-forge/core": "7.8.3",
|
||||||
"@electron-forge/core-utils": "7.8.1",
|
"@electron-forge/core-utils": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@electron/get": "^3.0.0",
|
"@electron/get": "^3.0.0",
|
||||||
"chalk": "^4.0.0",
|
"chalk": "^4.0.0",
|
||||||
"commander": "^11.1.0",
|
"commander": "^11.1.0",
|
||||||
@@ -105,9 +105,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/core": {
|
"node_modules/@electron-forge/core": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.8.3.tgz",
|
||||||
"integrity": "sha512-jkh0QPW5p0zmruu1E8+2XNufc4UMxy13WLJcm7hn9jbaXKLkMbKuEvhrN1tH/9uGp1mhr/t8sC4N67gP+gS87w==",
|
"integrity": "sha512-qX2vi/LP3HcSqSfLfzMeH2ll8SFZQnOk8VN/b3bq6XrBCbrfrSsTYYWakN6mmfalLJcQRm4jCEc6gcyuGO4i6Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -121,17 +121,17 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/core-utils": "7.8.1",
|
"@electron-forge/core-utils": "7.8.3",
|
||||||
"@electron-forge/maker-base": "7.8.1",
|
"@electron-forge/maker-base": "7.8.3",
|
||||||
"@electron-forge/plugin-base": "7.8.1",
|
"@electron-forge/plugin-base": "7.8.3",
|
||||||
"@electron-forge/publisher-base": "7.8.1",
|
"@electron-forge/publisher-base": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@electron-forge/template-base": "7.8.1",
|
"@electron-forge/template-base": "7.8.3",
|
||||||
"@electron-forge/template-vite": "7.8.1",
|
"@electron-forge/template-vite": "7.8.3",
|
||||||
"@electron-forge/template-vite-typescript": "7.8.1",
|
"@electron-forge/template-vite-typescript": "7.8.3",
|
||||||
"@electron-forge/template-webpack": "7.8.1",
|
"@electron-forge/template-webpack": "7.8.3",
|
||||||
"@electron-forge/template-webpack-typescript": "7.8.1",
|
"@electron-forge/template-webpack-typescript": "7.8.3",
|
||||||
"@electron-forge/tracer": "7.8.1",
|
"@electron-forge/tracer": "7.8.3",
|
||||||
"@electron/get": "^3.0.0",
|
"@electron/get": "^3.0.0",
|
||||||
"@electron/packager": "^18.3.5",
|
"@electron/packager": "^18.3.5",
|
||||||
"@electron/rebuild": "^3.7.0",
|
"@electron/rebuild": "^3.7.0",
|
||||||
@@ -161,13 +161,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/core-utils": {
|
"node_modules/@electron-forge/core-utils": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.8.3.tgz",
|
||||||
"integrity": "sha512-mRoPLDNZgmjyOURE/K0D3Op53XGFmFRgfIvFC7c9S/BqsRpovVblrqI4XxPRdNmH9dvhd8On9gGz+XIYAKD3aQ==",
|
"integrity": "sha512-8jhK7AvUKEqDyTMMuRhvS1TkE73YEnHYAxVvkJq35e1KdCwGbGnSRhaEs7OOqRfkKxfepdJ7BMKFSoKFeP+z0Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@electron/rebuild": "^3.7.0",
|
"@electron/rebuild": "^3.7.0",
|
||||||
"@malept/cross-spawn-promise": "^2.0.0",
|
"@malept/cross-spawn-promise": "^2.0.0",
|
||||||
"chalk": "^4.0.0",
|
"chalk": "^4.0.0",
|
||||||
@@ -182,13 +182,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/maker-base": {
|
"node_modules/@electron-forge/maker-base": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.8.3.tgz",
|
||||||
"integrity": "sha512-GUZqschGuEBzSzE0bMeDip65IDds48DZXzldlRwQ+85SYVA6RMU2AwDDqx3YiYsvP2OuxKruuqIJZtOF5ps4FQ==",
|
"integrity": "sha512-WmF66cHdziaK8Asi7IRTLxZjCZ8IqXXHr6IPl4d5oatN6s5RG+HHzG1hiJ7LzlOEntqdSpE8Wh2nB2TmyR4huQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"fs-extra": "^10.0.0",
|
"fs-extra": "^10.0.0",
|
||||||
"which": "^2.0.2"
|
"which": "^2.0.2"
|
||||||
},
|
},
|
||||||
@@ -197,14 +197,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/maker-deb": {
|
"node_modules/@electron-forge/maker-deb": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.8.3.tgz",
|
||||||
"integrity": "sha512-tjjeesQtCP5Xht1X7gl4+K9bwoETPmQfBkOVAY/FZIxPj40uQh/hOUtLX2tYENNGNVZ1ryDYRs8TuPi+I41Vfw==",
|
"integrity": "sha512-GZHJU06LRFJkv1wMc3bjMVzedQhyxnyMZqgDJjE9TIlXXZkN2EqGmKLw/HxwNRA1R8yuQeA4Ih6/dEB4bZTevg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/maker-base": "7.8.1",
|
"@electron-forge/maker-base": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1"
|
"@electron-forge/shared-types": "7.8.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.4.0"
|
"node": ">= 16.4.0"
|
||||||
@@ -214,14 +214,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/maker-rpm": {
|
"node_modules/@electron-forge/maker-rpm": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.8.3.tgz",
|
||||||
"integrity": "sha512-TF6wylft3BHkw9zdHcxmjEPBZYgTIc0jE31skFnMEQ/aExbNRiNaCZvsXy+7ptTWZxhxUKRc9KHhLFRMCmOK8g==",
|
"integrity": "sha512-TqHHdF5D3Dy4NgG+pi8eRc18P1D0FF1LE+CqQF4MRof+XrpHhRtog5Ac4gWjvg1Wma6WjPyTdryHAkURsoBbuQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/maker-base": "7.8.1",
|
"@electron-forge/maker-base": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1"
|
"@electron-forge/shared-types": "7.8.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.4.0"
|
"node": ">= 16.4.0"
|
||||||
@@ -231,14 +231,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/maker-squirrel": {
|
"node_modules/@electron-forge/maker-squirrel": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.8.3.tgz",
|
||||||
"integrity": "sha512-qT1PMvT7ALF0ONOkxlA0oc0PiFuKCAKgoMPoxYo9gGOqFvnAb+TBcnLxflQ4ashE/ZkrHpykr4LcDJxqythQTA==",
|
"integrity": "sha512-6XSEhZMbgfjAaCm8A54pNjn4ghfxJgPu4i7ok3PhP44WOrFPaPivLttpvKRnxRb0PGZstPjPBFcwL1F9S1trjA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/maker-base": "7.8.1",
|
"@electron-forge/maker-base": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"fs-extra": "^10.0.0"
|
"fs-extra": "^10.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -249,14 +249,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/maker-zip": {
|
"node_modules/@electron-forge/maker-zip": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.8.3.tgz",
|
||||||
"integrity": "sha512-unIxEoV1lnK4BLVqCy3L2y897fTyg8nKY1WT4rrpv0MUKnQG4qmigDfST5zZNNHHaulEn/ElAic2GEiP7d6bhQ==",
|
"integrity": "sha512-ytao285wKAjKBO6eULzLeqUDP5Zh7beQlGyHjgOMknk7FI0sNy+zGdh3CrCGIhkXSHU/DpukPwRu2SiKvIaIGA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/maker-base": "7.8.1",
|
"@electron-forge/maker-base": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"cross-zip": "^4.0.0",
|
"cross-zip": "^4.0.0",
|
||||||
"fs-extra": "^10.0.0",
|
"fs-extra": "^10.0.0",
|
||||||
"got": "^11.8.5"
|
"got": "^11.8.5"
|
||||||
@@ -266,70 +266,70 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/plugin-auto-unpack-natives": {
|
"node_modules/@electron-forge/plugin-auto-unpack-natives": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.8.3.tgz",
|
||||||
"integrity": "sha512-4URAgWX9qqqKe6Bfad0VmpFRrwINYMODfKGd2nFQrfHxmBtdpXnsWlLwVGE/wGssIQaTMI5bWQ6F2RNeXTgnhA==",
|
"integrity": "sha512-7tRhySvfdTrBC4PEhAzjzjJGT5dBSU6jhy3XlQ8LJH50jHIT9bioQq6dfn/3iw/VaD1ftGWKx+HlntYCmBhViw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/plugin-base": "7.8.1",
|
"@electron-forge/plugin-base": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1"
|
"@electron-forge/shared-types": "7.8.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.4.0"
|
"node": ">= 16.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/plugin-base": {
|
"node_modules/@electron-forge/plugin-base": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.8.3.tgz",
|
||||||
"integrity": "sha512-iCZC2d7CbsZ9l6j5d+KPIiyQx0U1QBfWAbKnnQhWCSizjcrZ7A9V4sMFZeTO6+PVm48b/r9GFPm+slpgZtYQLg==",
|
"integrity": "sha512-0CzPQlO3BGu5bLCrx2Xqo6B1yoHhA9wG9boZE58ANr8Qma1NQfAWZU3LnMmF3EdWNTX76PxpZeeb3QbPNcxSuA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1"
|
"@electron-forge/shared-types": "7.8.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.4.0"
|
"node": ">= 16.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/plugin-fuses": {
|
"node_modules/@electron-forge/plugin-fuses": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/plugin-fuses/-/plugin-fuses-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/plugin-fuses/-/plugin-fuses-7.8.3.tgz",
|
||||||
"integrity": "sha512-dYTwvbV1HcDOIQ0wTybpdtPq6YoBYXIWBTb7DJuvFu/c/thj1eoEdnbwr8mT9hEivjlu5p4ls46n16P5EtZ0oA==",
|
"integrity": "sha512-OPWfoVsQ3xzK7GB3C6zoGlUu21RCOEQAm5+zg9VP1HJg5dsrKkqU8A2DsHGxe7PHthUCuQUgcls0ciDOHvckCQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/plugin-base": "7.8.1",
|
"@electron-forge/plugin-base": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1"
|
"@electron-forge/shared-types": "7.8.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.4.0"
|
"node": ">= 16.4.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@electron/fuses": ">=1.0.0"
|
"@electron/fuses": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/publisher-base": {
|
"node_modules/@electron-forge/publisher-base": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.8.3.tgz",
|
||||||
"integrity": "sha512-z2C+C4pcFxyCXIFwXGDcxhU8qtVUPZa3sPL6tH5RuMxJi77768chLw2quDWk2/dfupcSELXcOMYCs7aLysCzeQ==",
|
"integrity": "sha512-kurRKVNyLsK2JgmVl88UHu0+qSH+PysMtk/xP0YX5sYNMVxRay8+S1T10tAh6Qom94KwpF3CLYtkebvxb/fq+A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1"
|
"@electron-forge/shared-types": "7.8.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.4.0"
|
"node": ">= 16.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/shared-types": {
|
"node_modules/@electron-forge/shared-types": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.8.3.tgz",
|
||||||
"integrity": "sha512-guLyGjIISKQQRWHX+ugmcjIOjn2q/BEzCo3ioJXFowxiFwmZw/oCZ2KlPig/t6dMqgUrHTH5W/F0WKu0EY4M+Q==",
|
"integrity": "sha512-gkZtD7ALXHPDOthJo1rQYLDNfG09fdDRMWvjEgaXdF3Z69xXFfnOWPNuOkRUODNalMnuuGs6l7jDl+QFQgHlDg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/tracer": "7.8.1",
|
"@electron-forge/tracer": "7.8.3",
|
||||||
"@electron/packager": "^18.3.5",
|
"@electron/packager": "^18.3.5",
|
||||||
"@electron/rebuild": "^3.7.0",
|
"@electron/rebuild": "^3.7.0",
|
||||||
"listr2": "^7.0.2"
|
"listr2": "^7.0.2"
|
||||||
@@ -339,14 +339,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/template-base": {
|
"node_modules/@electron-forge/template-base": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.8.3.tgz",
|
||||||
"integrity": "sha512-k8jEUr0zWFWb16ZGho+Es2OFeKkcbTgbC6mcH4eNyF/sumh/4XZMcwRtX1i7EiZAYiL9sVxyI6KVwGu254g+0g==",
|
"integrity": "sha512-C0tVODDNKoqhCf7T1HRONJs9DKAmjmk8Of0t8rVjT0ERDzMvLGlBByd785v5lFlKbGERyoaXsYltxPAu92G3aA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/core-utils": "7.8.1",
|
"@electron-forge/core-utils": "7.8.3",
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@malept/cross-spawn-promise": "^2.0.0",
|
"@malept/cross-spawn-promise": "^2.0.0",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"fs-extra": "^10.0.0",
|
"fs-extra": "^10.0.0",
|
||||||
@@ -357,14 +357,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/template-vite": {
|
"node_modules/@electron-forge/template-vite": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.8.3.tgz",
|
||||||
"integrity": "sha512-qzSlJaBYYqQAbBdLk4DqAE3HCNz4yXbpkb+VC74ddL4JGwPdPU57DjCthr6YetKJ2FsOVy9ipovA8HX5UbXpAg==",
|
"integrity": "sha512-tDL5h+UO5iOzdEYNVsSu4zkUVN4RTxti5iXzcBquKd9Kgt/A/M7xHeuKj7g1Ds7Ul/n2XcFvcfgLcRmiXQeVDA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@electron-forge/template-base": "7.8.1",
|
"@electron-forge/template-base": "7.8.3",
|
||||||
"fs-extra": "^10.0.0"
|
"fs-extra": "^10.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -372,14 +372,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/template-vite-typescript": {
|
"node_modules/@electron-forge/template-vite-typescript": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.8.3.tgz",
|
||||||
"integrity": "sha512-CccQhwUjZcc6svzuOi3BtbDal591DzyX2J5GPa6mwVutDP8EMtqJL1VyOHdcWO/7XjI6GNAD0fiXySOJiUAECA==",
|
"integrity": "sha512-HJjjY9xmlpl0vx10mrXdWn2RYHExfazACxmDNNmGO1eq3eqrQk/3R+NDGyqMJ7ajBsRVbkQNt+wayH7HkRJUjA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@electron-forge/template-base": "7.8.1",
|
"@electron-forge/template-base": "7.8.3",
|
||||||
"fs-extra": "^10.0.0"
|
"fs-extra": "^10.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -387,14 +387,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/template-webpack": {
|
"node_modules/@electron-forge/template-webpack": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.8.3.tgz",
|
||||||
"integrity": "sha512-DA77o9kTCHrq+W211pyNP49DyAt0d1mzMp2gisyNz7a+iKvlv2DsMAeRieLoCQ44akb/z8ZsL0YLteSjKLy4AA==",
|
"integrity": "sha512-1zkji5px1kDXbigFN5959anCf3HAVBvam3bHh2VejnCScegLQP3JBjAn2Nw2ILWq6ej5JNuA/V99b1dr11hPOw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@electron-forge/template-base": "7.8.1",
|
"@electron-forge/template-base": "7.8.3",
|
||||||
"fs-extra": "^10.0.0"
|
"fs-extra": "^10.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -402,14 +402,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/template-webpack-typescript": {
|
"node_modules/@electron-forge/template-webpack-typescript": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.8.3.tgz",
|
||||||
"integrity": "sha512-h922E+6zWwym1RT6WKD79BLTc4H8YxEMJ7wPWkBX59kw/exsTB/KFdiJq6r82ON5jSJ+Q8sDGqSmDWdyCfo+Gg==",
|
"integrity": "sha512-Xz3X7YJvot08Xm+0BLIS28GJH+0z9vEN9xYX76SOL4jqDcHH8lRFpNWcE2HsxxxRbCVH+s0etVmACZcWoujUrw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-forge/shared-types": "7.8.1",
|
"@electron-forge/shared-types": "7.8.3",
|
||||||
"@electron-forge/template-base": "7.8.1",
|
"@electron-forge/template-base": "7.8.3",
|
||||||
"fs-extra": "^10.0.0"
|
"fs-extra": "^10.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -417,9 +417,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron-forge/tracer": {
|
"node_modules/@electron-forge/tracer": {
|
||||||
"version": "7.8.1",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.8.3.tgz",
|
||||||
"integrity": "sha512-r2i7aHVp2fylGQSPDw3aTcdNfVX9cpL1iL2MKHrCRNwgrfR+nryGYg434T745GGm1rNQIv5Egdkh5G9xf00oWA==",
|
"integrity": "sha512-YVVDaPEUOvR1z+DDdj8wR/vO9OSlC91wz4/2Iqe9rqQz8sztnnQBClMAZTqu9bkDTFyHrns8j8v7tPVuVS6ULQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -678,9 +678,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron/packager": {
|
"node_modules/@electron/packager": {
|
||||||
"version": "18.3.6",
|
"version": "18.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@electron/packager/-/packager-18.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/@electron/packager/-/packager-18.4.0.tgz",
|
||||||
"integrity": "sha512-1eXHB5t+SQKvUiDpWGpvr90ZSSbXj+isrh3YbjCTjKT4bE4SQrKSBfukEAaBvp67+GXHFtCHjQgN9qSTFIge+Q==",
|
"integrity": "sha512-Ge1wQWRUZShKDeUPiamOPo44mipX4bosfBgul2x0PiMDXW09/IGftDphatoT+kAhsuLRBOKTLIe9VsDNk5MzZw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BSD-2-Clause",
|
"license": "BSD-2-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -699,6 +699,7 @@
|
|||||||
"junk": "^3.1.0",
|
"junk": "^3.1.0",
|
||||||
"parse-author": "^2.0.0",
|
"parse-author": "^2.0.0",
|
||||||
"plist": "^3.0.0",
|
"plist": "^3.0.0",
|
||||||
|
"prettier": "^3.4.2",
|
||||||
"resedit": "^2.0.0",
|
"resedit": "^2.0.0",
|
||||||
"resolve": "^1.1.6",
|
"resolve": "^1.1.6",
|
||||||
"semver": "^7.1.3",
|
"semver": "^7.1.3",
|
||||||
@@ -715,9 +716,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron/packager/node_modules/fs-extra": {
|
"node_modules/@electron/packager/node_modules/fs-extra": {
|
||||||
"version": "11.3.0",
|
"version": "11.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz",
|
||||||
"integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
|
"integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -788,9 +789,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron/universal/node_modules/fs-extra": {
|
"node_modules/@electron/universal/node_modules/fs-extra": {
|
||||||
"version": "11.3.0",
|
"version": "11.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz",
|
||||||
"integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
|
"integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -839,9 +840,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@electron/windows-sign/node_modules/fs-extra": {
|
"node_modules/@electron/windows-sign/node_modules/fs-extra": {
|
||||||
"version": "11.3.0",
|
"version": "11.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz",
|
||||||
"integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
|
"integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1153,9 +1154,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "22.16.0",
|
"version": "22.17.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz",
|
||||||
"integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==",
|
"integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1247,9 +1248,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/agent-base": {
|
"node_modules/agent-base": {
|
||||||
"version": "7.1.3",
|
"version": "7.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
|
||||||
"integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
|
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -1535,9 +1536,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/app-builder-lib/node_modules/@electron/universal/node_modules/fs-extra": {
|
"node_modules/app-builder-lib/node_modules/@electron/universal/node_modules/fs-extra": {
|
||||||
"version": "11.3.0",
|
"version": "11.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz",
|
||||||
"integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
|
"integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -2792,9 +2793,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron": {
|
"node_modules/electron": {
|
||||||
"version": "37.1.0",
|
"version": "37.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/electron/-/electron-37.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/electron/-/electron-37.2.6.tgz",
|
||||||
"integrity": "sha512-Fcr3yfAw4oU392waVZSlrFUQx4P+h/k31+PRgkBY9tFx9E/zxzdPQQj0achZlG1HRDusw3ooQB+OXb9PvufdzA==",
|
"integrity": "sha512-Ns6xyxE+hIK5UlujtRlw7w4e2Ju/ImCWXf1Q/PoOhc0N3/6SN6YW7+ujCarsHbxWnolbW+1RlkHtdklUJpjbPA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -3976,9 +3977,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/form-data": {
|
"node_modules/form-data": {
|
||||||
"version": "4.0.3",
|
"version": "4.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
|
||||||
"integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
|
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4622,15 +4623,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ip-address": {
|
"node_modules/ip-address": {
|
||||||
"version": "9.0.5",
|
"version": "10.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
|
||||||
"integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
|
"integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
|
||||||
"jsbn": "1.1.0",
|
|
||||||
"sprintf-js": "^1.1.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 12"
|
"node": ">= 12"
|
||||||
}
|
}
|
||||||
@@ -4806,16 +4803,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jake": {
|
"node_modules/jake": {
|
||||||
"version": "10.9.2",
|
"version": "10.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
|
"resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz",
|
||||||
"integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
|
"integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"async": "^3.2.3",
|
"async": "^3.2.6",
|
||||||
"chalk": "^4.0.2",
|
|
||||||
"filelist": "^1.0.4",
|
"filelist": "^1.0.4",
|
||||||
"minimatch": "^3.1.2"
|
"picocolors": "^1.1.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"jake": "bin/cli.js"
|
"jake": "bin/cli.js"
|
||||||
@@ -4825,9 +4821,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jiti": {
|
"node_modules/jiti": {
|
||||||
"version": "2.4.2",
|
"version": "2.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz",
|
||||||
"integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
|
"integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -4847,13 +4843,6 @@
|
|||||||
"js-yaml": "bin/js-yaml.js"
|
"js-yaml": "bin/js-yaml.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jsbn": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
|
|
||||||
"integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/json-buffer": {
|
"node_modules/json-buffer": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
||||||
@@ -4890,9 +4879,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jsonfile": {
|
"node_modules/jsonfile": {
|
||||||
"version": "6.1.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
|
||||||
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
"integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -6150,6 +6139,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/picocolors": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC"
|
||||||
|
},
|
||||||
"node_modules/picomatch": {
|
"node_modules/picomatch": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||||
@@ -6214,6 +6210,22 @@
|
|||||||
"node": "^12.20.0 || >=14"
|
"node": "^12.20.0 || >=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/prettier": {
|
||||||
|
"version": "3.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
|
||||||
|
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"prettier": "bin/prettier.cjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/proc-log": {
|
"node_modules/proc-log": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz",
|
||||||
@@ -6989,13 +7001,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/socks": {
|
"node_modules/socks": {
|
||||||
"version": "2.8.5",
|
"version": "2.8.7",
|
||||||
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.5.tgz",
|
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz",
|
||||||
"integrity": "sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww==",
|
"integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ip-address": "^9.0.5",
|
"ip-address": "^10.0.1",
|
||||||
"smart-buffer": "^4.2.0"
|
"smart-buffer": "^4.2.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -7082,9 +7094,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/spdx-license-ids": {
|
"node_modules/spdx-license-ids": {
|
||||||
"version": "3.0.21",
|
"version": "3.0.22",
|
||||||
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
|
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
|
||||||
"integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
|
"integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "CC0-1.0"
|
"license": "CC0-1.0"
|
||||||
},
|
},
|
||||||
@@ -7093,7 +7105,8 @@
|
|||||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
|
||||||
"integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
|
"integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BSD-3-Clause"
|
"license": "BSD-3-Clause",
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/ssri": {
|
"node_modules/ssri": {
|
||||||
"version": "9.0.1",
|
"version": "9.0.1",
|
||||||
@@ -7466,9 +7479,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/tmp": {
|
"node_modules/tmp": {
|
||||||
"version": "0.2.3",
|
"version": "0.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
|
||||||
"integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
|
"integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -7584,9 +7597,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.8.3",
|
"version": "5.9.2",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
|
||||||
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
|
"integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "freedom-loader",
|
"name": "freedom-loader",
|
||||||
"productName": "Freedom Loader",
|
"productName": "Freedom Loader",
|
||||||
"version": "1.0.2",
|
"version": "1.1.2",
|
||||||
"author": "MasterAcnolo",
|
"author": "MasterAcnolo",
|
||||||
"description": "Freedom Loader, parce que nous le valons bien",
|
"description": "Freedom Loader, parce que nous le valons bien",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
@@ -43,6 +43,12 @@
|
|||||||
"buildResources": "build"
|
"buildResources": "build"
|
||||||
},
|
},
|
||||||
"asar": false,
|
"asar": false,
|
||||||
|
"extraResources": [
|
||||||
|
{
|
||||||
|
"from": "build/confirm-icon.png",
|
||||||
|
"to": "confirm-icon.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
"win": {
|
"win": {
|
||||||
"target": "nsis",
|
"target": "nsis",
|
||||||
"icon": "build/installer-icon.ico"
|
"icon": "build/installer-icon.ico"
|
||||||
|
|||||||
@@ -20,12 +20,23 @@ const { createLogger, format, transports } = require("winston");
|
|||||||
const DailyRotateFile = require("winston-daily-rotate-file");
|
const DailyRotateFile = require("winston-daily-rotate-file");
|
||||||
const fs = require("fs"); // Pour vérifier/créer le dossier de logs
|
const fs = require("fs"); // Pour vérifier/créer le dossier de logs
|
||||||
const path = require("path"); // Pour gérer proprement les chemins
|
const path = require("path"); // Pour gérer proprement les chemins
|
||||||
|
const os = require("os"); // Pour gérer les chemins aussi
|
||||||
|
|
||||||
// Définition du dossier où seront stockés les logs
|
// Définition du dossier où seront stockés les logs
|
||||||
const logDir = path.join(__dirname, "../logs");
|
// const logDir = path.join(__dirname, "../logs"); Désactivé parce que cela requiert d'exec en admin mode. Donc pas pratique pour les gens
|
||||||
|
|
||||||
|
let logDir;
|
||||||
|
if (process.platform === "win32") {
|
||||||
|
logDir = path.join(os.homedir(), "AppData", "Local", "FreedomLoader", "logs");
|
||||||
|
} else {
|
||||||
|
logDir = path.join(os.homedir(), ".freedomloader", "logs");
|
||||||
|
}
|
||||||
|
|
||||||
// Création du dossier logs s’il n’existe pas encore
|
// Création du dossier logs s’il n’existe pas encore
|
||||||
if (!fs.existsSync(logDir)) fs.mkdirSync(logDir);
|
//if (!fs.existsSync(logDir)) fs.mkdirSync(logDir); OBSOLETE
|
||||||
|
|
||||||
|
fs.mkdirSync(logDir, { recursive: true }); // Evite les erreurs
|
||||||
|
|
||||||
|
|
||||||
// Fonction utilitaire pour générer une ligne indiquant le début d’une session de logs
|
// Fonction utilitaire pour générer une ligne indiquant le début d’une session de logs
|
||||||
function getSessionStartLine() {
|
function getSessionStartLine() {
|
||||||
@@ -95,4 +106,5 @@ module.exports = {
|
|||||||
logger,
|
logger,
|
||||||
logSessionStart,
|
logSessionStart,
|
||||||
logSessionEnd,
|
logSessionEnd,
|
||||||
|
logDir,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,11 +18,12 @@ const router = express.Router();
|
|||||||
const { execFile } = require("child_process");
|
const { execFile } = require("child_process");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
|
const { Notification } = require("electron");
|
||||||
const logger = require("../logger").logger;
|
const logger = require("../logger").logger;
|
||||||
|
|
||||||
// Path vers le fichier exécutable yt-dlp (outil tiers pour le téléchargement)
|
// Path vers le fichier exécutable yt-dlp (outil tiers pour le téléchargement)
|
||||||
const ytDlpPath = path.join(__dirname, '../../yt-dlp.exe');
|
// const ytDlpPath = path.join(__dirname, '../../yt-dlp.exe');
|
||||||
|
const ytDlpPath = path.join(__dirname, '../../yt-dlp 2025.06.30.exe');
|
||||||
|
|
||||||
router.post("/", (req, res) => {
|
router.post("/", (req, res) => {
|
||||||
try {
|
try {
|
||||||
@@ -76,12 +77,14 @@ router.post("/", (req, res) => {
|
|||||||
// --no-continue pour forcer un téléchargement propre
|
// --no-continue pour forcer un téléchargement propre
|
||||||
// --restrict-filenames pour éviter les caractères problématiques dans les noms
|
// --restrict-filenames pour éviter les caractères problématiques dans les noms
|
||||||
const args = ["--no-continue", "--restrict-filenames"];
|
const args = ["--no-continue", "--restrict-filenames"];
|
||||||
|
args.push("--concurrent-fragments", "8"); // Permet de télécharger plusieurs fragments en parallèle pour accélérer le processus
|
||||||
|
|
||||||
// Si l'option audioOnly est activée, on ajoute les flags pour extraction audio en mp3
|
// Si l'option audioOnly est activée, on ajoute les flags pour extraction audio en mp3
|
||||||
if (options.audioOnly) {
|
if (options.audioOnly) {
|
||||||
args.push("--extract-audio", "--audio-format", "mp3");
|
args.push("-f", "bestaudio", "--extract-audio", "--audio-format", "mp3");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Correspondance entre la qualité choisie et le format à demander à yt-dlp
|
// Correspondance entre la qualité choisie et le format à demander à yt-dlp
|
||||||
const qualityMap = {
|
const qualityMap = {
|
||||||
best: "bestvideo+bestaudio/best",
|
best: "bestvideo+bestaudio/best",
|
||||||
@@ -144,6 +147,25 @@ router.post("/", (req, res) => {
|
|||||||
child.on("close", (code) => {
|
child.on("close", (code) => {
|
||||||
logger.info(`yt-dlp terminé avec code de sortie : ${code}`);
|
logger.info(`yt-dlp terminé avec code de sortie : ${code}`);
|
||||||
if (code === 0) {
|
if (code === 0) {
|
||||||
|
|
||||||
|
const iconPath = path.join(process.resourcesPath, "confirm-icon.png"); // la sécurité pour toutes les machines
|
||||||
|
|
||||||
|
console.log("Icon path pour la notif :", iconPath);
|
||||||
|
|
||||||
|
const notif = new Notification({
|
||||||
|
title: "Freedom Loader",
|
||||||
|
body: "Ton téléchargement est terminé, clique ici pour l'ouvrir.",
|
||||||
|
icon: iconPath,
|
||||||
|
});
|
||||||
|
|
||||||
|
notif.on("click", () => {
|
||||||
|
console.log("Notification cliquée !");
|
||||||
|
//Pour pouvoir ouvrir le dossier de la vidéo
|
||||||
|
const { shell } = require("electron");
|
||||||
|
shell.openPath(requestedOutputFolder);
|
||||||
|
});
|
||||||
|
|
||||||
|
notif.show();
|
||||||
res.send("✅ Téléchargement terminé !");
|
res.send("✅ Téléchargement terminé !");
|
||||||
} else {
|
} else {
|
||||||
res.status(500).send(`❌ yt-dlp a échoué avec le code : ${code}`);
|
res.status(500).send(`❌ yt-dlp a échoué avec le code : ${code}`);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ const fs = require("fs");
|
|||||||
const { logger } = require("../logger"); // On récupère ton logger Winston
|
const { logger } = require("../logger"); // On récupère ton logger Winston
|
||||||
|
|
||||||
// Path absolu vers l'exécutable yt-dlp
|
// Path absolu vers l'exécutable yt-dlp
|
||||||
const ytDlpPath = path.join(__dirname, "../../yt-dlp.exe");
|
const ytDlpPath = path.join(__dirname, '../../yt-dlp 2025.06.30.exe');
|
||||||
|
|
||||||
// Vérification que yt-dlp.exe existe bien au lancement du module
|
// Vérification que yt-dlp.exe existe bien au lancement du module
|
||||||
if (!fs.existsSync(ytDlpPath)) {
|
if (!fs.existsSync(ytDlpPath)) {
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user