diff --git a/packages/api/src/services/save_email.ts b/packages/api/src/services/save_email.ts index 860209bf4..dbb0a8ed5 100644 --- a/packages/api/src/services/save_email.ts +++ b/packages/api/src/services/save_email.ts @@ -2,7 +2,7 @@ import { PubsubClient } from '../datalayer/pubsub' import { DataModels } from '../resolvers/types' import { generateSlug, stringToHash, validatedDate } from '../utils/helpers' import { - parseMetadata, + parseUrlMetadata, parseOriginalContent, parsePreparedContent, } from '../utils/parser' @@ -44,7 +44,7 @@ export const saveEmail = async ( const slug = generateSlug(title) const pageType = parseOriginalContent(url, input.originalContent) - const metadata = await parseMetadata(url) + const metadata = await parseUrlMetadata(url) const articleToSave = { originalHtml: input.originalContent, diff --git a/packages/api/src/utils/parser.ts b/packages/api/src/utils/parser.ts index 54080c4f6..d04451d4b 100644 --- a/packages/api/src/utils/parser.ts +++ b/packages/api/src/utils/parser.ts @@ -352,12 +352,9 @@ type Metadata = { previewImage: string } -export const parseMetadata = async ( - url: string -): Promise => { +export const parsePageMetadata = async (html: string): Promise => { try { - const res = await axios.get(url) - const window = new JSDOM(res.data).window + const window = new JSDOM(html).window // get open graph metadata const description = @@ -385,7 +382,19 @@ export const parseMetadata = async ( return { title, author, description, previewImage } } catch (e) { - console.log('failed to got:', url, e) + console.log('failed to parse page:', html, e) + return undefined + } +} + +export const parseUrlMetadata = async ( + url: string +): Promise => { + try { + const res = await axios.get(url) + return parsePageMetadata(res.data) + } catch (e) { + console.log('failed to get:', url, e) return undefined } }