From 6b8b2d205942f9a394da3009ce11b64c88d17e69 Mon Sep 17 00:00:00 2001 From: vyneer <41237021+vyneer@users.noreply.github.com> Date: Wed, 6 Sep 2023 21:30:38 +0300 Subject: [PATCH] fix: dont embed kick vods and clips (#315) --- assets/chat/js/chat.js | 4 ++-- assets/chat/js/hashlinkconverter.js | 3 +++ assets/chat/js/hashlinkconverter.test.js | 11 +++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/assets/chat/js/chat.js b/assets/chat/js/chat.js index 351abc62..7f5c2078 100644 --- a/assets/chat/js/chat.js +++ b/assets/chat/js/chat.js @@ -1854,7 +1854,7 @@ class Chat { } catch (error) { MessageBuilder.error(error.message).into(this); MessageBuilder.info( - 'Usage: /embed OR /e (Valid links: Twitch streams, VODs, clips, Youtube, Rumble)', + 'Usage: /embed OR /e (Valid links: Twitch streams, VODs, clips, Youtube, Rumble, Kick streams)', ).into(this); } } @@ -1878,7 +1878,7 @@ class Chat { MessageBuilder.error(error.message).into(this); } MessageBuilder.info( - 'Usage: /postembed [] [] (Alias: /pe) (Valid links: Twitch streams, VODs, clips, Youtube, Rumble)', + 'Usage: /postembed [] [] (Alias: /pe) (Valid links: Twitch streams, VODs, clips, Youtube, Rumble, Kick streams)', ).into(this); } } diff --git a/assets/chat/js/hashlinkconverter.js b/assets/chat/js/hashlinkconverter.js index 2950b4ab..65a14b84 100644 --- a/assets/chat/js/hashlinkconverter.js +++ b/assets/chat/js/hashlinkconverter.js @@ -73,6 +73,9 @@ class HashLinkConverter { throw new Error(RUMBLE_EMBED_ERROR); case 'www.kick.com': case 'kick.com': + if (url.searchParams.has('clip') || pathname.startsWith('video/')) { + throw new Error(INVALID_LINK_ERROR); + } return `#kick/${pathname}`; default: throw new Error(INVALID_LINK_ERROR); diff --git a/assets/chat/js/hashlinkconverter.test.js b/assets/chat/js/hashlinkconverter.test.js index 68ed0486..a3776e6b 100644 --- a/assets/chat/js/hashlinkconverter.test.js +++ b/assets/chat/js/hashlinkconverter.test.js @@ -64,6 +64,7 @@ describe('Valid embeds', () => { 'https://rumble.com/embed/v26pcdc/?pub=4', '#rumble/v26pcdc', ], + ['Kick stream link', 'https://kick.com/destiny', '#kick/destiny'], ])('%s', (_, url, expectedHashLink) => { const hlc = new HashLinkConverter(); expect(hlc.convert(url)).toBe(expectedHashLink); @@ -83,6 +84,16 @@ describe('Invalid embeds', () => { 'https://www.youtube.com/tZ_gn0E87Qo', MISSING_VIDEO_ID_ERROR, ], + [ + 'Kick VOD link', + 'https://kick.com/video/d353657d-f6c5-40c0-9df2-645aadda1e66', + INVALID_LINK_ERROR, + ], + [ + 'Kick clip link', + 'https://kick.com/destiny?clip=clip_01H96SPCHRV0E2X8Y670CGXTS4', + INVALID_LINK_ERROR, + ], [ 'No arguments were giving after the command', undefined,