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,