diff --git a/packages/api/src/services/save_email.ts b/packages/api/src/services/save_email.ts index 857f343a4..79614502f 100644 --- a/packages/api/src/services/save_email.ts +++ b/packages/api/src/services/save_email.ts @@ -1,5 +1,9 @@ import { generateSlug, stringToHash, validatedDate } from '../utils/helpers' -import { parsePreparedContent, parseUrlMetadata } from '../utils/parser' +import { + FAKE_URL_PREFIX, + parsePreparedContent, + parseUrlMetadata, +} from '../utils/parser' import normalizeUrl from 'normalize-url' import { PubsubClient } from '../datalayer/pubsub' import { ArticleSavingRequestStatus, Page } from '../elastic/types' @@ -20,6 +24,10 @@ export type SaveEmailInput = { unsubHttpUrl?: string } +const isStubUrl = (url: string): boolean => { + return url.startsWith(FAKE_URL_PREFIX) +} + export const saveEmail = async ( ctx: SaveContext, input: SaveEmailInput @@ -37,7 +45,7 @@ export const saveEmail = async ( ) const content = parseResult.parsedContent?.content || input.originalContent const slug = generateSlug(input.title) - const metadata = await parseUrlMetadata(url) + const metadata = isStubUrl(url) ? undefined : await parseUrlMetadata(url) const articleToSave: Page = { id: '', diff --git a/packages/api/src/utils/parser.ts b/packages/api/src/utils/parser.ts index 6c2ba1ac3..8900fc5d3 100644 --- a/packages/api/src/utils/parser.ts +++ b/packages/api/src/utils/parser.ts @@ -44,6 +44,8 @@ const DOM_PURIFY_CONFIG = { } const ARTICLE_PREFIX = 'omnivore:' +export const FAKE_URL_PREFIX = 'https://omnivore.app/no_url?q=' + interface ContentHandler { shouldPrehandle: (url: URL, dom: Document) => boolean prehandle: (url: URL, document: Document) => Promise @@ -562,7 +564,7 @@ export const isProbablyArticle = async ( return !!user || subject.includes(ARTICLE_PREFIX) } -export const generateUniqueUrl = () => 'https://omnivore.app/no_url?q=' + uuid() +export const generateUniqueUrl = () => FAKE_URL_PREFIX + uuid() export const getTitleFromEmailSubject = (subject: string) => { const title = subject.replace(ARTICLE_PREFIX, '')