diff --git a/packages/api/src/jobs/ai/create_digest.ts b/packages/api/src/jobs/ai/create_digest.ts index ae9affa13..929b88581 100644 --- a/packages/api/src/jobs/ai/create_digest.ts +++ b/packages/api/src/jobs/ai/create_digest.ts @@ -31,6 +31,7 @@ import { ANTHROPIC_MODEL, OPENAI_MODEL } from '../../utils/ai' import { analytics } from '../../utils/analytics' import { enqueueSendEmail } from '../../utils/createTask' import { wordsCount } from '../../utils/helpers' +import { createThumbnailProxyUrl } from '../../utils/imageproxy' import { logger } from '../../utils/logger' import { htmlToMarkdown, markdownToHtml } from '../../utils/parser' import { uploadToBucket } from '../../utils/uploads' @@ -649,7 +650,9 @@ const findThumbnail = async ( try { for (const thumbnail of thumbnails) { - const size = await getImageSize(thumbnail) + const proxyUrl = createThumbnailProxyUrl(thumbnail) + // pre-cache thumbnail first if exists + const size = await getImageSize(proxyUrl) if (!size) { continue } diff --git a/packages/api/src/jobs/find_thumbnail.ts b/packages/api/src/jobs/find_thumbnail.ts index 3a81a2d6b..b446e462a 100644 --- a/packages/api/src/jobs/find_thumbnail.ts +++ b/packages/api/src/jobs/find_thumbnail.ts @@ -5,7 +5,7 @@ import { findLibraryItemById, updateLibraryItem, } from '../services/library_item' -import { createThumbnailUrl } from '../utils/imageproxy' +import { createThumbnailProxyUrl } from '../utils/imageproxy' import { logger } from '../utils/logger' interface Data { @@ -137,7 +137,7 @@ export const findThumbnail = async (data: Data) => { const thumbnail = item.thumbnail if (thumbnail) { - const proxyUrl = createThumbnailUrl(thumbnail) + const proxyUrl = createThumbnailProxyUrl(thumbnail) // pre-cache thumbnail first if exists const image = await fetchImage(proxyUrl) if (!image) { diff --git a/packages/api/src/jobs/rss/refreshFeed.ts b/packages/api/src/jobs/rss/refreshFeed.ts index 3bd1d2624..532c7de6f 100644 --- a/packages/api/src/jobs/rss/refreshFeed.ts +++ b/packages/api/src/jobs/rss/refreshFeed.ts @@ -16,7 +16,7 @@ import { import { findActiveUser } from '../../services/user' import createHttpTaskWithToken from '../../utils/createTask' import { cleanUrl } from '../../utils/helpers' -import { createThumbnailUrl } from '../../utils/imageproxy' +import { createThumbnailProxyUrl } from '../../utils/imageproxy' import { logger } from '../../utils/logger' import { RSSRefreshContext } from './refreshAllFeeds' @@ -367,7 +367,7 @@ const createItemWithFeedContent = async ( }) const thumbnail = getThumbnail(item) - const previewImage = thumbnail && createThumbnailUrl(thumbnail) + const previewImage = thumbnail && createThumbnailProxyUrl(thumbnail) const url = cleanUrl(item.link) const user = await findActiveUser(userId) diff --git a/packages/api/src/routers/svc/following.ts b/packages/api/src/routers/svc/following.ts index 8d171af6d..5e29688f3 100644 --- a/packages/api/src/routers/svc/following.ts +++ b/packages/api/src/routers/svc/following.ts @@ -9,7 +9,7 @@ import { createAndSaveLabelsInLibraryItem } from '../../services/labels' import { createOrUpdateLibraryItem } from '../../services/library_item' import { parsedContentToLibraryItem } from '../../services/save_page' import { cleanUrl, generateSlug } from '../../utils/helpers' -import { createThumbnailUrl } from '../../utils/imageproxy' +import { createThumbnailProxyUrl } from '../../utils/imageproxy' import { logger } from '../../utils/logger' import { ParsedContentPuppeteer, @@ -72,7 +72,7 @@ export function followingServiceRouter() { const feedUrl = req.body.addedToFollowingBy const thumbnail = - req.body.thumbnail && createThumbnailUrl(req.body.thumbnail) + req.body.thumbnail && createThumbnailProxyUrl(req.body.thumbnail) const url = cleanUrl(req.body.url) const preparedDocument: PreparedDocumentInput = { diff --git a/packages/api/src/utils/imageproxy.ts b/packages/api/src/utils/imageproxy.ts index f449ca871..00b576215 100644 --- a/packages/api/src/utils/imageproxy.ts +++ b/packages/api/src/utils/imageproxy.ts @@ -28,5 +28,5 @@ export function createImageProxyUrl( return `${env.imageProxy.url}/${width}x${height},s${signature}/${url}` } -export const createThumbnailUrl = (url: string): string => +export const createThumbnailProxyUrl = (url: string): string => createImageProxyUrl(url, 320, 320)