mirror of
https://github.com/linkwarden/linkwarden.git
synced 2026-03-03 03:47:02 +00:00
bug fixed
This commit is contained in:
@@ -72,7 +72,7 @@ export default async function postLink(
|
||||
}
|
||||
|
||||
const { title = "", headers = new Headers() } = link.url
|
||||
? await fetchTitleAndHeaders(link.url, null)
|
||||
? await fetchTitleAndHeaders(link.url)
|
||||
: {};
|
||||
|
||||
const name =
|
||||
|
||||
@@ -3,7 +3,10 @@ import https from "https";
|
||||
import { HttpsProxyAgent } from "https-proxy-agent";
|
||||
import { SocksProxyAgent } from "socks-proxy-agent";
|
||||
|
||||
export default async function fetchTitleAndHeaders(url: string, content: string | null) {
|
||||
export default async function fetchTitleAndHeaders(
|
||||
url: string,
|
||||
content?: string
|
||||
) {
|
||||
if (!url?.startsWith("http://") && !url?.startsWith("https://"))
|
||||
return { title: "", headers: null };
|
||||
|
||||
@@ -48,14 +51,19 @@ export default async function fetchTitleAndHeaders(url: string, content: string
|
||||
let text: string;
|
||||
|
||||
if (content) {
|
||||
text = content
|
||||
text = content;
|
||||
} else {
|
||||
text = await (response as any).text()
|
||||
text = await (response as any).text();
|
||||
}
|
||||
|
||||
const headers = (response as Response)?.headers || null;
|
||||
|
||||
return await fetchTitleAndHeadersFromContent(text, headers);
|
||||
// regular expression to find the <title> tag
|
||||
let match = text.match(/<title.*>([^<]*)<\/title>/);
|
||||
|
||||
const title = match?.[1] || "";
|
||||
|
||||
return { title, headers };
|
||||
} else {
|
||||
return { title: "", headers: null };
|
||||
}
|
||||
@@ -64,12 +72,3 @@ export default async function fetchTitleAndHeaders(url: string, content: string
|
||||
return { title: "", headers: null };
|
||||
}
|
||||
}
|
||||
|
||||
export async function fetchTitleAndHeadersFromContent(content: string, headers: Headers) {
|
||||
// regular expression to find the <title> tag
|
||||
let match = content.match(/<title.*>([^<]*)<\/title>/);
|
||||
|
||||
const title = match?.[1] || "";
|
||||
|
||||
return { title, headers };
|
||||
}
|
||||
@@ -153,7 +153,12 @@ async function handlePost(req: NextApiRequest, res: NextApiResponse) {
|
||||
const isImage = mimetype?.includes("image");
|
||||
const isHTML = mimetype === "text/html";
|
||||
|
||||
const { title = "" } = url ? await fetchTitleAndHeaders(url, isHTML && !isPreview ? fileBuffer.toString("utf-8") : null) : {};
|
||||
const { title = "" } = url
|
||||
? await fetchTitleAndHeaders(
|
||||
url,
|
||||
isHTML && !isPreview ? fileBuffer.toString("utf-8") : undefined
|
||||
)
|
||||
: {};
|
||||
|
||||
const link = await prisma.link.create({
|
||||
data: {
|
||||
|
||||
Reference in New Issue
Block a user