From 4160bfb8fcbaa0d43da896bd96600c205d1ec9c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 2 Dec 2024 16:28:59 +0100 Subject: [PATCH] Add better parser for twitter and WC --- src/parser.mjs | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/parser.mjs b/src/parser.mjs index e5f664d8..920b156c 100644 --- a/src/parser.mjs +++ b/src/parser.mjs @@ -26,9 +26,6 @@ const filtered = [ "kiwinews.xyz", "kiwinews.io", "instagram.com", - "warpcast.com", - "twitter.com", - "x.com", ]; async function extractCanonicalLink(html) { @@ -74,7 +71,34 @@ const checkOgImage = async (url) => { } }; +const getYTId = (url) => { + try { + const u = new URL(url); + if (u.hostname === "youtu.be") return u.pathname.slice(1); + if (u.hostname === "youtube.com" || u.hostname === "www.youtube.com") { + return u.searchParams.get("v"); + } + return null; + } catch { + return null; + } +}; + export const metadata = async (url) => { + let urlObj; + try { + urlObj = new URL(url); + } catch { + throw new Error("Invalid URL"); + } + + const { hostname } = urlObj; + + if (hostname === "twitter.com" || hostname === "x.com") { + urlObj.hostname = "fxtwitter.com"; + url = urlObj.toString(); + } + let result, html; if (cache.has(url)) { const fromCache = cache.get(url);