From 3d38fea6c5d2f472f9dd8986ac5d9c923479b491 Mon Sep 17 00:00:00 2001 From: Raphix Date: Sat, 29 Apr 2023 19:03:19 +0200 Subject: [PATCH] 2.0.2 PreRelease Version --- package-lock.json | 91 ++++++++++++++++++++++++++++++------ package.json | 3 +- templates/update/update.css | 26 ++++++++++- templates/update/update.html | 5 +- templates/update/update.js | 19 +++++++- updatetools.js | 59 +++++++++++++++++++---- 6 files changed, 174 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0a0dac..6452efa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,16 @@ { "name": "subsonics-manager", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "subsonics-manager", - "version": "2.0.0", + "version": "2.0.1", "license": "ISC", "dependencies": { "decompress": "^4.2.1", + "fs-extra": "^11.1.1", "socket.io-client": "^4.6.1" }, "devDependencies": { @@ -56,6 +57,20 @@ "global-agent": "^3.0.0" } }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/@electron/notarize": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-1.2.3.tgz", @@ -1031,17 +1046,35 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=14.14" + } + }, + "node_modules/fs-extra/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" } }, "node_modules/fs.realpath": { @@ -2389,6 +2422,19 @@ "progress": "^2.0.3", "semver": "^6.2.0", "sumchecker": "^3.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } } }, "@electron/notarize": { @@ -3125,14 +3171,29 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "dependencies": { + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } } }, "fs.realpath": { diff --git a/package.json b/package.json index f19c30b..d4a4d55 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "subsonics-manager", - "version": "2.0.1", + "version": "2.0.2", "description": "Manager for subsonics", "main": "main.js", "scripts": { @@ -17,6 +17,7 @@ "license": "ISC", "dependencies": { "decompress": "^4.2.1", + "fs-extra": "^11.1.1", "socket.io-client": "^4.6.1" }, "devDependencies": { diff --git a/templates/update/update.css b/templates/update/update.css index 682f14f..35ee830 100644 --- a/templates/update/update.css +++ b/templates/update/update.css @@ -60,4 +60,28 @@ -webkit-transform: rotate(360deg); transform: rotate(360deg); } -} \ No newline at end of file +} + +.buttonTryAgain { + + font-family: 'Open Sans', sans-serif !important; + background-color: transparent; + border: solid; + border-radius: 15px; + padding: 2%; + border-color: rgb(46, 196, 255); + color: white; + transition: all 0.2s ease 0s; +} + +.buttonTryAgain:hover { + + color: black; + background-color: rgb(46, 196, 255); + box-shadow: 2px 2px 5px rgb(46, 196, 255); +} + +.buttonTryAgain:active { + + background-color: transparent; +} diff --git a/templates/update/update.html b/templates/update/update.html index 59af1fd..a462ca8 100644 --- a/templates/update/update.html +++ b/templates/update/update.html @@ -20,9 +20,10 @@

Mise à jour de l'application


-

Veuillez patienter pendant que l'application se met à jour !

+

Veuillez patienter pendant que l'application se met à jour !

Submanager - Version :

- + + diff --git a/templates/update/update.js b/templates/update/update.js index b707fc9..4968bcc 100644 --- a/templates/update/update.js +++ b/templates/update/update.js @@ -3,10 +3,27 @@ const packageJson = require("../../package.json") const ipc = ipcRenderer; const fs = require("fs") -const minimizeBtn = document.getElementById("minimizeBtn") +const loadingSpan = document.getElementById("loadingSpan") +const infoSpan = document.getElementById("infoSpan") +const load = document.getElementById("load") document.getElementById("version").innerHTML = packageJson.version +ipc.on("error", () => { + + loadingSpan.innerHTML = "" + load.innerHTML = "" + infoSpan.innerHTML = 'Une erreur est apparu lors de la mise à jour, fermez puis relancez !' + const close = document.getElementById("close") + close.addEventListener("click", () => { + + ipc.send("close") + }) + + +}) + + diff --git a/updatetools.js b/updatetools.js index 9996ccd..1fef089 100644 --- a/updatetools.js +++ b/updatetools.js @@ -1,7 +1,8 @@ const log = require("./sublog") -const { BrowserWindow, app } = require("electron") +const { BrowserWindow, app, ipcMain } = require("electron") const https = require('https'); const fs = require('fs'); +const fse = require('fs-extra'); const BWin = BrowserWindow const path = require("path") const decompress = require('decompress'); @@ -11,7 +12,7 @@ module.exports.checkUpdate = () => { log.update("Verification des mises a jour ... Processing !") - fetch("https://git.raphix.fr/subsonics/manager/raw/branch/main/package.json").then(resp => resp.json()).then(resp => checkUpdateProcessing(resp)).catch(err => log.update("Erreur lors de la verification des mises a jour !")) + fetch("https://git.raphix.fr/subsonics/manager/raw/branch/main/package.json").catch(err => catchError(err)).then(resp => resp.json()).then(resp => checkUpdateProcessing(resp)) } function checkUpdateProcessing(serverPackage) { @@ -37,7 +38,12 @@ function update() { const win = BWin.getFocusedWindow() win.loadFile("templates/update/update.html") - log.update("Téléchargement de la mise à jour ... Processing !") + ipcMain.on("close", () => { + + app.quit() + }) + + log.update("Telechargement de la mise à jour ... Processing !") if(fs.existsSync(__dirname + path.sep + "update.tar.gz")) { @@ -45,18 +51,28 @@ function update() { } const updatePack = fs.createWriteStream(__dirname + path.sep + "update.tar.gz"); - const request = http.get("https://git.raphix.fr/subsonics/manager/archive/main.tar.gz", function(response) { - response.pipe(file); + const request = https.get("https://git.raphix.fr/subsonics/manager/archive/main.tar.gz", function(response) { + response.pipe(updatePack); // after download completed close filestream updatePack.on("finish", () => { updatePack.close(); - log.update("Téléchargement de la mise à jour ... Finish !") + log.update("Telechargement de la mise à jour ... Finish !") install(__dirname + path.sep + "update.tar.gz") }); + updatePack.on("error", (err) => { + log.update("Erreur lors du telechargement de la mise à jour !") + updatePack.close(); + console.log(err) + + + }) + + + }); @@ -64,8 +80,33 @@ function update() { } function install(filename) { - decompress(filename, 'tmp').then(files => { - console.log('done!'); - }); + + log.update("Extraction de la mise à jour ... Processing !") + decompress(filename, __dirname).then(files => { + log.update("Extraction de la mise à jour ... Finish !") + log.update("Installation de la mise à jour ... Processing !") + fse.copy(__dirname + path.sep + "manager", __dirname, { overwrite: true }, () => { + fs.rmdirSync(__dirname + path.sep + "manager", { recursive: true, force: true }) + log.update("Installation de la mise à jour ... Finish !") + log.update("Rédémarrage de l'application.") + app.relaunch() + app.exit() + }) + + }).catch(err => catchError(err, true)); + + + + +} + +function catchError(err, inUp) { + log.update("Erreur lors de la verification des mises a jour !") + log.update(err) + + if(inUp == true) { + win.webContents.send("error") + + } } \ No newline at end of file