From c0a4982ebe27c89f296a0bbd518e938f09d1f054 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 2 Mar 2023 10:35:59 +0100 Subject: Fix 404 when having ;threadId param --- server/controllers/client.ts | 9 ++++++++- server/tests/client.ts | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/server/controllers/client.ts b/server/controllers/client.ts index f9514d988..a85c10720 100644 --- a/server/controllers/client.ts +++ b/server/controllers/client.ts @@ -138,7 +138,14 @@ async function generateEmbedHtmlPage (req: express.Request, res: express.Respons } async function generateWatchHtmlPage (req: express.Request, res: express.Response) { - const html = await ClientHtml.getWatchHTMLPage(req.params.id + '', req, res) + // Thread link is '/w/:videoId;threadId=:threadId' + // So to get the videoId we need to remove the last part + let videoId = req.params.id + '' + + const threadIdIndex = videoId.indexOf(';threadId') + if (threadIdIndex !== -1) videoId = videoId.substring(0, threadIdIndex) + + const html = await ClientHtml.getWatchHTMLPage(videoId, req, res) return sendHTML(html, res, true) } diff --git a/server/tests/client.ts b/server/tests/client.ts index e0dae2b5e..9a20c2a10 100644 --- a/server/tests/client.ts +++ b/server/tests/client.ts @@ -225,6 +225,14 @@ describe('Test a client controllers', function () { } }) + it('Should have valid Open Graph tags on the watch page with thread id Angular param', async function () { + for (const path of watchVideoBasePaths) { + for (const id of videoIds) { + await watchVideoPageTest(path + id + ';threadId=1') + } + } + }) + it('Should have valid Open Graph tags on the watch playlist page', async function () { for (const path of watchPlaylistBasePaths) { for (const id of playlistIds) { -- cgit v1.2.3