From 30a53c013f7e4d108a217634461224f639df68f0 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:51:51 +0100 Subject: [PATCH 1/8] [bugfix] fix downloading models not working Add useragent to requests to not being rejected --- release/app/package-lock.json | 4 ++-- src/main/services/request.service.ts | 33 ++++++++++++++++++++++------ 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/release/app/package-lock.json b/release/app/package-lock.json index 24e99b05..9afc7978 100644 --- a/release/app/package-lock.json +++ b/release/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "bs-manager", - "version": "1.4.4", + "version": "1.4.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bs-manager", - "version": "1.4.4", + "version": "1.4.6", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/src/main/services/request.service.ts b/src/main/services/request.service.ts index dbd2fcf9..2c7f6741 100644 --- a/src/main/services/request.service.ts +++ b/src/main/services/request.service.ts @@ -1,9 +1,11 @@ -import { Agent, get } from "https"; +import { Agent, RequestOptions, get } from "https"; import { createWriteStream, unlink } from "fs"; import { Progression } from "main/helpers/fs.helpers"; import { Observable, shareReplay, tap } from "rxjs"; import log from "electron-log"; import fetch, { RequestInfo, RequestInit } from "node-fetch"; +import { app } from "electron"; +import os from "os"; export class RequestService { private static instance: RequestService; @@ -15,16 +17,33 @@ export class RequestService { return RequestService.instance; } - private constructor() {} + private readonly defaultRequestInit: RequestInit; - private get ipv4Agent(){ - return new Agent({ family: 4 }); + private constructor() { + + this.defaultRequestInit = { + headers: { + "User-Agent": `BSManager/${app.getVersion()} (${os.type()} ${os.release()})` + }, + agent: new Agent({ family: 4 }), + }; + } + + private getInitWithOptions(options?: RequestInit): RequestInit { + return { ...this.defaultRequestInit, ...(options || {}) }; + } + + private requestOptionsFromDefaultInit(): RequestOptions { + return { + headers: this.defaultRequestInit.headers as Record, + agent: this.defaultRequestInit.agent as Agent, + }; } public async getJSON(url: RequestInfo, options?: RequestInit): Promise { try { - const response = await fetch(url, {...options, agent: this.ipv4Agent}); + const response = await fetch(url, this.getInitWithOptions(options)); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status} ${url}`); @@ -50,7 +69,7 @@ export class RequestService { }); file.on("error", err => unlink(dest, () => subscriber.error(err))); - const req = get(url, { agent: this.ipv4Agent }, res => { + const req = get(url, this.requestOptionsFromDefaultInit(), res => { progress.total = parseInt(res.headers?.["content-length"] || "0", 10); res.on("data", chunk => { @@ -77,7 +96,7 @@ export class RequestService { const allChunks: Buffer[] = []; - const req = get(url, { agent: this.ipv4Agent }, res => { + const req = get(url, this.requestOptionsFromDefaultInit(), res => { progress.total = parseInt(res.headers?.["content-length"] || "0", 10); res.on("data", chunk => { From 88a1691d4b5a1bd2b766ce48db86b493d3bd3a6c Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:04:45 +0100 Subject: [PATCH 2/8] bumb to 1.4.7 --- release/app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/app/package.json b/release/app/package.json index 0d1d674d..8cc11a8c 100644 --- a/release/app/package.json +++ b/release/app/package.json @@ -1,6 +1,6 @@ { "name": "bs-manager", - "version": "1.4.6", + "version": "1.4.7", "description": "BSManager", "main": "./dist/main/main.js", "author": { From 067b967da1fc58d6e8e15f2f859ca1552848ac35 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Fri, 15 Mar 2024 11:55:16 +0100 Subject: [PATCH 3/8] add patreon --- assets/jsons/patreons.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/assets/jsons/patreons.json b/assets/jsons/patreons.json index 873f2d41..00d8f14d 100644 --- a/assets/jsons/patreons.json +++ b/assets/jsons/patreons.json @@ -89,5 +89,8 @@ }, { "username": "rhythmshade" + }, + { + "username": "liborsaf" } ] From d7f3936619bcb72763f792e5c8e9d0d0475c3969 Mon Sep 17 00:00:00 2001 From: Pierce Thompson Date: Sat, 16 Mar 2024 20:57:55 -0400 Subject: [PATCH 4/8] Fix BSIPA not running on Linux --- src/main/services/mods/bs-mods-manager.service.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/services/mods/bs-mods-manager.service.ts b/src/main/services/mods/bs-mods-manager.service.ts index 330d9900..42b5add8 100644 --- a/src/main/services/mods/bs-mods-manager.service.ts +++ b/src/main/services/mods/bs-mods-manager.service.ts @@ -155,8 +155,13 @@ export class BsModsManagerService { } return new Promise(resolve => { - log.info("START IPA PROCESS", `start /wait /min "" "${ipaPath}" ${args.join(" ")}`); - const processIPA = spawn(`start /wait /min "" "${ipaPath}" ${args.join(" ")}`, { cwd: versionPath, detached: true, shell: true }); + const cmd = process.platform === 'linux' + ? `screen -dmS "BSIPA" dotnet ${ipaPath} ${args.join(" ")}` // Must run through screen, otherwise BSIPA tries to move console cursor and crashes. + : `start /wait /min "" "${ipaPath}" ${args.join(" ")}`; + + log.info("START IPA PROCESS", cmd); + const processIPA = spawn(cmd, { cwd: versionPath, detached: true, shell: true }); + processIPA.once("exit", code => { if (code === 0) { log.info("Ipa process exist with code 0"); @@ -230,7 +235,7 @@ export class BsModsManagerService { log.error("Error while extracting mod zip", e); return false; }); - + log.info("Mod zip extraction end", mod.name, "to", destDir, "success:", extracted); const res = isBSIPA From e0f597e252c6af05042720bb12591c9f7a98f9cb Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sat, 23 Mar 2024 13:38:33 +0100 Subject: [PATCH 5/8] add patreon --- assets/jsons/patreons.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/assets/jsons/patreons.json b/assets/jsons/patreons.json index 00d8f14d..98548dbc 100644 --- a/assets/jsons/patreons.json +++ b/assets/jsons/patreons.json @@ -92,5 +92,9 @@ }, { "username": "liborsaf" + }, + { + "username": "aatame3", + "type": "gold" } ] From 9cd5c488310ab83fa1601970f38d43b2b905044f Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:01:54 +0100 Subject: [PATCH 6/8] remove patreons --- assets/jsons/patreons.json | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/assets/jsons/patreons.json b/assets/jsons/patreons.json index 98548dbc..6de0b1f1 100644 --- a/assets/jsons/patreons.json +++ b/assets/jsons/patreons.json @@ -18,9 +18,6 @@ { "username": "Falmil" }, - { - "username": "K1Lc4m" - }, { "username": "Anonymously42", "type": "diamond", @@ -30,9 +27,6 @@ "username": "Burt", "type": "gold" }, - { - "username": "Ilnahro" - }, { "username": "Phil", "type": "gold" @@ -41,18 +35,10 @@ "username": "Protocrush", "type": "gold" }, - { - "username": "ServerMensch", - "type": "gold" - }, { "username": "Karlito", "type": "gold" }, - { - "username": "Cathery", - "type": "gold" - }, { "username": ".sharkey" }, @@ -74,9 +60,6 @@ { "username": "Minescence" }, - { - "username": "Finlay" - }, { "username": "mereknom" }, From d185614d3b1bc00228ce590971f28efa1fbb55b2 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Tue, 9 Apr 2024 18:50:45 +0200 Subject: [PATCH 7/8] add 1.36.0 --- assets/jsons/bs-versions.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/assets/jsons/bs-versions.json b/assets/jsons/bs-versions.json index 6484682a..07a3ea4b 100644 --- a/assets/jsons/bs-versions.json +++ b/assets/jsons/bs-versions.json @@ -709,4 +709,13 @@ "ReleaseDate": "1709831174", "year": "2024" } + { + "BSVersion": "1.36.0", + "BSManifest": "8533509040167838423", + "OculusBinaryId": "6863072637125790", + "ReleaseURL": "https://store.steampowered.com/news/app/620980/view/4205873192610459250", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images//32055887/b8bd8a050e2bc3903cf18a277c5489ade01f7e75.png", + "ReleaseDate": "1712681263", + "year": "2024" + } ] From e822738a3b234bd82f3a38141a4ef41565d7c54c Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Tue, 9 Apr 2024 18:50:59 +0200 Subject: [PATCH 8/8] oups --- assets/jsons/bs-versions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/jsons/bs-versions.json b/assets/jsons/bs-versions.json index 07a3ea4b..66f02388 100644 --- a/assets/jsons/bs-versions.json +++ b/assets/jsons/bs-versions.json @@ -708,7 +708,7 @@ "ReleaseImg": "https://clan.cloudflare.steamstatic.com/images//32055887/9a141be5c44ca6fc81551a2c7e7f28407df413ed.png", "ReleaseDate": "1709831174", "year": "2024" - } + }, { "BSVersion": "1.36.0", "BSManifest": "8533509040167838423",