From 0f33fda3600b55395c553b9923cf440a2f53f5f0 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Mon, 4 Dec 2023 17:43:39 +0100 Subject: [PATCH] [bugfix] Don't download map already installed when installing a playlist --- .../local-maps-manager.service.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/services/additional-content/local-maps-manager.service.ts b/src/main/services/additional-content/local-maps-manager.service.ts index 426393d2..0fdf040c 100644 --- a/src/main/services/additional-content/local-maps-manager.service.ts +++ b/src/main/services/additional-content/local-maps-manager.service.ts @@ -252,17 +252,24 @@ export class LocalMapsManagerService { } const zipUrl = map.versions.at(0).downloadURL; - + const mapFolderName = sanitize(`${map.id}-${map.name}`); const mapsFolder = await this.getMapsFolderPath(version); + const installedMap = await this.loadMapInfoFromPath(path.join(mapsFolder, mapFolderName)).catch(e => { + log.error("loadMapInfoFromPath", e); + return null; + }); + + if(map.versions.every(version => version.hash === installedMap?.hash)) { + return installedMap; + } + const { zip, zipPath } = await this.downloadMapZip(zipUrl); if (!zip) { throw `Cannot download ${zipUrl}`; } - const mapFolderName = sanitize(`${map.id}-${map.name}`); - const mapPath = path.join(mapsFolder, mapFolderName); await ensureFolderExist(mapPath);