From 2804757b802f6072c40cd2211efc3d04babd6177 Mon Sep 17 00:00:00 2001 From: Robert Zhou Date: Wed, 28 May 2025 23:37:40 -0700 Subject: [PATCH 01/10] Show Favorites streams that are live but scheduled far in the future --- src/utils/backend-api.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/utils/backend-api.ts b/src/utils/backend-api.ts index d69a026cd..9d17a3a3c 100644 --- a/src/utils/backend-api.ts +++ b/src/utils/backend-api.ts @@ -171,7 +171,12 @@ export default { ), ) // get currently live and upcoming lives within the next 3 weeks - .filter((live) => dayjs(live.start_scheduled).isBefore(dayjs().add(3, "w")))); + .filter( + (live) => ( + live.start_actual + || dayjs(live.start_scheduled).isBefore(dayjs().add(3, "w")) + ), + )); }, patchFavorites(jwt, operations) { return axiosInstance.patch("/users/favorites", operations, { From d660f3633fecedd108fcfa4af2c758563bb66289 Mon Sep 17 00:00:00 2001 From: FlaminSarge Date: Thu, 4 Sep 2025 04:47:16 -0700 Subject: [PATCH 02/10] fix: prevent live viewer update/malformed start_actual from breaking elapsedTime in WatchInfo/etc --- src/views/EditVideo.vue | 5 ++++- src/views/Watch.vue | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/views/EditVideo.vue b/src/views/EditVideo.vue index cdd1868a9..e1dfe3058 100644 --- a/src/views/EditVideo.vue +++ b/src/views/EditVideo.vue @@ -321,7 +321,10 @@ export default { if (!update?.status || !update?.start_actual) return; this.video.live_viewers = update.live_viewers; this.video.status = update.status; - this.video.start_actual = update.start_actual; + // papers over an issue with socket sending a placeholder object in start_actual + if (typeof update.start_actual === "string") { + this.video.start_actual = update.start_actual; + } }, async populateTopics() { this.topics = (await api.topics()).data.map((topic) => ({ diff --git a/src/views/Watch.vue b/src/views/Watch.vue index 2a9da21e8..2f87a19f7 100644 --- a/src/views/Watch.vue +++ b/src/views/Watch.vue @@ -335,7 +335,10 @@ export default { if (!update?.status || !update?.start_actual) return; this.video.live_viewers = update.live_viewers; this.video.status = update.status; - this.video.start_actual = update.start_actual; + // papers over an issue with socket sending a placeholder object in start_actual + if (typeof update.start_actual === "string") { + this.video.start_actual = update.start_actual; + } }, handleCurrentTime(time) { this.currentTime = time; From 542846110e20151cd392695c3ee20b4ebf83660b Mon Sep 17 00:00:00 2001 From: Nelo <41271523+NeloBlivion@users.noreply.github.com> Date: Fri, 14 Nov 2025 10:36:53 -0500 Subject: [PATCH 03/10] attempt force player lang to match holodex lang --- src/components/media/SongFrame.vue | 1 + src/components/multiview/VideoCell.vue | 1 + src/views/EditVideo.vue | 1 + src/views/Watch.vue | 1 + 4 files changed, 4 insertions(+) diff --git a/src/components/media/SongFrame.vue b/src/components/media/SongFrame.vue index b5565dc39..e4a790645 100644 --- a/src/components/media/SongFrame.vue +++ b/src/components/media/SongFrame.vue @@ -19,6 +19,7 @@ rel: 0, cc_load_policy: 0, cc_lang_pref: getLang, + hl: getLang, iv_load_policy: 3, }" v-on="$listeners" diff --git a/src/components/multiview/VideoCell.vue b/src/components/multiview/VideoCell.vue index 5bf3df7fc..7de1734c4 100644 --- a/src/components/multiview/VideoCell.vue +++ b/src/components/multiview/VideoCell.vue @@ -32,6 +32,7 @@ :player-vars="{ playsinline: 1, cc_lang_pref: getLang, + hl: getLang, }" :mute="muted" manual-update diff --git a/src/views/EditVideo.vue b/src/views/EditVideo.vue index e1dfe3058..68803f964 100644 --- a/src/views/EditVideo.vue +++ b/src/views/EditVideo.vue @@ -17,6 +17,7 @@ autoplay: 1, playsinline: 1, cc_lang_pref: getLang, + hl: getLang, }" @ready="ready" /> diff --git a/src/views/Watch.vue b/src/views/Watch.vue index 2f87a19f7..6b987e91c 100644 --- a/src/views/Watch.vue +++ b/src/views/Watch.vue @@ -35,6 +35,7 @@ autoplay: isPlaylist ? 1 : 0, playsinline: 1, cc_lang_pref: getLang, + hl: getLang, }" @ready="ready" @playing="playing" From 1603b9f45fc047ce2eaea8d529d5f591a425d6d5 Mon Sep 17 00:00:00 2001 From: Nelo <41271523+NeloBlivion@users.noreply.github.com> Date: Sun, 16 Nov 2025 01:01:53 -0500 Subject: [PATCH 04/10] correct EN YT conversion --- src/utils/consts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils/consts.js b/src/utils/consts.js index 744c5f95b..2e7d385e6 100644 --- a/src/utils/consts.js +++ b/src/utils/consts.js @@ -144,6 +144,7 @@ export const langConversion = Object.freeze({ "lol-UWU": "en", zh: "zh-Hant", "zh-CN": "zh-Hans", + "en-GB": "enm" }); export const companionExtensionId = "jkdnofimdhpbhdjbcdlgnccfjjkidlgp"; From 5bf140094ec72838c6f698551d3d469e8a726a0f Mon Sep 17 00:00:00 2001 From: sphinxrave <62570796+sphinxrave@users.noreply.github.com> Date: Sun, 21 Dec 2025 20:51:31 -0800 Subject: [PATCH 05/10] bugfix: support error message for adding recently submitted channel --- package-lock.json | 336 ++++++++++++++++++++++++++++++++ src/views/AddChannelRequest.vue | 12 +- 2 files changed, 344 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index ed8d286c4..e8f0e4c01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5628,6 +5628,76 @@ "esbuild-windows-arm64": "0.13.15" } }, + "node_modules/esbuild-android-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", + "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/esbuild-darwin-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", + "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", + "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", + "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", + "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/esbuild-jest": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/esbuild-jest/-/esbuild-jest-0.5.0.tgz", @@ -5905,6 +5975,146 @@ "node": ">=8" } }, + "node_modules/esbuild-linux-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", + "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", + "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", + "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", + "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", + "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", + "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", + "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ] + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", + "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/esbuild-sunos-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", + "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ] + }, + "node_modules/esbuild-windows-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", + "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/esbuild-windows-64": { "version": "0.13.15", "cpu": [ @@ -5917,6 +6127,20 @@ "win32" ] }, + "node_modules/esbuild-windows-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", + "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/escalade": { "version": "3.1.1", "dev": true, @@ -18761,6 +18985,41 @@ "esbuild-windows-arm64": "0.13.15" } }, + "esbuild-android-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", + "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", + "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", + "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", + "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", + "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", + "dev": true, + "optional": true + }, "esbuild-jest": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/esbuild-jest/-/esbuild-jest-0.5.0.tgz", @@ -18975,11 +19234,88 @@ } } }, + "esbuild-linux-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", + "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", + "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", + "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", + "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", + "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", + "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", + "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", + "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", + "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", + "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", + "dev": true, + "optional": true + }, "esbuild-windows-64": { "version": "0.13.15", "dev": true, "optional": true }, + "esbuild-windows-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", + "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", + "dev": true, + "optional": true + }, "escalade": { "version": "3.1.1", "dev": true diff --git a/src/views/AddChannelRequest.vue b/src/views/AddChannelRequest.vue index fb0bb07ed..b8d71b09d 100644 --- a/src/views/AddChannelRequest.vue +++ b/src/views/AddChannelRequest.vue @@ -243,7 +243,7 @@ export default { return ( (cid && !cid[0].includes("/c/") - && (cid[1].length > 12 || cid[0].includes('@')) + && (cid[1].length > 12 || cid[0].includes("@")) && cid[0].startsWith("ht")) || this.$t("channelRequest.ChannelURLErrorFeedback") ); @@ -270,8 +270,8 @@ export default { const regex = /(?:https?:\/\/)(?:www\.)?youtu(?:be\.com\/)(?:channel\/|@)([\w\-_]*)/gi; const matches = [...this.link.matchAll(regex)]; let id = matches?.[0]?.[1]; - handle = this.link.includes('@') - id = handle ? '@' + id.toLowerCase() : id; + handle = this.link.includes("@"); + id = handle ? `@${id.toLowerCase()}` : id; try { const exists = id && (await backendApi.channel(id)); @@ -355,7 +355,11 @@ export default { }) .catch((e) => { this.error = true; - this.errorMessage = e; + if (e.response && typeof e.response.data === "string") { + this.errorMessage = e.response.data; + } else { + this.errorMessage = e; + } }); } else { this.error = true; From 6463529397a2bec1363f5e53b43d91a428152f78 Mon Sep 17 00:00:00 2001 From: sphinxrave <62570796+sphinxrave@users.noreply.github.com> Date: Mon, 22 Dec 2025 14:34:31 -0800 Subject: [PATCH 06/10] song search support composition --- src/components/media/SongSearch.vue | 51 +++++++++++++++++++---------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/src/components/media/SongSearch.vue b/src/components/media/SongSearch.vue index 727e59de1..0b784b0a2 100644 --- a/src/components/media/SongSearch.vue +++ b/src/components/media/SongSearch.vue @@ -20,6 +20,8 @@ hide-details @input="onInput" @keydown.enter="onEnterKeyDown" + @compositionstart="onCompositionStart" + @compositionend="onCompositionEnd" >