From 195220d7e016310eeb3e4622cb944bb1df5128d7 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 19 Feb 2022 17:06:08 +0200 Subject: [PATCH] 2.2.0 (pre-release) * This version will be released after all the locales will be updated - added `HDiffPatch` class to work with HDiffPatch (https://github.com/sisong/HDiffPatch) - added 2 new launcher states + game-files-changes-applying-required + game-outdated-files-deletion-required - added `.hdiff` files changes applying - updated dependencies From previous commits: - fixed an issue with log files' name generation It seems that on some specific file systems(?) `stat -c '%W' ` returns `0` as a file creation timestamp - updated Italian --- neutralino.config.json | 2 +- package.json | 10 +- public/hdiffpatch/LICENSE | 48 +++++++++ public/hdiffpatch/hpatchz | Bin 0 -> 277384 bytes public/locales/de-de.yaml | 14 +++ public/locales/en-us.yaml | 14 +++ public/locales/es-es.yaml | 14 +++ public/locales/fr-fr.yaml | 14 +++ public/locales/hu-hu.yaml | 14 +++ public/locales/id-id.yaml | 14 +++ public/locales/it-it.yaml | 14 +++ public/locales/nb-no.yaml | 14 +++ public/locales/ru-ru.yaml | 14 +++ public/locales/uwu.yaml | 14 +++ scripts/bundle-appimage.cjs | 2 +- src/ts/core/HDiffPatch.ts | 23 ++++ src/ts/launcher/State.ts | 127 ++++++++++++++--------- src/ts/launcher/states/ApplyChanges.ts | 95 +++++++++++++++++ src/ts/launcher/states/Install.ts | 80 +++++--------- src/ts/launcher/states/RemoveOutdated.ts | 56 ++++++++++ src/ts/types/Launcher.ts | 2 + 21 files changed, 473 insertions(+), 112 deletions(-) create mode 100644 public/hdiffpatch/LICENSE create mode 100755 public/hdiffpatch/hpatchz create mode 100644 src/ts/core/HDiffPatch.ts create mode 100644 src/ts/launcher/states/ApplyChanges.ts create mode 100644 src/ts/launcher/states/RemoveOutdated.ts diff --git a/neutralino.config.json b/neutralino.config.json index bfdba11..bf29705 100644 --- a/neutralino.config.json +++ b/neutralino.config.json @@ -1,6 +1,6 @@ { "applicationId": "com.gitlab.KRypt0n_.an-anime-game-launcher", - "version": "2.1.5", + "version": "2.2.0", "defaultMode": "window", "port": 0, "documentRoot": "/bundle/", diff --git a/package.json b/package.json index d17ff16..a1612d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "an-anime-game-launcher", - "version": "2.1.5", + "version": "2.2.0", "license": "GPL-3.0", "type": "module", "scripts": { @@ -18,17 +18,17 @@ "yaml": "^1.10.2" }, "devDependencies": { - "@neutralinojs/neu": "^9.1.2", + "@neutralinojs/neu": "^9.2.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.37", "@tsconfig/svelte": "^3.0.0", "@types/js-md5": "^0.4.3", "neutralino-appimage-bundler": "^1.3.2", - "sass": "^1.49.7", + "sass": "^1.49.8", "svelte": "^3.46.4", - "svelte-check": "^2.4.3", + "svelte-check": "^2.4.5", "svelte-preprocess": "^4.10.3", "tslib": "^2.3.1", "typescript": "^4.5.5", - "vite": "^2.8.2" + "vite": "^2.8.4" } } diff --git a/public/hdiffpatch/LICENSE b/public/hdiffpatch/LICENSE new file mode 100644 index 0000000..a289e34 --- /dev/null +++ b/public/hdiffpatch/LICENSE @@ -0,0 +1,48 @@ +MIT License + +HDiffPatch +Copyright (c) 2012-2021 housisong + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------------------------------------------------------------------------- + +libdivsufsort +Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/public/hdiffpatch/hpatchz b/public/hdiffpatch/hpatchz new file mode 100755 index 0000000000000000000000000000000000000000..7f89ceca8cf2872d17f9be4c7220c2eef31679be GIT binary patch literal 277384 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

=s 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�Inyf2D*=UW;Z^|@ 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∨%hMW0Tjhkt# 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�h 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 WlMhYZ`9;4k^?#6$#IvC@=>GxI`yU1X literal 0 HcmV?d00001 diff --git a/public/locales/de-de.yaml b/public/locales/de-de.yaml index 412212b..b770f6e 100644 --- a/public/locales/de-de.yaml +++ b/public/locales/de-de.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Spiel ist am herunterladen... unpacking: Spiel wird entpackt... + applying_changes: Änderungen werden angewandt... deleting_outdated: Lösche veraltete dateien... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: DXVK installieren install: Installieren update: Updaten + + apply_changes: + title: Änderungen anwenden + hint: hdiff-Änderungen an den Spieldateien anwenden + + remove_outdated: + title: Alte Dateien löschen + hint: Veraltete Dateien löschen # When the game should be patched patching: @@ -292,6 +301,11 @@ notifications: title: An Anime Game Launcher body: Alle Patch-Repositories sind nicht verfügbar. Sie können das Spiel starten aber der Launcher kann sich nicht sicher sein dass es gepatcht ist. + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: Ein Fehler geschah, während das Spiel aktualisiert wurde + body: '{files} Dateien konnten nicht aktualisiert werden' + # ToS violation warning window tos_violation: title: ToS-Verletzungswarnung diff --git a/public/locales/en-us.yaml b/public/locales/en-us.yaml index 97e05bc..fe485f6 100644 --- a/public/locales/en-us.yaml +++ b/public/locales/en-us.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Downloading game... unpacking: Unpacking game... + applying_changes: Applying changes... deleting_outdated: Deleting outdated files... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: Install DXVK install: Install update: Update + + apply_changes: + title: Apply changes + hint: Apply hdiff changes to the game files + + remove_outdated: + title: Remove outdated + hint: Remove outdated game files # When the game should be patched patching: @@ -291,6 +300,11 @@ notifications: title: An Anime Game Launcher body: None of the patch repositories are available. You'll be able to run the game, but launcher can't be sure is it patched properly + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: An error occurred during game updating + body: '{files} files couldn''t be updated by the hdiff patch' + # ToS violation warning window tos_violation: title: ToS violation warning diff --git a/public/locales/es-es.yaml b/public/locales/es-es.yaml index 92eb860..4e79f57 100644 --- a/public/locales/es-es.yaml +++ b/public/locales/es-es.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Descargando el juego... unpacking: Descomprimiendo el juego... + applying_changes: Applying changes... deleting_outdated: Borrando archivos viejos... # Instalación de paquetes de voz @@ -39,6 +40,14 @@ launcher: install_dxvk: Instalar DXVK install: Instalar update: Actualizar + + apply_changes: + title: Apply changes + hint: Apply hdiff changes to the game files + + remove_outdated: + title: Remove outdated + hint: Remove outdated game files # Cuando el juego debe ser parcheado patching: @@ -290,6 +299,11 @@ notifications: title: An Anime Game Launcher body: Ninguno de los repositorios del parche está disponible. Podrás ejecutar el juego, pero no podemos asegurar que el parche esté aplicado correctamente + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: An error occurred during game updating + body: '{files} files couldn''t be updated by the hdiff patch' + # ToS violation warning window tos_violation: title: Advertencia de violación de ToS diff --git a/public/locales/fr-fr.yaml b/public/locales/fr-fr.yaml index 27845c4..cefca77 100644 --- a/public/locales/fr-fr.yaml +++ b/public/locales/fr-fr.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Téléchargement du jeu... unpacking: Décompression du jeu... + applying_changes: Applying changes... deleting_outdated: Suppression des fichiers non à jour... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: Installer DXVK install: Installer update: Mise à jour + + apply_changes: + title: Apply changes + hint: Apply hdiff changes to the game files + + remove_outdated: + title: Remove outdated + hint: Remove outdated game files # When the game should be patched patching: @@ -299,6 +308,11 @@ notifications: title: An Anime Game Launcher body: Pas tous les dépôts des patchs sont disponibles. Vous pouvez lancer le jeu, mais le Launcher ne peut pas garantir que celui-ci est correctement patcher + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: An error occurred during game updating + body: '{files} files couldn''t be updated by the hdiff patch' + # ToS violation warning window tos_violation: title: Violation du contrat d'utilisation diff --git a/public/locales/hu-hu.yaml b/public/locales/hu-hu.yaml index 350b54d..724e757 100644 --- a/public/locales/hu-hu.yaml +++ b/public/locales/hu-hu.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Játék letöltése folyamatban... unpacking: Játék kibontása folyamatban... + applying_changes: Applying changes... deleting_outdated: Lejárt fájlok kitörlése... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: DXVK telepítése install: Telepítés update: Frissítés + + apply_changes: + title: Apply changes + hint: Apply hdiff changes to the game files + + remove_outdated: + title: Remove outdated + hint: Remove outdated game files # When the game should be patched patching: @@ -291,6 +300,11 @@ notifications: title: An Anime Game Launcher body: A patch adattárjai nem elérhetőek. Eltudod indítani a játékot, de a launcher nem tudja meghatározni hogy patch-elve van-e + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: An error occurred during game updating + body: '{files} files couldn''t be updated by the hdiff patch' + # ToS violation warning window tos_violation: title: Felhasználói feltételek megsértése diff --git a/public/locales/id-id.yaml b/public/locales/id-id.yaml index 0c3a4e5..b302ec3 100644 --- a/public/locales/id-id.yaml +++ b/public/locales/id-id.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Mengunduh game... unpacking: Membongkar game... + applying_changes: Applying changes... deleting_outdated: Menghapus file lama... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: Pasang DXVK install: Pasang update: Perbarui + + apply_changes: + title: Apply changes + hint: Apply hdiff changes to the game files + + remove_outdated: + title: Remove outdated + hint: Remove outdated game files # When the game should be patched patching: @@ -291,6 +300,11 @@ notifications: title: An Anime Game Launcher body: Semua repositori patch tidak terseidia. Kamu dapat menjalankan game ini, tetapi peluncur tidak tahu secara pasti pakah patch sudah terpasang dengan benar + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: An error occurred during game updating + body: '{files} files couldn''t be updated by the hdiff patch' + # ToS violation warning window tos_violation: title: Peringatan pelanggaran Ketentuan Layanan (ToS) diff --git a/public/locales/it-it.yaml b/public/locales/it-it.yaml index 0e23430..014e024 100644 --- a/public/locales/it-it.yaml +++ b/public/locales/it-it.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Scaricando il gioco... unpacking: Decomprimendo il gioco... + applying_changes: Applying changes... deleting_outdated: Cancellando file vecchi... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: Installa DXVK install: Installa update: Aggiorna + + apply_changes: + title: Apply changes + hint: Apply hdiff changes to the game files + + remove_outdated: + title: Remove outdated + hint: Remove outdated game files # When the game should be patched patching: @@ -290,6 +299,11 @@ notifications: body: Tutte le repository della patch non sono disponibili. Puoi avviare il gioco, ma il launcher non si può assicurare che la patch è stata applicata correttamente + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: An error occurred during game updating + body: '{files} files couldn''t be updated by the hdiff patch' + # ToS violation warning window tos_violation: title: Avviso di violazione ToS diff --git a/public/locales/nb-no.yaml b/public/locales/nb-no.yaml index f602536..0a745d8 100644 --- a/public/locales/nb-no.yaml +++ b/public/locales/nb-no.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Laster ned spill... unpacking: Pakker ut spill... + applying_changes: Applying changes... deleting_outdated: Fjerner utdaterte filer... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: Installer DXVK install: Installer update: Oppdater + + apply_changes: + title: Apply changes + hint: Apply hdiff changes to the game files + + remove_outdated: + title: Remove outdated + hint: Remove outdated game files # When the game should be patched patching: @@ -291,6 +300,11 @@ notifications: title: An Anime Game Launcher body: Ingen av patch oppbevaringstedene er tilgjengelig. Det er mulig å kjøre spillet, men det er ikke mulig å forsikre seg at spillet er patchet riktig + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: An error occurred during game updating + body: '{files} files couldn''t be updated by the hdiff patch' + # ToS violation warning window tos_violation: title: ToS brudd advarsel diff --git a/public/locales/ru-ru.yaml b/public/locales/ru-ru.yaml index d127ae0..cd2f314 100644 --- a/public/locales/ru-ru.yaml +++ b/public/locales/ru-ru.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: Скачивание игры... unpacking: Распаковка игры... + applying_changes: Применение изменений... deleting_outdated: Удаление устаревших файлов... # Установка звуковых пакетов @@ -40,6 +41,14 @@ launcher: install: Установить update: Обновить + apply_changes: + title: Применить изменения + hint: Применить hdiff изменения к файлам игры + + remove_outdated: + title: Удалить устаревшее + hint: Удалить устаревшие файлы игры + # Когда игра должна быть пропатчена patching: # Патч недоступен @@ -290,6 +299,11 @@ notifications: title: An Anime Game Launcher body: Все репозитории патча недоступны. Вы сможете запустить игру, однако лаунчер не может знать пропатчена ли она корректно + # HDiffPatch не смог успешно применить hdiff патчи к файлам игры + game_changes_applying_error: + title: Возникла ошибка во время обновления игры + body: '{files} файлов не смогли быть обновлены с помощью hdiff патча' + # Окно предупреждения о нарушении условий использования tos_violation: title: Предупреждение о нарушении правил использования diff --git a/public/locales/uwu.yaml b/public/locales/uwu.yaml index 40a27da..0e14123 100644 --- a/public/locales/uwu.yaml +++ b/public/locales/uwu.yaml @@ -23,6 +23,7 @@ launcher: game: downloading: downwoading game... -.- unpacking: unpacking g-game (o^▽^o) + applying_changes: appwying changes... deleting_outdated: deweting outdated fiwes... # Voice packages installation @@ -39,6 +40,14 @@ launcher: install_dxvk: install DXVK (◕ ω ◕✿) install: install update: u-update (/≧ ω\) + + apply_changes: + title: appwy changes + hint: appwy hdiff changes to the game files + + remove_outdated: + title: wemove outdated + hint: wemove outdated game files # When the game should be patched patching: @@ -290,6 +299,11 @@ notifications: title: an anime game waunchew body: a-all the patch wepositowies are not avaiwable. you'll b-be able to wun the game, but waunchew can't be sure is it patched pwopewwy + # HDiffPatch couldn't successfully apply game files changes + game_changes_applying_error: + title: an ewwow o-occuwwed duwing game updating + body: '{files} files couwdn''t b-be updated b-by the hdiff patch' + # ToS violation warning window tos_violation: title: ToS violation warning diff --git a/scripts/bundle-appimage.cjs b/scripts/bundle-appimage.cjs index e4d84d4..162869d 100644 --- a/scripts/bundle-appimage.cjs +++ b/scripts/bundle-appimage.cjs @@ -39,7 +39,7 @@ const bundler = new Bundler({ output: path.join(__dirname, '../dist/An Anime Game Launcher.AppImage'), // Application version - version: '2.1.5' + version: '2.2.0' }); // Bundle project diff --git a/src/ts/core/HDiffPatch.ts b/src/ts/core/HDiffPatch.ts new file mode 100644 index 0000000..eeb74c3 --- /dev/null +++ b/src/ts/core/HDiffPatch.ts @@ -0,0 +1,23 @@ +import { Debug } from '../../empathize'; +import { path } from '../../empathize'; + +declare const Neutralino; + +export default class HDiffPatch +{ + public static patch(file: string, patch: string, output: string): Promise + { + return new Promise(async (resolve) => { + let result = await Neutralino.os.execCommand(`./public/hdiffpatch/hpatchz -f "${path.addSlashes(file)}" "${path.addSlashes(patch)}" "${path.addSlashes(output)}"`); + + result = (result.stdOut ?? result.stdErr).includes('patch ok!'); + + Debug.log({ + function: 'HDiffPatch.patch', + message: { file, patch, output, result } + }); + + resolve(result); + }); + } +}; diff --git a/src/ts/launcher/State.ts b/src/ts/launcher/State.ts index 1ebb732..05c365b 100644 --- a/src/ts/launcher/State.ts +++ b/src/ts/launcher/State.ts @@ -38,6 +38,8 @@ export default class State 'game-installation-available': import('./states/Install'), 'game-update-available': import('./states/Install'), 'game-voice-update-required': import('./states/InstallVoice'), + 'game-files-changes-applying-required': import('./states/ApplyChanges'), + 'game-outdated-files-deletion-required': import('./states/RemoveOutdated'), 'test-patch-available': import('./states/ApplyPatch'), 'patch-available': import('./states/ApplyPatch'), @@ -254,6 +256,20 @@ export default class State break; + case 'game-files-changes-applying-required': + this.launchButton.textContent = dictionary['installation']['apply_changes']['title']; + + this.launchButton.setAttribute('aria-label', dictionary['installation']['apply_changes']['hint']); + + break; + + case 'game-outdated-files-deletion-required': + this.launchButton.textContent = dictionary['installation']['remove_outdated']['title']; + + this.launchButton.setAttribute('aria-label', dictionary['installation']['remove_outdated']['hint']); + + break; + case 'patch-available': this.launchButton.textContent = dictionary['patching']['stable']; @@ -385,67 +401,78 @@ export default class State else { - const installedVoices = await Voice.installed; - const selectedVoices = await Voice.selected; + const gameDir = await constants.paths.gameDir; - let voiceUpdateRequired = installedVoices.length != selectedVoices.length || installedVoices.length === 0; + if (await fs.exists(`${gameDir}/hdifffiles.txt`)) + state = 'game-files-changes-applying-required'; - if (!voiceUpdateRequired) - { - for (const installedVoice of installedVoices) - if (installedVoice.version != gameCurrent || !selectedVoices.includes(installedVoice.lang)) - { - voiceUpdateRequired = true; - - break; - } - } - - // TODO: download default voice language if user removed all of them - if (voiceUpdateRequired) - state = 'game-voice-update-required'; + else if (await fs.exists(`${gameDir}/deletefiles.txt`)) + state = 'game-outdated-files-deletion-required'; else { - try - { - const patch = await Patch.latest; + const installedVoices = await Voice.installed; + const selectedVoices = await Voice.selected; - // If the latest game version is, for example, 2.3.0 - // and the patch is 2.4.0 preparation, it means that - // 2.4.0 will be released soon, but since it's still not released - // we shouldn't show something about it to user and just let him play the game - if (gameLatest.game.latest.version === patch.version && !patch.applied) + let voiceUpdateRequired = installedVoices.length != selectedVoices.length || installedVoices.length === 0; + + if (!voiceUpdateRequired) + { + for (const installedVoice of installedVoices) + if (installedVoice.version != gameCurrent || !selectedVoices.includes(installedVoice.lang)) + { + voiceUpdateRequired = true; + + break; + } + } + + // TODO: download default voice language if user removed all of them + if (voiceUpdateRequired) + state = 'game-voice-update-required'; + + else + { + try { - state = patch.state == 'preparation' ? - 'patch-unavailable' : (patch.state == 'testing' ? - 'test-patch-available' : 'patch-available'); + const patch = await Patch.latest; + + // If the latest game version is, for example, 2.3.0 + // and the patch is 2.4.0 preparation, it means that + // 2.4.0 will be released soon, but since it's still not released + // we shouldn't show something about it to user and just let him play the game + if (gameLatest.game.latest.version === patch.version && !patch.applied) + { + state = patch.state == 'preparation' ? + 'patch-unavailable' : (patch.state == 'testing' ? + 'test-patch-available' : 'patch-available'); + } + + // Patch is more important than game pre-downloading + // because otherwise we will not be able to play the game + else if (gameLatest.pre_download_game && !await Game.isUpdatePredownloaded()) + state = 'game-pre-installation-available'; + + else if (gameLatest.pre_download_game && !await Voice.isUpdatePredownloaded(await Voice.selected)) + state = 'game-voice-pre-installation-available'; + + else state = 'game-launch-available'; } - // Patch is more important than game pre-downloading - // because otherwise we will not be able to play the game - else if (gameLatest.pre_download_game && !await Game.isUpdatePredownloaded()) - state = 'game-pre-installation-available'; + // Patch.latest can throw an error if all of patch's servers + // are not available, and we must notify user about that + catch + { + state = 'game-launch-available'; - else if (gameLatest.pre_download_game && !await Voice.isUpdatePredownloaded(await Voice.selected)) - state = 'game-voice-pre-installation-available'; - - else state = 'game-launch-available'; + Notification.show({ + ...(Locales.translate('notifications.patch_repos_unavailable') as { title: string, body: string }), + icon: `${constants.paths.appDir}/public/images/baal64-transparent.png`, + importance: 'critical' + }); + } } - - // Patch.latest can throw an error if all of patch's servers - // are not available, and we must notify user about that - catch - { - state = 'game-launch-available'; - - Notification.show({ - ...(Locales.translate('notifications.patch_repos_unavailable') as { title: string, body: string }), - icon: `${constants.paths.appDir}/public/images/baal64-transparent.png`, - importance: 'critical' - }); - } - } + } } } diff --git a/src/ts/launcher/states/ApplyChanges.ts b/src/ts/launcher/states/ApplyChanges.ts new file mode 100644 index 0000000..7e5cf6c --- /dev/null +++ b/src/ts/launcher/states/ApplyChanges.ts @@ -0,0 +1,95 @@ +import type Launcher from '../../Launcher'; + +import { Debug, Notification, fs } from '../../../empathize'; + +import constants from '../../Constants'; +import Locales from '../Locales'; +import HDiffPatch from '../../core/HDiffPatch'; + +declare const Neutralino; + +export default (launcher: Launcher): Promise => { + return new Promise(async (resolve) => { + const gameDir = await constants.paths.gameDir; + + Neutralino.filesystem.readFile(`${gameDir}/hdifffiles.txt`) + .then(async (files) => { + let patchErrors = 0; + + files = files.split(/\r\n|\r|\n/).filter((file) => file != ''); + + if (files.length > 0) + { + launcher.progressBar?.init({ + label: Locales.translate('launcher.progress.game.applying_changes') as string, + showSpeed: false, + showEta: true, + showPercents: true, + showTotals: false + }); + + launcher.progressBar?.show(); + + let current = 0, total = files.length; + + for (const file of files) + { + // {"remoteName": "AnAnimeGame_Data/StreamingAssets/Audio/GeneratedSoundBanks/Windows/Banks0.pck"} + const filePatchInfo = JSON.parse(file) as { remoteName: string }; + + if (await fs.exists(`${gameDir}/${filePatchInfo.remoteName}.hdiff`)) + { + const patchResult = await HDiffPatch.patch( + `${gameDir}/${filePatchInfo.remoteName}`, + `${gameDir}/${filePatchInfo.remoteName}.hdiff`, + `${gameDir}/${filePatchInfo.remoteName}.hdiff_patched` + ); + + if (patchResult) + { + await Neutralino.filesystem.removeFile(`${gameDir}/${filePatchInfo.remoteName}`); + await Neutralino.filesystem.removeFile(`${gameDir}/${filePatchInfo.remoteName}.hdiff`); + + await Neutralino.filesystem.moveFile( + `${gameDir}/${filePatchInfo.remoteName}.hdiff_patched`, + `${gameDir}/${filePatchInfo.remoteName}` + ); + } + + else ++patchErrors; + } + + launcher.progressBar?.update(++current, total, 1); + } + + if (patchErrors > 0) + { + const locale = Locales.translate('notifications.game_changes_applying_error') as { title: string, body: string }; + + Notification.show({ + title: locale.title, + body: locale.body.replace('{files}', patchErrors.toString()), + icon: `${constants.paths.appDir}/public/images/baal64-transparent.png`, + importance: 'critical' + }); + } + + Debug.log({ + function: 'Launcher/States/Install', + message: [ + `Applied changes${patchErrors > 0 ? ` (${patchErrors} errors)` : ''}:`, + ...files + ] + }); + } + + if (patchErrors === 0) + await Neutralino.filesystem.removeFile(`${gameDir}/hdifffiles.txt`); + + launcher.progressBar?.hide(); + + resolve(); + }) + .catch(() => resolve()); + }); +}; diff --git a/src/ts/launcher/states/Install.ts b/src/ts/launcher/states/Install.ts index b38bb6c..05cdb6b 100644 --- a/src/ts/launcher/states/Install.ts +++ b/src/ts/launcher/states/Install.ts @@ -1,15 +1,10 @@ -import { get as svelteget } from 'svelte/store'; -import { _ } from 'svelte-i18n'; - import type Launcher from '../../Launcher'; -import { Debug } from '../../../empathize'; - import Game from '../../Game'; import Prefix from '../../core/Prefix'; import constants from '../../Constants'; - -declare const Neutralino; +import Locales from '../Locales'; +import { promisify } from '@empathize/framework'; export default (launcher: Launcher): Promise => { return new Promise(async (resolve) => { @@ -31,7 +26,7 @@ export default (launcher: Launcher): Promise => { Game.update(prevGameVersion).then((stream) => { launcher.progressBar?.init({ - label: svelteget(_)('launcher.progress.game.downloading'), + label: Locales.translate('launcher.progress.game.downloading') as string, showSpeed: true, showEta: true, showPercents: true, @@ -48,14 +43,14 @@ export default (launcher: Launcher): Promise => { { stream?.pauseDownload(); - launcher.state!.pauseButton.textContent = svelteget(_)('launcher.progress.resume'); + launcher.state!.pauseButton.textContent = Locales.translate('launcher.progress.resume') as string; } else { stream?.resumeDownload(); - launcher.state!.pauseButton.textContent = svelteget(_)('launcher.progress.pause'); + launcher.state!.pauseButton.textContent = Locales.translate('launcher.progress.pause') as string; } paused = !paused; @@ -69,7 +64,7 @@ export default (launcher: Launcher): Promise => { stream?.unpackStart(() => { launcher.progressBar?.init({ - label: svelteget(_)('launcher.progress.game.unpacking'), + label: Locales.translate('launcher.progress.game.unpacking') as string, showSpeed: true, showEta: true, showPercents: true, @@ -87,56 +82,31 @@ export default (launcher: Launcher): Promise => { }); stream?.unpackFinish(async () => { - const gameDir = await constants.paths.gameDir; + // Hide pause/resume button + launcher.state!.pauseButton.style['display'] = 'none'; - // Deleting outdated files - Neutralino.filesystem.readFile(`${gameDir}/deletefiles.txt`) - .then(async (files) => { - files = files.split(/\r\n|\r|\n/).filter((file) => file != ''); - - if (files.length > 0) - { - launcher.progressBar?.init({ - label: svelteget(_)('launcher.progress.game.deleting_outdated'), - showSpeed: false, - showEta: true, - showPercents: true, - showTotals: false + await promisify({ + callbacks: [ + // Applying game's files changes + (): Promise => new Promise((resolve) => { + import('./ApplyChanges').then((module) => { + module.default(launcher).then(() => resolve()); }); + }), - let current = 0, total = files.length; - - for (const file of files) - { - await Neutralino.filesystem.removeFile(`${gameDir}/${file}`); - - launcher.progressBar?.update(++current, total, 1); - } - - Debug.log({ - function: 'Launcher/States/Install', - message: [ - 'Deleted outdated files:', - ...files - ] + // Deleting outdated files + (): Promise => new Promise((resolve) => { + import('./RemoveOutdated').then((module) => { + module.default(launcher).then(() => resolve()); }); - } - - await Neutralino.filesystem.removeFile(`${gameDir}/deletefiles.txt`); - - installVoice(); - }) - .catch(() => installVoice()); + }) + ] + }); // Download voice package when the game itself has been installed - const installVoice = () => { - // Hide pause/resume button - launcher.state!.pauseButton.style['display'] = 'none'; - - import('./InstallVoice').then((module) => { - module.default(launcher).then(() => resolve()); - }); - }; + import('./InstallVoice').then((module) => { + module.default(launcher).then(() => resolve()); + }); }); }); }; diff --git a/src/ts/launcher/states/RemoveOutdated.ts b/src/ts/launcher/states/RemoveOutdated.ts new file mode 100644 index 0000000..4786fa2 --- /dev/null +++ b/src/ts/launcher/states/RemoveOutdated.ts @@ -0,0 +1,56 @@ +import type Launcher from '../../Launcher'; + +import { Debug } from '../../../empathize'; + +import constants from '../../Constants'; +import Locales from '../Locales'; + +declare const Neutralino; + +export default (launcher: Launcher): Promise => { + return new Promise(async (resolve) => { + const gameDir = await constants.paths.gameDir; + + Neutralino.filesystem.readFile(`${gameDir}/deletefiles.txt`) + .then(async (files) => { + files = files.split(/\r\n|\r|\n/).filter((file) => file != ''); + + if (files.length > 0) + { + launcher.progressBar?.init({ + label: Locales.translate('launcher.progress.game.deleting_outdated') as string, + showSpeed: false, + showEta: true, + showPercents: true, + showTotals: false + }); + + launcher.progressBar?.show(); + + let current = 0, total = files.length; + + for (const file of files) + { + await Neutralino.filesystem.removeFile(`${gameDir}/${file}`); + + launcher.progressBar?.update(++current, total, 1); + } + + Debug.log({ + function: 'Launcher/States/RemoveOutdated', + message: [ + 'Deleted outdated files:', + ...files + ] + }); + } + + await Neutralino.filesystem.removeFile(`${gameDir}/deletefiles.txt`); + + launcher.progressBar?.hide(); + + resolve(); + }) + .catch(() => resolve()); + }); +}; diff --git a/src/ts/types/Launcher.ts b/src/ts/types/Launcher.ts index 0409298..cfcd945 100644 --- a/src/ts/types/Launcher.ts +++ b/src/ts/types/Launcher.ts @@ -21,6 +21,8 @@ type LauncherState = | 'game-installation-available' | 'game-update-available' | 'game-voice-update-required' + | 'game-files-changes-applying-required' + | 'game-outdated-files-deletion-required' | 'game-pre-installation-available' | 'game-voice-pre-installation-available' | 'game-launch-available';