export async function getWebsiteTitle(url: string): Promise { const res = await fetch(url, { redirect: "follow" }) if (!res.ok) { return null } const contentType = res.headers.get("content-type") if (!contentType || !contentType.includes("text/html")) { return null } const html = await res.text() const titleMatch = html.match(/]*>([^<]*)<\/title>/i) if (titleMatch && titleMatch[1]) { const title = titleMatch[1] .replace(/</g, "<") .replace(/>/g, ">") .replace(/&/g, "&") .replace(/"/g, "\"") .replace(/'/g, "'") .replace(/ /g, " ") .trim() return title || null } return null }