diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index b193875e..cfdf478c 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -261,7 +261,7 @@ "oculus-download": { "errors": { "msg": { - "DOWNLOAD_MANIFEST_FAILED": "Unmöglich, das Manifest für diese Version herunterzuladen.", + "DOWNLOAD_MANIFEST_FAILED": "Es ist nicht möglich, das Manifest für diese Version herunterzuladen; Ihr Anmelde-Token ist möglicherweise ungültig.", "MANIFEST_FILE_NOT_FOUND": "Unmöglich, das Manifest für diese Version zu finden.", "PARSE_MANIFEST_FILE_FAILED": "Beim Lesen des Manifests ist ein Fehler aufgetreten.", "ALREADY_DOWNLOADING": "Eine Version wird bereits heruntergeladen.", diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 99e09aa8..62e1c5e2 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -261,7 +261,7 @@ "oculus-download": { "errors": { "msg": { - "DOWNLOAD_MANIFEST_FAILED": "Unable to download the manifest for this version.", + "DOWNLOAD_MANIFEST_FAILED": "Unable to download the manifest for this version; your login token may be invalid.", "MANIFEST_FILE_NOT_FOUND": "Unable to find the manifest for this version.", "PARSE_MANIFEST_FILE_FAILED": "An error occurred while reading the manifest.", "ALREADY_DOWNLOADING": "A version is already being downloaded.", diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index 2019a453..21406dca 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -260,7 +260,7 @@ "oculus-download": { "errors": { "msg": { - "DOWNLOAD_MANIFEST_FAILED": "Imposible descargar el manifiesto de esta versión.", + "DOWNLOAD_MANIFEST_FAILED": "No se puede descargar el manifiesto de esta versión; su token de inicio de sesión podría ser inválido.", "MANIFEST_FILE_NOT_FOUND": "Imposible encontrar el manifiesto de esta versión.", "PARSE_MANIFEST_FILE_FAILED": "Se produjo un error al leer el manifiesto.", "ALREADY_DOWNLOADING": "Ya se está descargando una versión.", diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index f116670b..85c852bb 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -209,8 +209,8 @@ "bs-download": { "success": { "titles": { - "download-success": "Téléchargement terminé 🎉", - "verification-finished": "Vérification terminée 🎉" + "download-success": "Téléchargement terminé", + "verification-finished": "Vérification terminée" } }, "steam-download": { @@ -257,7 +257,7 @@ "oculus-download": { "errors": { "msg": { - "DOWNLOAD_MANIFEST_FAILED": "Impossible de télécharger le manifest de cette version.", + "DOWNLOAD_MANIFEST_FAILED": "Impossible de télécharger le manifest de cette version; vote token de connexion est peut-être invalide.", "MANIFEST_FILE_NOT_FOUND": "Impossible de trouver le manifest de cette version.", "PARSE_MANIFEST_FILE_FAILED": "Une erreur c'est produite lors de la lecture du manifest.", "ALREADY_DOWNLOADING": "Une version est déjà en cours de téléchargement.", diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json index 91a12332..6167e0c4 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -261,7 +261,7 @@ "oculus-download": { "errors": { "msg": { - "DOWNLOAD_MANIFEST_FAILED": "Невозможно загрузить манифест этой версии.", + "DOWNLOAD_MANIFEST_FAILED": "Невозможно загрузить манифест этой версии; ваш токен входа, возможно, недействителен.", "MANIFEST_FILE_NOT_FOUND": "Невозможно найти манифест этой версии.", "PARSE_MANIFEST_FILE_FAILED": "При чтении манифеста произошла ошибка.", "ALREADY_DOWNLOADING": "Версия уже загружается.", diff --git a/src/main/services/bs-version-download/bs-oculus-downloader.service.ts b/src/main/services/bs-version-download/bs-oculus-downloader.service.ts index af1f1269..3b0306d9 100644 --- a/src/main/services/bs-version-download/bs-oculus-downloader.service.ts +++ b/src/main/services/bs-version-download/bs-oculus-downloader.service.ts @@ -7,7 +7,7 @@ import { OculusDownloader } from "../../models/oculus-downloader.class"; import { Cookie, session } from "electron"; import { Progression, ensurePathNotAlreadyExist } from "../../helpers/fs.helpers"; import { BSLocalVersionService } from "../bs-local-version.service"; -import { Observable, catchError, finalize, from, map, switchMap, throwError } from "rxjs"; +import { Observable, finalize, from, map, switchMap } from "rxjs"; import path from "path"; import { DownloadInfo } from "./bs-steam-downloader.service"; import { BsStore } from "../../../shared/models/bs-store.enum"; @@ -163,7 +163,6 @@ export class BsOculusDownloaderService { public autoDownloadVersion(downloadInfo: DownloadInfo): Observable>{ - let failed = false; let downloadVersion: BSVersion return from(this.getAuthToken()).pipe( @@ -185,11 +184,7 @@ export class BsOculusDownloaderService { map(progress => ({...progress, data: version})), ); }), - catchError(err => { - failed = true; - return throwError(() => err); - }), - finalize(() => from(!failed && this.versions.setVersionMetadata(downloadVersion, "store", BsStore.OCULUS))), + finalize(() => downloadVersion && this.versions.setVersionMetadata(downloadVersion, "store", BsStore.OCULUS)), finalize(() => this.oculusDownloader.stopDownload()), ); } diff --git a/src/main/services/bs-version-download/bs-steam-downloader.service.ts b/src/main/services/bs-version-download/bs-steam-downloader.service.ts index 7eac396d..7f32f501 100644 --- a/src/main/services/bs-version-download/bs-steam-downloader.service.ts +++ b/src/main/services/bs-version-download/bs-steam-downloader.service.ts @@ -8,7 +8,7 @@ import { InstallationLocationService } from "../installation-location.service"; import { BSLocalVersionService } from "../bs-local-version.service"; import { ensureDir } from "fs-extra"; import { ensurePathNotAlreadyExist } from "../../helpers/fs.helpers"; -import { Observable, catchError, finalize, map, throwError } from "rxjs"; +import { Observable, finalize, map } from "rxjs"; import { DepotDownloaderArgsOptions, DepotDownloaderErrorEvent, DepotDownloaderEvent, DepotDownloaderEventType, DepotDownloaderInfoEvent } from "../../../shared/models/bs-version-download/depot-downloader.model"; import { DepotDownloader } from "../../models/depot-downloader.class"; import { app } from "electron"; @@ -107,8 +107,6 @@ export class BsSteamDownloaderService { this.depotDownloader = depotDownloader; - let failed = false; - depotDownloader.$events().pipe( map(event => { if(event.type === DepotDownloaderEventType.Error){ @@ -116,13 +114,7 @@ export class BsSteamDownloaderService { } return event; }), - catchError(err => { - failed = true; - return throwError(() => err); - }), - finalize(() => { - !failed && this.localVersionService.setVersionMetadata(version, "store", BsStore.STEAM); - }) + finalize(() => this.localVersionService.setVersionMetadata(version, "store", BsStore.STEAM)) ).subscribe(sub); }).catch(err => sub.error({ diff --git a/src/main/services/ipc.service.ts b/src/main/services/ipc.service.ts index b3fdd159..550a32fd 100644 --- a/src/main/services/ipc.service.ts +++ b/src/main/services/ipc.service.ts @@ -47,7 +47,7 @@ export class IpcService { const sub = observable.subscribe({ next: data => this.send(channel, window, data), error: error => { - log.error(error); + log.error(error, error?.code); this.send(this.getErrorChannel(channel), window, serializeError(error)); }, complete: () => this.send(this.getCompleteChannel(channel), window) diff --git a/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx b/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx index 4fd98621..6356b01d 100644 --- a/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx +++ b/src/renderer/components/modal/modal-types/bs-downgrade/login-to-meta-modal.component.tsx @@ -29,8 +29,8 @@ export const LoginToMetaModal: ModalComponent = ({ resolver }) => {

- En vous connectant à Meta, une fenètre de connexion s'ouvrira et vous pourrais alors débuter le processus de connexion à Meta. - Veuillez bien à accepter les cookie sinon quoi, il se pourrait que l'on arrive pas à récupérer votre token de connexion. + En vous connectant à Meta, une fenètre de connexion s'ouvrira et vous pourrez alors débuter le processus de connexion. + Veuillez à bien accepter les cookies sinon quoi, il se pourrait que l'on arrive pas à récupérer votre token de connexion pour démarrer le téléchargement.

diff --git a/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx b/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx index c6f8d9ce..cf3e3d1d 100644 --- a/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx +++ b/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx @@ -64,7 +64,7 @@ export function LaunchSlide({ version }: Props) { desktop: desktopMode, debug: debugMode, additionalArgs - }) + }); }; return ( @@ -74,7 +74,7 @@ export function LaunchSlide({ version }: Props) {

{version.name ? `${version.BSVersion} - ${version.name}` : version.BSVersion}

- {!(version.oculus || version.metadata.store === BsStore.OCULUS) && setMode(LaunchMods.OCULUS_MOD, !oculusMode)} active={oculusMode} text="pages.version-viewer.launch-mods.oculus" />} + {!(version.oculus || version.metadata?.store === BsStore.OCULUS) && setMode(LaunchMods.OCULUS_MOD, !oculusMode)} active={oculusMode} text="pages.version-viewer.launch-mods.oculus" />} setMode(LaunchMods.DESKTOP_MOD, !desktopMode)} active={desktopMode} text="pages.version-viewer.launch-mods.desktop" /> setMode(LaunchMods.DEBUG_MOD, !debugMode)} active={debugMode} text="pages.version-viewer.launch-mods.debug" />
diff --git a/src/renderer/services/bs-version-download/oculus-downloader.service.ts b/src/renderer/services/bs-version-download/oculus-downloader.service.ts index 86050932..9828432e 100644 --- a/src/renderer/services/bs-version-download/oculus-downloader.service.ts +++ b/src/renderer/services/bs-version-download/oculus-downloader.service.ts @@ -85,13 +85,23 @@ export class OculusDownloaderService extends AbstractBsDownloaderService impleme } private async doDownloadBsVersion(bsVersion: BSVersion, isVerification: boolean): Promise { + + let autoDownloadFailed = false; + return (async () => { - const autoDownload = await lastValueFrom(this.tryAutoDownload({ bsVersion, isVerification })).then(() => true).catch(() => false); + const autoDownload = await lastValueFrom(this.tryAutoDownload({ bsVersion, isVerification })).then(() => true).catch((err: CustomError) => { + const doNotRestartCodes: string[] = [OculusDownloaderErrorCodes.ALREADY_DOWNLOADING, OculusDownloaderErrorCodes.SOME_FILES_FAILED_TO_DOWNLOAD, OculusDownloaderErrorCodes.VERIFY_INTEGRITY_FAILED]; + autoDownloadFailed = true; + + if(doNotRestartCodes.includes(err?.code)){ + return true; + } + + return false; + }); - if(autoDownload){ - return autoDownload; - } + if(autoDownload){ return autoDownload; } const [completed, stay] = await this.modals.openModal(LoginToMetaModal).then(res => [res.exitCode === ModalExitCode.COMPLETED, res.data]); @@ -101,8 +111,19 @@ export class OculusDownloaderService extends AbstractBsDownloaderService impleme return lastValueFrom(this.startDownloadBsVersion({ bsVersion, isVerification, stay })).then(() => true); - })().then(() => bsVersion) - .finally(() => this.progressBar.hide(true)); + })().then(() => { + if(autoDownloadFailed){ + return bsVersion; + } + + if(isVerification){ + this.notifications.notifySuccess({title: "notifications.bs-download.success.titles.verification-finished"}); + } else { + this.notifications.notifySuccess({title: "notifications.bs-download.success.titles.download-success"}); + } + + return bsVersion; + }).finally(() => this.progressBar.hide(true)); } public downloadBsVersion(version: BSVersion): Promise {