From 565da42b460a52b329886665de6a66b1f288e539 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 28 Jul 2022 11:02:52 -0700 Subject: [PATCH 1/3] When parsing newsletters with no url dont fetch the generated url --- packages/api/src/services/save_email.ts | 9 +++++++-- packages/api/src/utils/parser.ts | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/api/src/services/save_email.ts b/packages/api/src/services/save_email.ts index 857f343a4..57c411ff5 100644 --- a/packages/api/src/services/save_email.ts +++ b/packages/api/src/services/save_email.ts @@ -1,9 +1,10 @@ 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' import { createPage, getPageByParam, updatePage } from '../elastic/pages' +import { urlAlphabet } from 'nanoid' export type SaveContext = { pubsub: PubsubClient @@ -20,6 +21,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 +42,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, '') From 1525742b4ef4309ca1f471c84b7e49db4c73bf0a Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 28 Jul 2022 11:23:27 -0700 Subject: [PATCH 2/3] Linting fixes --- packages/api/src/services/save_email.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/api/src/services/save_email.ts b/packages/api/src/services/save_email.ts index 57c411ff5..5373ecead 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 { FAKE_URL_PREFIX, 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' @@ -21,7 +25,7 @@ export type SaveEmailInput = { unsubHttpUrl?: string } -const isStubUrl = (url: string): Boolean => { +const isStubUrl = (url: string): boolean => { return url.startsWith(FAKE_URL_PREFIX) } @@ -42,7 +46,7 @@ export const saveEmail = async ( ) const content = parseResult.parsedContent?.content || input.originalContent const slug = generateSlug(input.title) - const metadata = isStubUrl(url) ? undefined : (await parseUrlMetadata(url)) + const metadata = isStubUrl(url) ? undefined : await parseUrlMetadata(url) const articleToSave: Page = { id: '', From 6d19c8c9bc6b5f6d8bc65cc05b2ee21f1b5ed5c7 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 28 Jul 2022 11:43:16 -0700 Subject: [PATCH 3/3] Remove unused import --- packages/api/src/services/save_email.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/api/src/services/save_email.ts b/packages/api/src/services/save_email.ts index 5373ecead..79614502f 100644 --- a/packages/api/src/services/save_email.ts +++ b/packages/api/src/services/save_email.ts @@ -8,7 +8,6 @@ import normalizeUrl from 'normalize-url' import { PubsubClient } from '../datalayer/pubsub' import { ArticleSavingRequestStatus, Page } from '../elastic/types' import { createPage, getPageByParam, updatePage } from '../elastic/pages' -import { urlAlphabet } from 'nanoid' export type SaveContext = { pubsub: PubsubClient