From fc86bc1901a52e28a872b6a099f779fd6b153d7b Mon Sep 17 00:00:00 2001 From: Christopher Date: Thu, 22 Jan 2026 13:25:15 -0800 Subject: [PATCH] Fix for url previews --- src/app/api/media/preview/route.ts | 20 +++++++++++++------- src/app/page.tsx | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/app/api/media/preview/route.ts b/src/app/api/media/preview/route.ts index 61ad057..3429e42 100644 --- a/src/app/api/media/preview/route.ts +++ b/src/app/api/media/preview/route.ts @@ -14,15 +14,21 @@ export async function GET(req: NextRequest) { url = 'https://' + url; } - const response = await fetch(url, { - headers: { - 'User-Agent': 'SynapsisBot/1.0', - }, - signal: AbortSignal.timeout(5000), // 5s timeout - }); + let response; + try { + response = await fetch(url, { + headers: { + 'User-Agent': 'SynapsisBot/1.0', + }, + signal: AbortSignal.timeout(5000), // 5s timeout + }); + } catch (fetchError) { + console.warn(`Fetch failed for URL: ${url}`, fetchError); + return NextResponse.json({ error: 'Could not reach the URL' }, { status: 404 }); + } if (!response.ok) { - throw new Error(`Failed to fetch URL: ${response.status}`); + return NextResponse.json({ error: `URL returned status ${response.status}` }, { status: 404 }); } const html = await response.text(); diff --git a/src/app/page.tsx b/src/app/page.tsx index d469867..f3a6362 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -230,7 +230,7 @@ function Compose({ onPost }: { onPost: (content: string, mediaIds: string[], lin // Detect URLs in content useEffect(() => { - const urlRegex = /(?:https?:\/\/)?(?:www\.)?([a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+\.[a-z]{2,63})\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi; + const urlRegex = /(?:https?:\/\/)?((?:[a-zA-Z0-9-]+\.)+[a-z]{2,63})\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi; const matches = content.match(urlRegex); if (matches && matches[0]) {