From 885d8d1ec2df2bd2fd5d45984cd7d07fa5275b13 Mon Sep 17 00:00:00 2001 From: florian <> Date: Fri, 29 Mar 2024 13:54:12 +0100 Subject: [PATCH] feat: added exif cleanup --- bun.lockb | Bin 0 -> 142566 bytes src/components/BlobList/BlobList.css | 2 +- src/components/BlobList/BlobList.tsx | 51 ++++++++------------------- src/pages/Upload.tsx | 31 +++++++++++++--- src/utils/exif.ts | 46 ++++++++++++++++++++++++ 5 files changed, 89 insertions(+), 41 deletions(-) create mode 100755 bun.lockb create mode 100644 src/utils/exif.ts diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..7d6963ffc64692d53b670d41ff2294cb21f0dcd9 GIT binary patch literal 142566 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

+KFPdT?=WenHmbn$on*yZ5zT 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 literal 0 HcmV?d00001 diff --git a/src/components/BlobList/BlobList.css b/src/components/BlobList/BlobList.css index 4558b84..5929f84 100644 --- a/src/components/BlobList/BlobList.css +++ b/src/components/BlobList/BlobList.css @@ -12,7 +12,7 @@ .blob-list .blob { @apply p-1 hover:bg-neutral-700 rounded-md grid pr-4; - grid-template-columns: 2em auto 6em 10em 7em 1em; + grid-template-columns: 2em auto 6em 10em 7em 3em; } .blob-list .blob span { diff --git a/src/components/BlobList/BlobList.tsx b/src/components/BlobList/BlobList.tsx index b2478af..47a5558 100644 --- a/src/components/BlobList/BlobList.tsx +++ b/src/components/BlobList/BlobList.tsx @@ -1,4 +1,4 @@ -import { DocumentIcon, ListBulletIcon, PhotoIcon, TrashIcon } from '@heroicons/react/24/outline'; +import { ClipboardDocumentIcon, DocumentIcon, ListBulletIcon, PhotoIcon, TrashIcon } from '@heroicons/react/24/outline'; import { BlobDescriptor } from 'blossom-client-sdk'; import { formatDate, formatFileSize } from '../../utils'; import './BlobList.css'; @@ -75,49 +75,28 @@ const BlobList = ({ blobs, onDelete, title }: BlobListProps) => { {formatFileSize(blob.size)} {blob.type && `${blob.type}`} {formatDate(blob.created)} - {onDelete && ( - - onDelete(blob)}> - + + ))} )} ); - /* - )} - } else { - return ( -
- {blobs.map((blob: BlobDescriptor) => ( -
- - - - - - {blob.sha256} - - - {formatFileSize(blob.size)} - {blob.type && `${blob.type}`} - {formatDate(blob.created)} - {onDelete && ( - - onDelete(blob)}> - - - - )} -
- ))} -
- ); - }*/ + }; export default BlobList; diff --git a/src/pages/Upload.tsx b/src/pages/Upload.tsx index a565b78..4eb7d05 100644 --- a/src/pages/Upload.tsx +++ b/src/pages/Upload.tsx @@ -6,6 +6,7 @@ import { useServerInfo } from '../utils/useServerInfo'; import { useQueryClient } from '@tanstack/react-query'; import { ArrowUpOnSquareIcon } from '@heroicons/react/24/outline'; import ProgressBar from '../components/ProgressBar/ProgressBar'; +import { removeExifData } from '../exif'; type TransferStats = { enabled: boolean; @@ -20,11 +21,21 @@ function Upload() { const queryClient = useQueryClient(); const [transfers, setTransfers] = useState<{ [key: string]: TransferStats }>({}); const [files, setFiles] = useState([]); + const [cleanPrivateData, setCleanPrivateData] = useState(true); const upload = async () => { - if (files && files.length) { + const filesToUpload: File[] = []; + for (const f of files) { + if (cleanPrivateData) { + filesToUpload.push(await removeExifData(f)); + } else { + filesToUpload.push(f); + } + } + + if (filesToUpload && filesToUpload.length) { // sum files sizes - const totalSize = files.reduce((acc, f) => acc + f.size, 0); + const totalSize = filesToUpload.reduce((acc, f) => acc + f.size, 0); // set all entries size to totalSize setTransfers(ut => { @@ -42,7 +53,7 @@ function Upload() { continue; } const serverUrl = serverInfo[server.name].url; - for (const file of files) { + for (const file of filesToUpload) { const uploadAuth = await BlossomClient.getUploadAuth(file, signEventTemplate, 'Upload Blob'); const newBlob = await BlossomClient.uploadBlob(serverUrl, file, uploadAuth); @@ -94,7 +105,7 @@ function Upload() { Browse or drag & drop -
+
{servers.map(s => ( <> +
+ setCleanPrivateData(e.currentTarget.checked)} + /> + +