From fcd7291beb17cc8baec872b8d829d09e750f933b Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Mon, 4 Mar 2024 05:28:26 +0800 Subject: [PATCH] Fix URL copied via right click menu (#4690) * ! Fix URL copied via right click menu - Invalid URL when copying IV video - URL with user playlist ID * * Make copy link entry in right click menu to only show for non user playlists --- src/main/index.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/index.js b/src/main/index.js index 2f8944c88..f9c8fd7a9 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -64,7 +64,9 @@ function runApp() { const path = urlParts[1] if (path) { - visible = ['/playlist', '/channel', '/watch'].some(p => path.startsWith(p)) + visible = ['/channel', '/watch'].some(p => path.startsWith(p)) || + // Only show copy link entry for non user playlists + (path.startsWith('/playlist') && !/playlistType=user/.test(path)) } } else { visible = true @@ -103,17 +105,17 @@ function runApp() { let url if (toYouTube) { - url = `https://youtu.be/${id}` + url = new URL(`https://youtu.be/${id}`) } else { - url = `https://redirect.invidious.io/watch?v=${id}` + url = new URL(`https://redirect.invidious.io/watch?v=${id}`) } if (query) { const params = new URLSearchParams(query) - const newParams = new URLSearchParams() + const newParams = new URLSearchParams(url.search) let hasParams = false - if (params.has('playlistId')) { + if (params.has('playlistId') && params.get('playlistType') !== 'user') { newParams.set('list', params.get('playlistId')) hasParams = true } @@ -124,11 +126,11 @@ function runApp() { } if (hasParams) { - url += '?' + newParams.toString() + url.search = newParams.toString() } } - return url + return url.toString() } } }