From 5e017a1725870bca8a01ccf852b35db06dfc7836 Mon Sep 17 00:00:00 2001 From: Kawsar Ahmed Date: Wed, 10 Apr 2024 17:02:00 +0600 Subject: [PATCH 1/5] Dev Dependencies organized --- package.json | 8 ++++---- src/lib/components/Gallery.svelte | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 92376f7..a8ae9e7 100644 --- a/package.json +++ b/package.json @@ -21,15 +21,12 @@ "@sveltejs/vite-plugin-svelte": "^3.0.0", "@tauri-apps/cli": "^1.5.11", "autoprefixer": "^10.4.17", - "dayjs": "^1.11.10", "postcss": "^8.4.33", "prettier": "^3.1.1", "prettier-plugin-svelte": "^3.1.2", "prettier-plugin-tailwindcss": "^0.5.13", - "svelte": "^4.2.7", + "svelte": "^4.2.12", "svelte-check": "^3.6.0", - "svelte-fa": "^4.0.2", - "svelte-sonner": "^0.3.19", "tailwindcss": "^3.4.1", "tslib": "^2.4.1", "typescript": "^5.0.0", @@ -41,7 +38,10 @@ "@tauri-apps/api": "^1.5.3", "bits-ui": "^0.16.0", "clsx": "^2.1.0", + "dayjs": "^1.11.10", "lucide-svelte": "^0.316.0", + "svelte-fa": "^4.0.2", + "svelte-sonner": "^0.3.22", "tailwind-merge": "^2.2.1", "tailwind-variants": "^0.1.20" } diff --git a/src/lib/components/Gallery.svelte b/src/lib/components/Gallery.svelte index bea223f..b7e785e 100644 --- a/src/lib/components/Gallery.svelte +++ b/src/lib/components/Gallery.svelte @@ -8,9 +8,9 @@
{#if noImage} From a7b81b4438c9a344b5587408fe9027f12a916228 Mon Sep 17 00:00:00 2001 From: Kawsar Ahmed Date: Wed, 10 Apr 2024 17:35:19 +0600 Subject: [PATCH 2/5] getting EXIF --- package.json | 1 + src/lib/components/gallery/ImageDetails.svelte | 2 +- src/lib/utils/types.ts | 1 + src/routes/+page.svelte | 7 +++++-- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index a8ae9e7..7f7b98c 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "bits-ui": "^0.16.0", "clsx": "^2.1.0", "dayjs": "^1.11.10", + "exifreader": "^4.22.1", "lucide-svelte": "^0.316.0", "svelte-fa": "^4.0.2", "svelte-sonner": "^0.3.22", diff --git a/src/lib/components/gallery/ImageDetails.svelte b/src/lib/components/gallery/ImageDetails.svelte index f988ed5..56770ed 100644 --- a/src/lib/components/gallery/ImageDetails.svelte +++ b/src/lib/components/gallery/ImageDetails.svelte @@ -13,6 +13,6 @@ value={dayjs($galleryStore.selectedImage?.lastModified).format('DD MMM YYYY')} /> - +
diff --git a/src/lib/utils/types.ts b/src/lib/utils/types.ts index ee263e4..d193bfa 100644 --- a/src/lib/utils/types.ts +++ b/src/lib/utils/types.ts @@ -4,6 +4,7 @@ export type ImageType = { tag: string name: string size: number + resolution: string lastModified: string | number type: string } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index c1c650e..4109676 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -16,6 +16,7 @@ import { galleryStore } from '$lib/store' import type { ImageType } from '$lib/utils/types' import { askDeleteImage, askDeleteTag, filterImageWithTag } from '$lib/actions' + import ExifReader from 'exifreader' let imageDropping = false @@ -95,6 +96,7 @@ modified_time: string accessed_time: string } = await invoke('get_file_metadata', { filePath: file }) + const EXIF = await ExifReader.load(convertFileSrc(file), { async: true }) return { id: makeid(5), @@ -102,7 +104,8 @@ name: file, size: metadata.file_size, lastModified: metadata.modified_time, - type: metadata.file_type, + type: EXIF['FileType']?.value, + resolution: `${EXIF['Image Width']?.value} x ${EXIF['Image Height']?.value}`, tag: '' as string } as ImageType }) @@ -146,7 +149,7 @@
{#if imageDropping}

Drop your images here

From 49a211958542bd141e94a8d55077327e37e53e2d Mon Sep 17 00:00:00 2001 From: Kawsar Ahmed Date: Sun, 14 Apr 2024 20:28:00 +0600 Subject: [PATCH 3/5] Added comporession level --- src/lib/components/gallery/DetailField.svelte | 4 ++-- src/lib/components/gallery/ImageDetails.svelte | 3 ++- src/lib/utils/types.ts | 1 + src/routes/+page.svelte | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib/components/gallery/DetailField.svelte b/src/lib/components/gallery/DetailField.svelte index f75a089..57e4a88 100644 --- a/src/lib/components/gallery/DetailField.svelte +++ b/src/lib/components/gallery/DetailField.svelte @@ -3,7 +3,7 @@ import Fa from 'svelte-fa' export let text: string = '' - export let value: string | number = '' + export let value: string | number | undefined = '' export let icon: IconDefinition | null = null @@ -15,6 +15,6 @@ {text}

- {value || ''} + {value != undefined || value != null ? value : ''}

diff --git a/src/lib/components/gallery/ImageDetails.svelte b/src/lib/components/gallery/ImageDetails.svelte index 56770ed..9d98f8c 100644 --- a/src/lib/components/gallery/ImageDetails.svelte +++ b/src/lib/components/gallery/ImageDetails.svelte @@ -1,7 +1,7 @@ @@ -15,4 +15,5 @@ + diff --git a/src/lib/utils/types.ts b/src/lib/utils/types.ts index d193bfa..17dc6cb 100644 --- a/src/lib/utils/types.ts +++ b/src/lib/utils/types.ts @@ -5,6 +5,7 @@ export type ImageType = { name: string size: number resolution: string + compression: number | undefined lastModified: string | number type: string } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 4109676..c0376ae 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -103,8 +103,9 @@ src: convertFileSrc(file), name: file, size: metadata.file_size, - lastModified: metadata.modified_time, + lastModified: EXIF['ICC Profile Date'].value, type: EXIF['FileType']?.value, + compression: EXIF['Compression']?.value, resolution: `${EXIF['Image Width']?.value} x ${EXIF['Image Height']?.value}`, tag: '' as string } as ImageType From eb0cef21ee45daf1e771ce02dff472fcb70d034b Mon Sep 17 00:00:00 2001 From: Kawsar Ahmed Date: Sun, 5 May 2024 16:29:00 +0600 Subject: [PATCH 4/5] Dependencies fix --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 7f7b98c..a7e8612 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,10 @@ "format": "prettier --write ./src" }, "devDependencies": { - "@fortawesome/free-regular-svg-icons": "^6.5.1", - "@fortawesome/free-solid-svg-icons": "^6.5.1", "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", - "@tauri-apps/cli": "^1.5.11", "autoprefixer": "^10.4.17", "postcss": "^8.4.33", "prettier": "^3.1.1", @@ -34,6 +31,9 @@ }, "type": "module", "dependencies": { + "@fortawesome/free-regular-svg-icons": "^6.5.1", + "@fortawesome/free-solid-svg-icons": "^6.5.1", + "@tauri-apps/cli": "^1.5.11", "@sveltejs/adapter-vercel": "^5.1.0", "@tauri-apps/api": "^1.5.3", "bits-ui": "^0.16.0", From d5ff69315810c81d19a20bac52b87094213331e2 Mon Sep 17 00:00:00 2001 From: Kawsar Ahmed Date: Sun, 16 Jun 2024 09:09:07 +0600 Subject: [PATCH 5/5] Package fix --- package-lock.json | 21 ++++++++++++++++++++- package.json | 20 ++++++++++++-------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index a3f12de..ac24636 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,12 +21,13 @@ "bits-ui": "^0.16.0", "clsx": "^2.1.0", "dayjs": "^1.11.10", + "exifreader": "^4.23.3", "lucide-svelte": "^0.316.0", "postcss": "^8.4.33", "prettier": "^3.1.1", "prettier-plugin-svelte": "^3.1.2", "prettier-plugin-tailwindcss": "^0.5.13", - "svelte": "^4.2.7", + "svelte": "^4.2.12", "svelte-check": "^3.6.0", "svelte-fa": "^4.0.2", "svelte-sonner": "^0.3.19", @@ -1208,6 +1209,15 @@ "node": ">=16" } }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1782,6 +1792,15 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, + "node_modules/exifreader": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.23.3.tgz", + "integrity": "sha512-/Ii4jiNp/5BXdKOiWXZYrWmZFn/ANu3bMVGO7GFQufao5M52/fK2OsAPMH34PL4S79z1eZBzAoaYyBXit0zzVA==", + "hasInstallScript": true, + "optionalDependencies": { + "@xmldom/xmldom": "^0.8.10" + } + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", diff --git a/package.json b/package.json index edbc408..0ca2164 100644 --- a/package.json +++ b/package.json @@ -14,27 +14,31 @@ }, "type": "module", "dependencies": { - "@sveltejs/adapter-vercel": "^5.1.0", - "@tauri-apps/api": "^1.5.3", - "bits-ui": "^0.16.0", - "clsx": "^2.1.0", - "lucide-svelte": "^0.316.0", - "tailwind-merge": "^2.2.1", - "tailwind-variants": "^0.1.20", - "@tauri-apps/cli": "^1.5.11", "@fortawesome/free-regular-svg-icons": "^6.5.1", "@fortawesome/free-solid-svg-icons": "^6.5.1", "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/adapter-static": "^3.0.1", + "@sveltejs/adapter-vercel": "^5.1.0", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@tauri-apps/api": "^1.5.3", + "@tauri-apps/cli": "^1.5.11", "autoprefixer": "^10.4.17", + "bits-ui": "^0.16.0", + "clsx": "^2.1.0", + "dayjs": "^1.11.10", + "exifreader": "^4.23.3", + "lucide-svelte": "^0.316.0", "postcss": "^8.4.33", "prettier": "^3.1.1", "prettier-plugin-svelte": "^3.1.2", "prettier-plugin-tailwindcss": "^0.5.13", "svelte": "^4.2.12", "svelte-check": "^3.6.0", + "svelte-fa": "^4.0.2", + "svelte-sonner": "^0.3.19", + "tailwind-merge": "^2.2.1", + "tailwind-variants": "^0.1.20", "tailwindcss": "^3.4.1", "tslib": "^2.4.1", "typescript": "^5.0.0",