Merge pull request 'chore: prune old update files, fix update dialog' (#17) from dev into master

Reviewed-on: #17
This commit is contained in:
HorizonCode 2024-04-23 07:08:24 +00:00
commit 86c9bc4a60
7 changed files with 39 additions and 19 deletions

View File

@ -1,4 +1,4 @@
const appName = "EZPPLauncher";
const appVersion = "2.1.5";
const appVersion = "2.1.6";
module.exports = { appName, appVersion };

View File

@ -271,6 +271,21 @@ async function downloadEZPPLauncherUpdateFiles(osuPath, updateFiles) {
const eventEmitter = new EventEmitter();
const startDownload = async () => {
//NOTE: delete files that are not in the updateFiles array
const foldersToPrune = updateFiles.map(file => path.dirname(path.join(osuPath, ...file.folder.split("/"), file.name))).filter((folder, index, self) => self.indexOf(folder) === index);
for (const pruneFolder of foldersToPrune) {
//NOTE: check if the folder is not the osu root folder.
if (path.basename(pruneFolder) == "osu!")
continue;
for (const files of await fs.promises.readdir(pruneFolder)) {
const filePath = path.join(pruneFolder, files);
if (!updateFiles.some(file => path.join(osuPath, ...file.folder.split("/"), file.name) === filePath)) {
await fs.promises.rm(filePath, { recursive: true, force: true });
}
}
}
for (const updateFile of updateFiles) {
try {
const filePath = path.join(

23
main.js
View File

@ -430,6 +430,12 @@ function registerIPCPipes() {
return config.all();
});
ipcMain.handle("ezpplauncher:checkUpdate", async (e) => {
const updateInfo = await updateAvailable();
if (updateInfo.update)
mainWindow.webContents.send("ezpplauncher:update", updateInfo.release);
});
ipcMain.handle("ezpplauncher:exitAndUpdate", async (e) => {
await shell.openExternal(releasesUrl);
app.exit();
@ -523,9 +529,8 @@ function registerIPCPipes() {
progress: Math.ceil(data.progress),
});
mainWindow.webContents.send("ezpplauncher:launchstatus", {
status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${
formatBytes(data.total)
})...`,
status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${formatBytes(data.total)
})...`,
});
});
await updateDownloader.startDownload();
@ -578,9 +583,8 @@ function registerIPCPipes() {
progress: Math.ceil(data.progress),
});
mainWindow.webContents.send("ezpplauncher:launchstatus", {
status: `Downloading ${data.fileName}(${
formatBytes(data.loaded)
}/${formatBytes(data.total)})...`,
status: `Downloading ${data.fileName}(${formatBytes(data.loaded)
}/${formatBytes(data.total)})...`,
});
});
await patcherDownloader.startDownload();
@ -714,8 +718,7 @@ function registerIPCPipes() {
const osuGameplayFile = path.join(osuPath, "osu!gameplay.dll");
if (isWritable(osuUIFile) && isWritable(osuGameplayFile)) {
logger.log(
`Cleanup complete, took ${
((performance.now() - timeStart) / 1000).toFixed(3)
`Cleanup complete, took ${((performance.now() - timeStart) / 1000).toFixed(3)
} seconds.`,
);
clearInterval(cleanup);
@ -819,10 +822,6 @@ function createWindow() {
// Emitted when the window is ready to be shown
// This helps in showing the window gracefully.
mainWindow.once("ready-to-show", async () => {
const updateInfo = await updateAvailable();
if (updateInfo.update) {
mainWindow.webContents.send("ezpplauncher:update", updateInfo.release);
}
mainWindow.show();
mainWindow.focus();
});

8
package-lock.json generated
View File

@ -24,7 +24,7 @@
"regedit-rs": "^1.0.2",
"semver": "^7.5.4",
"svelte-french-toast": "^1.2.0",
"sweetalert2": "^11.10.3",
"sweetalert2": "^11.10.8",
"systeminformation": "^5.21.22"
},
"devDependencies": {
@ -8533,9 +8533,9 @@
"dev": true
},
"node_modules/sweetalert2": {
"version": "11.10.7",
"resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.7.tgz",
"integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg==",
"version": "11.10.8",
"resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.8.tgz",
"integrity": "sha512-oAkYROBfXBY+4sVbQEIcN+ZxAx69lsmz5WEBwdEpyS4m59vOBNlRU5/fJpAI1MVfiDwFZiGwVzB/KBpOyfLNtg==",
"funding": {
"type": "individual",
"url": "https://github.com/sponsors/limonte"

View File

@ -1,6 +1,6 @@
{
"name": "ezpplauncher-next",
"version": "2.1.5",
"version": "2.1.6",
"description": "EZPPLauncher rewritten with Svelte.",
"private": false,
"license": "MIT",
@ -51,7 +51,7 @@
"regedit-rs": "^1.0.2",
"semver": "^7.5.4",
"svelte-french-toast": "^1.2.0",
"sweetalert2": "^11.10.3",
"sweetalert2": "^11.10.8",
"systeminformation": "^5.21.22"
},
"devDependencies": {

View File

@ -82,6 +82,10 @@ window.addEventListener("settings-set", async (e) => {
await ipcRenderer.invoke("ezpplauncher:settings-set", e.detail);
});
window.addEventListener("updateCheck", async () => {
await ipcRenderer.invoke("ezpplauncher:checkUpdate");
})
window.addEventListener("updateExit", async () => {
await ipcRenderer.invoke("ezpplauncher:exitAndUpdate");
});

View File

@ -66,6 +66,8 @@
window.dispatchEvent(new CustomEvent("updateExit"));
});
window.dispatchEvent(new CustomEvent("updateCheck"));
window.addEventListener("open-settings", (e) => {
currentPage.set(Page.Settings);
});