Commit Graph

174 Commits

Author SHA1 Message Date
Innei
5d7a103175 chore: update react version in package.json and pnpm-lock.yaml
- Updated the react dependency version to ^19.1.1 in both package.json and pnpm-lock.yaml for consistency and to ensure compatibility with the latest features and fixes.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-21 18:29:38 +08:00
Innei
d98049ded6 Revert "perf: image webgl perf"
This reverts commit 444468b862.
2025-09-21 18:29:31 +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
444468b862 perf: image webgl perf
- Added total pixel calculation to the ExifPanel, displaying the total pixel count based on image dimensions.
- Updated the rendering logic to use the new total pixel value instead of formatted EXIF data for pixel information.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-15 21:03:02 +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
6ed3e86dc1 feat: implement texture worker for image loading and tile creation
- Added a new texture worker to handle image loading and LOD (Level of Detail) tile creation.
- Replaced the previous TypeScript worker with a JavaScript version for improved performance and compatibility.
- Introduced message handling for loading images, creating tiles, and managing LOD levels.
- Updated the WebGLImageViewerEngine to communicate with the new worker, enhancing image processing efficiency.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-02 16:28:56 +08:00
Innei
96400b1775 feat: support share to external via iframe
- Added Tailwind CSS plugins and configurations to improve styling across the application.
- Introduced new global styles and layout components for better structure and design consistency.
- Implemented a MasonryGallery component for responsive photo display.
- Enhanced photo item rendering with EXIF data and improved loading states.
- Updated package dependencies to include new Tailwind CSS utilities and components.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-29 23:09:57 +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
91897b6032 feat: enhance SSR and web applications with manifest injection and configuration updates
- Introduced a Vite plugin to inject the photos manifest into the HTML, enabling dynamic updates and hot reloading.
- Updated ESLint configuration to ignore build errors during SSR.
- Modified package.json scripts for concurrent development of SSR and web applications.
- Adjusted paths and imports for better module resolution and consistency across the codebase.
- Added type definitions for the global __MANIFEST__ variable to ensure type safety.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-26 22:03: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
Innei
8c60382f18 feat: add tone analysis and histogram features to photo viewer
- Introduced a new HistogramChart component to visualize tone analysis data.
- Enhanced the ExifPanel to display tone analysis results, including brightness, contrast, shadow, and highlight ratios.
- Updated the formatExifData function to support tone analysis data.
- Implemented histogram compression and decompression logic for efficient data handling.
- Added localization support for new histogram-related terms in multiple languages.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-21 02:10:48 +08:00
J2ephyr
fbb31bda30 feat: Add S3_EXCLUDE_REGEX configuration option for file exclusion support. (#15) 2025-06-19 14:39:41 +08:00
Innei
02d844a771 refactor: simplify photo deletion handling and manifest saving
- Streamlined the handling of deleted photos by directly passing the manifest to the `handleDeletedPhotos` function.
- Removed unnecessary options checks and logging parameters from the `saveManifest` function, enhancing clarity and reducing complexity.
- Updated thumbnail deletion logic to ensure thumbnails not present in the manifest are removed efficiently.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-17 17:15:51 +08:00
Innei
066d9ef961 refactor: remove dynamic module imports and storage manager initialization from worker
- Eliminated dynamic imports for StorageManager and builderConfig within the worker process.
- Removed the initialization of the storage manager, streamlining the worker's setup process.
- Maintained the restoration of shared data structures from the main process.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-17 16:42:30 +08:00
Innei
be6fdce89a feat: enhance EXIF data processing and worker initialization
- Updated the EXIF data formatting logic to conditionally include GPS information only when latitude and longitude are available.
- Introduced a new worker initialization message structure to facilitate the transfer of shared data between the main process and workers.
- Enhanced the worker process to handle initialization messages and deserialize shared data for improved task management.
- Refactored the manifest loading and saving functions to support a new manifest structure, ensuring compatibility with the updated data handling.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-17 16:37:42 +08:00
Innei
c0c58e5629 feat: enhance EXIF data handling and localization updates
- Improved the EXIF data extraction logic to include additional fields such as GPS references and color temperature settings.
- Updated the translation keys in localization files for various languages to reflect changes in EXIF data representation, including dynamic range and white balance settings.
- Refactored the formatting logic to ensure accurate display of GPS information and other EXIF attributes.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-15 13:32:00 +08:00
Innei
dad7e67858 feat: add GPS information display to ExifPanel and update localization
- Implemented GPS data display in the ExifPanel, including latitude, longitude, and altitude.
- Added a link to view the GPS location on a map.
- Updated localization files for Japanese, Korean, and various Chinese dialects to include new GPS-related translation keys.
- Refactored EXIF data formatting to support GPS information extraction.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-14 17:35:20 +08:00
Innei
ece05078b1 feat: migrate from exif-reader to exiftool-vendored and update EXIF handling
- Replaced `exif-reader` with `exiftool-vendored` for improved EXIF data processing.
- Updated related components to utilize the new `PickedExif` type for better type safety.
- Refactored EXIF data extraction and formatting logic to align with the new library's structure.
- Removed deprecated dependencies and cleaned up related code for better maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-14 17:19:28 +08:00
Innei
8b57c878e8 chore: rename project to Afilmory and update related configurations
- Changed project name and title from "Photo Gallery" to "Afilmory" across multiple files including configuration, README, and web manifest.
- Updated descriptions and URLs to reflect the new branding.
- Adjusted OG image plugin and favicon generation scripts to align with the new project name.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 01:15:41 +08:00