From e5cb9aa848009ea22c1385e4d33b7edf372979fb Mon Sep 17 00:00:00 2001 From: Ahmad Mujahid <55625580+AhmadMuj@users.noreply.github.com> Date: Mon, 17 Feb 2025 13:25:16 +0400 Subject: feat: Add PDF screenshot generation and display (#995) * Updated pdf2json to 3.1.5 * Extract and store a screenshot from PDF files using pdf2pic * Installing graphicsmagick and ghostscript * Generate Missing PDF screenshot with tidyAssets worker for backward support * Display PDF screenshot instead of the PDF in web if it exists. * Display PDF screenshot in mobile app if exists. * Updated pnpm-lock.yaml * Removed console.log * Revert the unnecessary changes in package.json * Revert pnpm-lock changes * Prevent rendering PDF files if the screenshot is not generated * refactor: replace useEffect with useMemo for section initialization * feat: show PDF file download button and handle large PDFs by defaulting to screenshot view * feat: add file size to openapi spec * feature: Add Assets preprocessing in fix mode to admin actions * i18n: add reprocess_assets_fix_mode translation * i18n: Add missing ar translations * A bunch of fixes * Fix openspec schema --------- Co-authored-by: Mohamed Bassem --- packages/trpc/routers/bookmarks.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'packages/trpc/routers/bookmarks.ts') diff --git a/packages/trpc/routers/bookmarks.ts b/packages/trpc/routers/bookmarks.ts index 12ec9ccb..6ab863fb 100644 --- a/packages/trpc/routers/bookmarks.ts +++ b/packages/trpc/routers/bookmarks.ts @@ -259,6 +259,7 @@ function toZodSchema(bookmark: BookmarkQueryReturnType): ZBookmark { assetId: asset.assetId, fileName: asset.fileName, sourceUrl: asset.sourceUrl, + size: assets.find((a) => a.id == asset.assetId)?.size, }; break; } @@ -441,6 +442,7 @@ export const bookmarksAppRouter = router({ case BookmarkTypes.ASSET: { await AssetPreprocessingQueue.enqueue({ bookmarkId: bookmark.id, + fixMode: false, }); break; } @@ -830,6 +832,7 @@ export const bookmarksAppRouter = router({ assetType: bookmarkAssets.assetType, fileName: bookmarkAssets.fileName, sourceUrl: bookmarkAssets.sourceUrl ?? null, + size: null, // This will get filled in the asset loop }; break; } @@ -881,6 +884,13 @@ export const bookmarksAppRouter = router({ } acc[bookmarkId].content = content; } + if (acc[bookmarkId].content.type == BookmarkTypes.ASSET) { + const content = acc[bookmarkId].content; + if (row.assets.id == content.assetId) { + // If this is the bookmark's main aset, caputure its size. + content.size = row.assets.size; + } + } acc[bookmarkId].assets.push({ id: row.assets.id, assetType: mapDBAssetTypeToUserType(row.assets.assetType), -- cgit v1.2.3-70-g09d2