add methid to parse content metadata

This commit is contained in:
Jackson Harper 2022-03-03 17:10:06 -08:00
parent c2e08d0e8f
commit 05373ba3c7
2 changed files with 17 additions and 8 deletions

View file

@ -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,

View file

@ -352,12 +352,9 @@ type Metadata = {
previewImage: string
}
export const parseMetadata = async (
url: string
): Promise<Metadata | undefined> => {
export const parsePageMetadata = async (html: string): Promise<Metadata | undefined> => {
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<Metadata | undefined> => {
try {
const res = await axios.get(url)
return parsePageMetadata(res.data)
} catch (e) {
console.log('failed to get:', url, e)
return undefined
}
}