diff --git a/build-scripts/update-metainfo.js b/build-scripts/update-metainfo.js
index f52fb7f..e778c90 100644
--- a/build-scripts/update-metainfo.js
+++ b/build-scripts/update-metainfo.js
@@ -72,6 +72,7 @@ if (currentReleaseMatch) {
if (currentVersion === version && currentDate === dateStr) {
console.log('✓ AppStream metadata already up to date');
+ updateSplash();
process.exit(0);
}
}
@@ -90,6 +91,7 @@ if (releaseSelfClosingRegex.test(updatedSection)) {
if (updatedSection === releasesSectionMatch[0]) {
console.log('✓ AppStream metadata already up to date');
+ updateSplash();
process.exit(0);
}
@@ -97,3 +99,26 @@ const updatedXml = xml.replace(releasesSectionRegex, updatedSection);
fs.writeFileSync(xmlPath, updatedXml, 'utf8');
console.log(`✓ Updated AppStream release to ${version} (${dateStr})`);
+
+updateSplash();
+
+function updateSplash() {
+ const splashPath = path.join(repoRoot, 'src', 'renderer', 'splash.html');
+ if (!fs.existsSync(splashPath)) {
+ console.warn(`⚠ splash.html not found at ${splashPath}`);
+ return;
+ }
+ const splashHtml = fs.readFileSync(splashPath, 'utf8');
+ const splashRegex = /(
)v[^<]*(<\/div>)/;
+ if (!splashRegex.test(splashHtml)) {
+ console.warn('⚠ Could not locate version-display element in splash.html');
+ return;
+ }
+ const updatedSplash = splashHtml.replace(splashRegex, `$1v${version}$2`);
+ if (updatedSplash === splashHtml) {
+ console.log('✓ Splash screen version already up to date');
+ return;
+ }
+ fs.writeFileSync(splashPath, updatedSplash, 'utf8');
+ console.log(`✓ Updated splash screen version to v${version}`);
+}
diff --git a/com.burnttoasters.rosi.metainfo.xml b/com.burnttoasters.rosi.metainfo.xml
index a50b613..6ffd85e 100644
--- a/com.burnttoasters.rosi.metainfo.xml
+++ b/com.burnttoasters.rosi.metainfo.xml
@@ -33,7 +33,7 @@
-
+
diff --git a/package-lock.json b/package-lock.json
index 3706173..4db68d7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "rosi",
- "version": "4.0.9",
+ "version": "4.0.10",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "rosi",
- "version": "4.0.9",
+ "version": "4.0.10",
"license": "MPL-2.0",
"dependencies": {
"electron-log": "^5.3.4",
diff --git a/package.json b/package.json
index 11a02a4..1c09017 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "rosi",
- "version": "4.0.9",
+ "version": "4.0.10",
"private": true,
"description": "Electron GUI for yt-dlp",
"keywords": [
diff --git a/src/main/deno.ts b/src/main/deno.ts
index d66ec83..eb664be 100644
--- a/src/main/deno.ts
+++ b/src/main/deno.ts
@@ -2,7 +2,7 @@ import * as path from 'path';
import * as fs from 'fs';
import { spawn } from 'child_process';
import { BrowserWindow, dialog } from 'electron';
-import log from 'electron-log/main';
+import log from 'electron-log/main.js';
import type { MessageBoxOptions } from 'electron';
import {
DENO_CHECK_TIMEOUT_MS,
diff --git a/src/main/downloader.ts b/src/main/downloader.ts
index a15c64c..446817f 100644
--- a/src/main/downloader.ts
+++ b/src/main/downloader.ts
@@ -2,7 +2,7 @@ import * as path from 'path';
import * as fs from 'fs';
import sanitize from 'sanitize-filename';
import { dialog } from 'electron';
-import log from 'electron-log/main';
+import log from 'electron-log/main.js';
import { spawnWithEnv, getEffectiveFfmpegPath, ytdlpBinary, isWindows } from './platform';
import { loadSettings, recordDownload } from './settings';
import { buildFfmpegArgs, buildYtdlpArgs, resolveVideoEncoder } from './download/commandBuilders';
diff --git a/src/main/gpu.ts b/src/main/gpu.ts
index fb98e0a..02bf927 100644
--- a/src/main/gpu.ts
+++ b/src/main/gpu.ts
@@ -1,4 +1,4 @@
-import log from 'electron-log/main';
+import log from 'electron-log/main.js';
import { spawnWithEnv } from './platform';
import { loadSettings } from './settings';
import { getEffectiveFfmpegPath } from './platform';
diff --git a/src/main/main.ts b/src/main/main.ts
index 9c2e733..3d42424 100644
--- a/src/main/main.ts
+++ b/src/main/main.ts
@@ -1,7 +1,7 @@
import { app, BrowserWindow, ipcMain, dialog, shell, Notification } from 'electron';
import * as path from 'path';
import * as fs from 'fs';
-import log from 'electron-log/main';
+import log from 'electron-log/main.js';
import { isPackaged, resolveYtdlpPath, verifyBundledFfmpeg } from './platform';
import {
loadSettings,
diff --git a/src/main/platform.ts b/src/main/platform.ts
index d9df4b6..d584bd9 100644
--- a/src/main/platform.ts
+++ b/src/main/platform.ts
@@ -3,7 +3,7 @@ import * as os from 'os';
import * as fs from 'fs';
import { spawn } from 'child_process';
import { app, dialog } from 'electron';
-import log from 'electron-log/main';
+import log from 'electron-log/main.js';
export const isWindows = process.platform === 'win32';
export const isMac = process.platform === 'darwin';
diff --git a/src/main/settings.ts b/src/main/settings.ts
index 64db729..5b32918 100644
--- a/src/main/settings.ts
+++ b/src/main/settings.ts
@@ -1,7 +1,7 @@
import * as path from 'path';
import * as fs from 'fs';
import { app, dialog } from 'electron';
-import log from 'electron-log/main';
+import log from 'electron-log/main.js';
import type { AudioFormat, DownloadStats, Settings } from '../types';
import {
ALLOWED_AUDIO_FORMATS,
diff --git a/src/main/updater.ts b/src/main/updater.ts
index 3a9db0f..63fd5fa 100644
--- a/src/main/updater.ts
+++ b/src/main/updater.ts
@@ -1,7 +1,7 @@
import type { BrowserWindow } from 'electron';
import { app } from 'electron';
import { autoUpdater, CancellationToken } from 'electron-updater';
-import log from 'electron-log/main';
+import log from 'electron-log/main.js';
import type {
Settings,
UpdateDownloadResult,
diff --git a/src/renderer/splash.html b/src/renderer/splash.html
index 4cb71a7..593bde7 100644
--- a/src/renderer/splash.html
+++ b/src/renderer/splash.html
@@ -333,7 +333,7 @@
ROSI
Loading
-