From 42b8aede0e1748270ec03d8e61f3b02282cdb979 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Wed, 8 May 2024 17:04:19 +0800 Subject: [PATCH] randomly pick the qualified thumbnail --- packages/api/src/jobs/ai/create_digest.ts | 26 +++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/api/src/jobs/ai/create_digest.ts b/packages/api/src/jobs/ai/create_digest.ts index 2c41572ea..8ac0d3169 100644 --- a/packages/api/src/jobs/ai/create_digest.ts +++ b/packages/api/src/jobs/ai/create_digest.ts @@ -623,17 +623,29 @@ const sendEmail = async (user: User, digest: Digest) => { const findThumbnail = async ( chapters: Chapter[] ): Promise => { - const images = await Promise.all( - chapters - .filter((chapter) => chapter.thumbnail) - .map((chapter) => getImageSize(chapter.thumbnail as string)) - ) + const thumbnails = chapters + .filter((chapter) => !!chapter.thumbnail) + .map((chapter) => chapter.thumbnail as string) + // randomly sort the thumbnails + .sort(() => 0.5 - Math.random()) try { - return _findThumbnail(images) + for (const thumbnail of thumbnails) { + const size = await getImageSize(thumbnail) + if (!size) { + continue + } + + const selectedThumbnail = _findThumbnail([size]) + if (selectedThumbnail) { + return selectedThumbnail + } + } } catch { - return undefined + logger.error('findThumbnail error') } + + return undefined } export const moveToLibrary = async (user: User, digest: Digest) => {