diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 8a7bdc1a..37a1cda6 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -25,6 +25,11 @@ jobs:
node-version: 22.11.0
cache: "npm"
+ # Update package lists
+ - name: update apt-get
+ if: matrix.os == 'ubuntu-latest'
+ run: sudo apt-get update
+
# Install and setup rpm/Flatpak for Ubuntu
- name: Install rpm/flatpak packages (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
diff --git a/.github/workflows/release-linux.yaml b/.github/workflows/release-linux.yaml
index 7e361647..89d9b693 100644
--- a/.github/workflows/release-linux.yaml
+++ b/.github/workflows/release-linux.yaml
@@ -20,6 +20,9 @@ jobs:
- name: Check out Git repository
uses: actions/checkout@v4
+ - name: update apt-get
+ run: sudo apt-get update
+
- name: Install rpm/flatpak packages
run: sudo apt-get install -y flatpak flatpak-builder rpm libarchive-tools
diff --git a/README.md b/README.md
index c28d7c46..25a6bfb6 100644
--- a/README.md
+++ b/README.md
@@ -472,7 +472,7 @@
Credits
- - Zagrios - Mathieu Gries - Lead Developer & Founder.
+ - Zagrios - Lead Developer & Founder.
- Iluhadesu - Co-Developer & Co-Founder, Discord Bot Developer.
- GaetanGrd - Co-Developer & Co-Founder, Documentation Lead.
- cheddZy - Icon Creator.
diff --git a/package.json b/package.json
index d4a37ee5..4134377e 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "bs-manager",
"description": "Manage maps, mods and more for Beat Saber",
"main": "./.erb/dll/main.bundle.dev.js",
- "version": "1.5.1",
+ "version": "1.5.2",
"scripts": {
"build-rust-scripts": "ts-node ./.erb/scripts/build-rust-scripts.js",
"build": "concurrently \"npm run build:main\" \"npm run build:renderer\"",
diff --git a/release/app/package-lock.json b/release/app/package-lock.json
index 913c6d91..07252f9b 100644
--- a/release/app/package-lock.json
+++ b/release/app/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "bs-manager",
- "version": "1.5.1",
+ "version": "1.5.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bs-manager",
- "version": "1.5.1",
+ "version": "1.5.2",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
diff --git a/release/app/package.json b/release/app/package.json
index 7b62e1ba..df0fa26a 100644
--- a/release/app/package.json
+++ b/release/app/package.json
@@ -1,6 +1,6 @@
{
"name": "bs-manager",
- "version": "1.5.1",
+ "version": "1.5.2",
"description": "BSManager",
"main": "./dist/main/main.js",
"author": {
diff --git a/src/main/services/request.service.ts b/src/main/services/request.service.ts
index d51cf4a6..6a07a2e7 100644
--- a/src/main/services/request.service.ts
+++ b/src/main/services/request.service.ts
@@ -10,16 +10,22 @@ import path from 'path';
import { pipeline } from 'stream/promises';
import sanitize from 'sanitize-filename';
import internal from 'stream';
+import { app } from 'electron';
export class RequestService {
private static instance: RequestService;
private preferredFamily: number | undefined = undefined;
+ private readonly baseHeaders = {
+ 'User-Agent': `BSManager/${app.getVersion()} (Electron/${process.versions.electron} Chrome/${process.versions.chrome} Node/${process.versions.node})`,
+ }
+
public static getInstance(): RequestService {
if (!RequestService.instance) {
RequestService.instance = new RequestService();
}
return RequestService.instance;
+
}
private constructor() {}
@@ -32,7 +38,7 @@ export class RequestService {
try {
// @ts-ignore (ESM is not well supported in this project, We need to move out electron-react-boilerplate, and use Vite)
- const res = await got(url, { dnsLookupIpVersion: family, responseType: 'json' });
+ const res = await got(url, { dnsLookupIpVersion: family, responseType: 'json', headers: this.baseHeaders });
this.preferredFamily = family;
return { data: res.body as T, headers: res.headers };
} catch (err) {
@@ -67,7 +73,7 @@ export class RequestService {
let file: WriteStream | undefined;
// @ts-ignore (ESM is not well supported in this project, We need to move out electron-react-boilerplate, and use Vite)
- stream = got.stream(url, { dnsLookupIpVersion: family });
+ stream = got.stream(url, { dnsLookupIpVersion: family, headers: this.baseHeaders });
stream.on('response', (response) => {
this.preferredFamily = family;
@@ -130,6 +136,7 @@ export class RequestService {
data: null,
};
+ const headers = { ...this.baseHeaders, ...(options?.headers ?? {}) };
const familiesToTry = this.preferredFamily ? [this.preferredFamily, this.preferredFamily === 4 ? 6 : 4] : [4, 6];
let attempt = 0;
@@ -142,9 +149,8 @@ export class RequestService {
}
const family = familiesToTry[attempt++];
-
// @ts-ignore (ESM is not well supported in this project, We need to move out electron-react-boilerplate, and use Vite)
- stream = got.stream(url, { dnsLookupIpVersion: family, ...(options ?? {}) });
+ stream = got.stream(url, { dnsLookupIpVersion: family, ...(options ?? {}), headers });
let data = Buffer.alloc(0);
let response: IncomingMessage;