Timothy Jaeryang Baek 1 周之前
父节点
当前提交
05732de898

+ 2 - 5
src/lib/components/chat/MessageInput/AttachWebpageModal.svelte

@@ -7,7 +7,7 @@
 
 	import Modal from '$lib/components/common/Modal.svelte';
 	import XMark from '$lib/components/icons/XMark.svelte';
-	import { isValidHttpUrl } from '$lib/utils';
+	import { isValidHttpUrl, isYoutubeUrl } from '$lib/utils';
 
 	export let show = false;
 	export let onSubmit: (e) => void;
@@ -17,10 +17,7 @@
 	const submitHandler = () => {
 		if (isValidHttpUrl(url)) {
 			onSubmit({
-				type:
-					url.startsWith('https://www.youtube.com') || url.startsWith('https://youtu.be') || url.startsWith('https://youtube.com') || url.startsWith('https://m.youtube.com')
-						? 'youtube'
-						: 'web',
+				type: isYoutubeUrl(url) ? 'youtube' : 'web',
 				data: url
 			});
 

+ 3 - 3
src/lib/components/chat/MessageInput/Commands/Knowledge.svelte

@@ -7,7 +7,7 @@
 	dayjs.extend(relativeTime);
 
 	import { tick, getContext, onMount, onDestroy } from 'svelte';
-	import { removeLastWordFromString, isValidHttpUrl } from '$lib/utils';
+	import { removeLastWordFromString, isValidHttpUrl, isYoutubeUrl } from '$lib/utils';
 	import Tooltip from '$lib/components/common/Tooltip.svelte';
 	import DocumentPage from '$lib/components/icons/DocumentPage.svelte';
 	import Database from '$lib/components/icons/Database.svelte';
@@ -36,7 +36,7 @@
 				: items),
 
 			...(query.startsWith('http')
-				? query.startsWith('https://www.youtube.com') || query.startsWith('https://youtu.be')
+				? isYoutubeUrl(query)
 					? [{ type: 'youtube', name: query, description: query }]
 					: [
 							{
@@ -228,7 +228,7 @@
 		{/if}
 	{/each}
 
-	{#if query.startsWith('https://www.youtube.com') || query.startsWith('https://youtu.be')}
+	{#if isYoutubeUrl(query)}
 		<button
 			class="px-2 py-1 rounded-xl w-full text-left bg-gray-50 dark:bg-gray-800 dark:text-gray-100 selected-command-option-button"
 			type="button"

+ 9 - 0
src/lib/utils/index.ts

@@ -799,6 +799,15 @@ export const isValidHttpUrl = (string: string) => {
 	return url.protocol === 'http:' || url.protocol === 'https:';
 };
 
+export const isYoutubeUrl = (url: string) => {
+	return (
+		url.startsWith('https://www.youtube.com') ||
+		url.startsWith('https://youtu.be') ||
+		url.startsWith('https://youtube.com') ||
+		url.startsWith('https://m.youtube.com')
+	);
+};
+
 export const removeEmojis = (str: string) => {
 	// Regular expression to match emojis
 	const emojiRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;