From 22e92256ebbe0008d73f2ebf5720c70c388c13ba Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 18 Oct 2022 12:03:23 +0800 Subject: [PATCH] Fetch subscription's favicon if the site icon is base64 encoded image --- packages/api/src/services/save_newsletter_email.ts | 5 +++-- packages/api/src/utils/helpers.ts | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/api/src/services/save_newsletter_email.ts b/packages/api/src/services/save_newsletter_email.ts index 84daf9a40..0f505c53b 100644 --- a/packages/api/src/services/save_newsletter_email.ts +++ b/packages/api/src/services/save_newsletter_email.ts @@ -14,6 +14,7 @@ import { saveSubscription } from './subscriptions' import { NewsletterEmail } from '../entity/newsletter_email' import { fetchFavicon } from '../utils/parser' import { updatePage } from '../elastic/pages' +import { isBase64Image } from '../utils/helpers' interface NewsletterMessage { email: string @@ -69,8 +70,8 @@ export const saveNewsletterEmail = async ( return false } - if (!page.siteIcon) { - // fetch favicon if not already set + if (!page.siteIcon || isBase64Image(page.siteIcon)) { + // fetch favicon if not already set or is a base64 image const favicon = await fetchFavicon(page.url) if (favicon) { page.siteIcon = favicon diff --git a/packages/api/src/utils/helpers.ts b/packages/api/src/utils/helpers.ts index c85903660..a3137fbfb 100644 --- a/packages/api/src/utils/helpers.ts +++ b/packages/api/src/utils/helpers.ts @@ -269,3 +269,7 @@ export const wordsCount = (text: string, isHtml = true): number => { return 0 } } + +export const isBase64Image = (str: string): boolean => { + return str.startsWith('data:image/') +}