diff --git a/api/services/rich-content-service.ts b/api/services/rich-content-service.ts index 8d37c22..c15c7da 100644 --- a/api/services/rich-content-service.ts +++ b/api/services/rich-content-service.ts @@ -156,17 +156,17 @@ export function extractOgTag( ): string | undefined { const patterns = [ new RegExp( - `]+property=["']og:${tag}["'][^>]+content=["']([^"']+)["']`, + `]+property=["']og:${tag}["'][^>]+content=(["'])([\\s\\S]*?)\\1`, "i", ), new RegExp( - `]+content=["']([^"']+)["'][^>]+property=["']og:${tag}["']`, + `]+content=(["'])([\\s\\S]*?)\\1[^>]+property=["']og:${tag}["']`, "i", ), ]; for (const pattern of patterns) { const match = html.match(pattern); - if (match) return decodeHtmlEntities(match[1]); + if (match) return decodeHtmlEntities(match[2]); } return undefined; } @@ -179,17 +179,17 @@ export function extractMetaName( const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); const patterns = [ new RegExp( - `]+name=["']${escaped}["'][^>]+content=["']([^"']+)["']`, + `]+name=["']${escaped}["'][^>]+content=(["'])([\\s\\S]*?)\\1`, "i", ), new RegExp( - `]+content=["']([^"']+)["'][^>]+name=["']${escaped}["']`, + `]+content=(["'])([\\s\\S]*?)\\1[^>]+name=["']${escaped}["']`, "i", ), ]; for (const pattern of patterns) { const match = html.match(pattern); - if (match) return decodeHtmlEntities(match[1]); + if (match) return decodeHtmlEntities(match[2]); } return undefined; }