about summary refs log tree commit diff
path: root/src/lib/extractHtmlMeta.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/extractHtmlMeta.ts')
-rw-r--r--src/lib/extractHtmlMeta.ts10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/extractHtmlMeta.ts b/src/lib/extractHtmlMeta.ts
index 2517262be..038ca81c6 100644
--- a/src/lib/extractHtmlMeta.ts
+++ b/src/lib/extractHtmlMeta.ts
@@ -1,15 +1,18 @@
+import {extractTwitterMeta} from './extractTwitterMeta'
 import {extractYoutubeMeta} from './extractYoutubeMeta'
 
 interface ExtractHtmlMetaInput {
   html: string
   hostname?: string
+  pathname?: string
 }
 
 export const extractHtmlMeta = ({
   html,
   hostname,
+  pathname,
 }: ExtractHtmlMetaInput): Record<string, string> => {
-  const htmlTitleRegex = /<title>([^<]+)<\/title>/i
+  const htmlTitleRegex = /<title.*>([^<]+)<\/title>/i
 
   let res: Record<string, string> = {}
 
@@ -56,9 +59,12 @@ export const extractHtmlMeta = ({
 
   const isYoutubeUrl =
     hostname?.includes('youtube.') || hostname?.includes('youtu.be')
+  const isTwitterUrl = hostname?.includes('twitter.')
+  // Workaround for some websites not having a title or description in the meta tags in the initial serve
   if (isYoutubeUrl) {
-    // Workaround for Youtube not having a title in the meta tags
     res = {...res, ...extractYoutubeMeta(html)}
+  } else if (isTwitterUrl) {
+    res = {...extractTwitterMeta({pathname})}
   }
 
   return res