115 Commits

Author SHA1 Message Date
Innei
e27b45ec49 feat(builder): upload thumbnails via storage plugin (#137)
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-10-31 21:49:31 +08:00
Innei
ba68be802e feat: revamp dashboard photo management (#136)
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-31 02:07:13 +08:00
Innei
7dd6c1c812 feat: sync photos from active storage provider (#135)
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-30 00:21:10 +08:00
Innei
e99b211ac6 refactor: remove optional logger parameter from getFile methods across storage providers and update logging implementation
- Simplified getFile method signatures in StorageProvider and its implementations by removing the optional logger parameter.
- Updated logging calls to use a global logger instance instead of passing a logger as an argument.
- Ensured consistent logging behavior across different storage providers.

Signed-off-by: Innei <tukon479@gmail.com>
2025-10-28 20:03:22 +08:00
Innei
af170a43bb refactor!: builder pipe and plugin system
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-28 19:48:04 +08:00
Whitewater
68ab78b336 fix: correct variable name in EagleStorageProvider's copyToDist method (#129) 2025-10-26 21:41:22 +08:00
Innei
bb3088208d feat(server): onboarding init 2025-10-26 18:37:56 +08:00
Innei
d6ad6d17ab refactor: component move to monorepo (#128)
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-25 00:59:25 +08:00
Whitewater
d0f8f16bf4 feat: add distPath for local storage (#126) 2025-10-24 22:40:04 +08:00
Ricky Li
9b4278565f fix live photo detection with capital letter (#117)
Signed-off-by: Ricky Li <i@liqi.link>
2025-10-20 17:28:13 +08:00
Whitewater
2ffcb5d04f fix(docs): correct GitHub storage configuration (#119)
Co-authored-by: Innei <tukon479@gmail.com>
2025-10-20 17:21:23 +08:00
Whitewater
c4448cef1e feat: add EagleStorageProvider (#122)
Co-authored-by: Innei <tukon479@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-20 17:19:38 +08:00
Innei
32af836f42 chore: update deps
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-19 00:18:22 +08:00
Innei
bfe1537602 chore: update deps
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-02 17:58:43 +08:00
Innei
d62ecb34f1 chore: add Git LFS support for media files and update build scripts
- Introduced .gitattributes to manage large media files with Git LFS for various formats including HEIC, MOV, and JPG.
- Added a new build script in package.json for preparing demo data.
- Enhanced logging in the PhotoGalleryBuilder to include storage provider information.
- Updated the LocalStorageProvider to use the correct type for file stats.
- Added multiple new media files to the project.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 00:26:30 +08:00
Innei
84b6c0f438 chore: update dependencies and improve configurations
- Upgraded various dependencies across the project, including dotenv, eslint, prettier, and typescript.
- Updated package versions in package.json and pnpm-lock.yaml for better compatibility and performance.
- Adjusted tailwindcss and related plugins to the latest versions.
- Enhanced the S3 client configuration in the builder package.
- Fixed import statements in CSS files to use @import instead of @plugin for tailwindcss-safe-area.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-21 17:49:49 +08:00
Innei
2191e59b46 feat(builder): enhance S3 client configuration and download handling, try fix #100
- Added network tuning options to the builder configuration, including keep-alive settings, timeouts, and retry mechanisms.
- Integrated the NodeHttpHandler for improved HTTP handling in the S3 client.
- Implemented a download concurrency limiter using a semaphore to manage concurrent downloads.
- Enhanced the getFile method to include retry logic and timeout handling for S3 file downloads, improving robustness and performance.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-14 23:49:30 +08:00
Innei
2df511bff7 fix!: remove webp transformer
- Introduced a migration system for manifest files to support versioning and backward compatibility.
- Updated image processing to switch thumbnail format from WebP to JPEG for better compatibility.
- Added new commands for manifest migration and improved thumbnail handling in the builder.
- Enhanced documentation with architecture details and development commands.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-13 23:11:00 +08:00
woolen-sheep
d3b59d9e88 fix: thumbnails cache not working when digest suffix is enabled (#98) 2025-09-13 22:01:49 +08:00
woolen-sheep
a185ab9242 fix: cluster pool dead lock (#99) 2025-09-13 22:01:09 +08:00
MaxtuneLee
41b0d7a73d Afilmory Docs (#66) 2025-09-11 18:42:47 +08:00
Innei
f5cd5d800c chore: update deps
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-31 01:36:08 +08:00
Innei
54b8bd334c feat: add camera and lens filtering functionality
- Introduced a new FilterPanel component for selecting tags, cameras, and lenses.
- Updated gallery settings to include selected cameras and lenses.
- Enhanced photo filtering logic to support camera and lens criteria.
- Updated UI to reflect changes in filtering options and improved user experience.
- Added localization for new filter options in English.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-04 01:44:26 +08:00
Innei
001506eee4 Revert "feat: auto categoried by camera & lens (#72)"
This reverts commit 21a6743c08.
2025-08-04 00:22:54 +08:00
ChrAlpha
21a6743c08 feat: auto categoried by camera & lens (#72) 2025-07-31 10:52:38 +08:00
Wenzhuo Liu
d440b6914c feat: display rating in exif panel (#69) 2025-07-28 19:48:57 +08:00
Bojin Li
ae289773ec fix(exif): use original HEIC buffer for EXIF extraction (#71) 2025-07-28 19:47:57 +08:00
woolen-sheep
2f479fe176 fix: photo id conflict (#67) 2025-07-17 22:30:16 +08:00
Wenzhuo Liu
6ec545a6a5 feat: display hdr image using dom image viewer (#52) 2025-07-09 22:37:04 +08:00
EmccK
256becf604 feat: add local storage provider and photos static plugin (#40)
Co-authored-by: MaxtuneLee <60775796+MaxtuneLee@users.noreply.github.com>
2025-07-09 13:23:32 +08:00
Zephyr Sun
97afd42cf7 feat: enable cache repository to support private repository (#37) 2025-07-05 14:59:28 +08:00
Innei
27ea01fbf1 refactor: remove blurhash replace to thumbhash
- Added Thumbhash component to replace Blurhash in PhotoViewer and PhotoMasonryItem for enhanced image loading performance.
- Updated the manifest version from 'v4' to 'v5' across multiple files to reflect the new data structure.
- Introduced thumbHash generation in the image processing pipeline, ensuring compatibility with existing thumbnail logic.
- Updated package dependencies to include thumbhash version 0.1.1.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-29 15:46:46 +08:00
Innei
e2a3c55910 fix: try fix blurhash logic
- Replaced `fallbackRender` with `fallback={null}` in ErrorBoundary components for consistency across the application.
- Updated the manifest version from 'v3' to 'v4' in multiple files to reflect the new data structure.
- Enhanced the PhotoViewer and PhotoMasonryItem components to handle potential errors more gracefully with the updated ErrorBoundary.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-29 15:14:45 +08:00
Innei
3f21435271 refactor: update ErrorElement and HistogramChart components for improved styling and functionality
- Enhanced the ErrorElement component by adjusting the layout for better centering and added select-text class for improved text selection.
- Modified the HistogramChart component to accept a thumbnail URL instead of tone analysis, streamlining the data flow.
- Refactored the histogram calculation logic to improve performance and clarity, including compression of histogram data.
- Updated the manifest version from 'v2' to 'v3' across multiple files to reflect the new data structure.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-29 11:28:23 +08:00
Innei
48aec690da fix: reorganize photo processing logic and enhance thumbnail generation, fixed #27 closed #28
- Consolidated thumbnail and blurhash processing into a dedicated data-processing module for better code organization.
- Improved the logic for reusing existing thumbnails and blurhashes, ensuring efficient handling of image processing.
- Updated the cache manager to validate cache data integrity and streamline the overall photo processing workflow.
- Enhanced logging for better traceability during thumbnail generation and processing.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-29 10:49:16 +08:00
Innei
708f300433 feat: add blurhash generation and component correspondence documentation
- Introduced new markdown files explaining the generation of blurhash strings and the necessity for xComponent and yComponent to match during usage.
- Updated the blurhash generation logic to improve clarity and logging, ensuring accurate component calculations based on image dimensions.
- Removed unnecessary logging parameters and streamlined the thumbnail generation process for better performance.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-28 23:08:21 +08:00
Innei
2c36c52f4d feat: add Git user identity configuration for CI environments
- Implemented a check for Git user identity in the `pushManifestToRemoteRepo` function to handle cases where the identity is not configured in CI environments.
- Added logic to set a default CI user identity if none is found, ensuring smooth operation during automated deployments.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-28 20:43:50 +08:00
Innei
6d430faa9a feat: implement remote repository support for manifest updates
- Added functionality to push updated manifests to a remote Git repository after building.
- Introduced a Git token configuration in the builder settings to authenticate pushes.
- Enhanced the CLI to handle remote repository synchronization, including cloning and pulling updates.
- Updated the builder to return detailed results on whether updates occurred during the build process.
- Revised documentation to reflect new configuration options and usage instructions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-28 13:34:35 +08:00
Innei
49ac494998 feat: init api
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-27 00:43:04 +08:00
Innei
19f4202656 docs: update README and README.zh.md for multi-language support and feature descriptions
- Added a link to the Chinese version of the README in the English version.
- Updated feature descriptions in both English and Chinese, changing "Smart Tags" to "File System Tags" for clarity.
- Included a new image in the Chinese README for better visual appeal.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-26 21:29:58 +08:00
Innei
c8315c29b0 refactor: update WebGL image viewer and improve loading state handling
- Enhanced the ProgressiveImage component to utilize the new LoadingState enum for better loading state management.
- Updated the WebGLImageViewerEngine to notify loading states using the LoadingState enum, improving clarity in loading messages.
- Refactored spring animations to use the Transition type for better type safety.
- Updated localization files to include new loading messages for WebGL operations in both English and Chinese.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-26 21:08:16 +08:00
Innei
ae4f15e3ea refactor: update photo data handling and types
- Changed the PhotoManifest type to PhotoManifestItem across various components and services for consistency.
- Removed the views property from the PhotoInfo interface to streamline photo data.
- Updated rules in color.mdc and project.mdc to adjust glob patterns and application behavior.
- Enhanced the feed-sitemap plugin to utilize the new PhotoManifestItem type for better data management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-26 00:48:04 +08:00
Innei
0a17c01d5e refactor: streamline logging in image processing and EXIF extraction
- Removed optional logger parameters in several functions, replacing them with global loggers for consistency.
- Updated logging statements to ensure they are always executed, enhancing the visibility of processing steps and errors.
- Cleaned up unused imports and commented-out code to improve code clarity and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 12:43:15 +08:00
Innei
90e712373b refactor: remove deprecated storage functions and streamline storage management
- Deleted the builder-storage.mdc file, which contained outdated documentation for the storage abstraction layer.
- Removed deprecated functions related to S3 operations from the storage adapters, encouraging the use of the new StorageManager API.
- Updated various components to utilize the StorageManager for file retrieval and URL generation, enhancing consistency and maintainability across the codebase.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 12:04:19 +08:00
Innei
cc04d99a0e feat: add maxFileLimit configuration for S3 storage
- Introduced maxFileLimit property in builder.config.ts and S3Config interface to allow dynamic control of the maximum number of files retrieved from S3.
- Updated S3StorageProvider to utilize maxFileLimit for fetching objects, enhancing flexibility in file management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 11:45:49 +08:00
Innei
5910ac3320 refactor: enhance S3 client configuration and error handling
- Updated the S3 client creation logic to utilize builderConfig for improved configuration management.
- Added error handling to ensure that the storage provider is set to 's3' and that required credentials are provided.
- Streamlined the S3 client configuration by directly using values from builderConfig, enhancing maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 11:39:32 +08:00
Innei
5fa83219e6 chore: update dotenv configuration and dependencies
- Replaced 'dotenv/config' with 'dotenv-expand/config' in env.ts and cli.ts for enhanced environment variable handling.
- Added 'dotenv-expand' as a dependency in package.json and updated pnpm-lock.yaml accordingly.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 02:02:24 +08:00
Innei
3e30b70212 fix: streamline photo processor exports in index.ts
- Removed unnecessary type export for WorkerLoggers from the photo processor module.
- Simplified the export statement for PhotoProcessorOptions and processPhoto for better clarity and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-22 23:50:18 +08:00
Innei
efe2875636 refactor: implement photo processing pipeline and modularize photo handling
- Introduced a comprehensive photo processing pipeline that integrates various processing steps including thumbnail generation, EXIF data extraction, and tone analysis.
- Modularized the photo handling logic into distinct files for better organization and maintainability.
- Added support for Live Photo detection and processing.
- Implemented a global logger system to streamline logging across different processing stages.
- Enhanced caching mechanisms for reusing existing data, improving performance and efficiency.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-22 23:45:09 +08:00
MaxtuneLee
8c962dfd24 feat: add .tif format to supported image formats (#18) 2025-06-22 11:00:18 +08:00