Commit Graph

140 Commits

Author SHA1 Message Date
Innei
b18bb76451 chore: update favicon images and enhance favicon generation script
- Replaced existing favicon images with updated versions for better visual quality.
- Modified the favicon generation script to add rounded corners to the generated images, improving aesthetics.
- Ensured the script checks for the presence of the logo file before generating favicons.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-24 12:41:46 +08:00
Innei
8c1365f00f refactor: enhance Open Graph and Twitter meta tags in production handler
- Updated the title in the document head to include the site configuration title for better SEO.
- Modified Open Graph and Twitter meta tags to append the site configuration title to the photo ID, improving clarity and branding in social media shares.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-24 01:26:41 +08:00
Innei
d9f0918ee1 refactor: enhance ExifPanel and HistogramChart components
- Updated ExifPanel to use translation for tone analysis title.
- Improved HistogramChart by enhancing canvas resolution and rendering quality, including anti-aliasing and smoother histogram drawing.
- Added device pixel ratio handling for better display on high-DPI screens.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-24 01:16:42 +08:00
MaxtuneLee
3554f6fac6 Refactor/live photo viewer (#20)
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Innei <tukon479@gmail.com>
2025-06-23 19:10:55 +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
3b0c52ed82 fix: format histogram channel values to two decimal places
- Updated the HistogramChart component to display channel values (red, green, blue, and luminance) formatted to two decimal places for improved readability and precision in the user interface.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 11:50:36 +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
eb8616bfb1 fix: update FloatingActions visibility in MasonryRoot component
- Changed the initial state of showFloatingActions from true to false to improve user experience by hiding floating actions by default.
- This adjustment aims to streamline the interface and reduce visual clutter upon initial render.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 11:33:00 +08:00
Innei
c58835e35b feat: enhance SSR routing and development experience
- Updated the SSR routing to conditionally load development and production handlers based on the NODE_ENV variable.
- Introduced a new dev.ts file to handle requests in development mode, including asset proxying and HTML response generation.
- Removed the not-found.tsx file and streamlined the photoId route logic for better maintainability.
- Added support for Open Graph and Twitter meta tags in the production handler for improved SEO.
- Updated README with new S3 endpoint configuration.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 11:31:28 +08:00
Innei
66860e3eb6 chore: update .env.template and Dockerfile for S3 configuration
- Removed unused S3 configuration variables from .env.template to streamline environment setup.
- Added ARG directives for S3_ACCESS_KEY_ID and S3_SECRET_ACCESS_KEY in Dockerfile to facilitate secure access to S3 resources during build.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 02:21:47 +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
8224302373 feat: enhance column width configuration in MasonryRoot component
- Introduced a new COLUMN_WIDTH_CONFIG object to manage responsive column widths for mobile and desktop views.
- Updated the column width calculation logic to dynamically adjust based on available width and maximum column constraints.
- Improved handling of auto and custom column modes to ensure optimal layout across different screen sizes.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 01:21:13 +08:00
Innei
31727e542c feat: implement FloatingActionButton component for enhanced user interactions
- Added a new FloatingActionButton component to provide quick access to various actions in the gallery.
- Integrated animation effects for button visibility and action selection.
- Updated MasonryRoot to include the FloatingActionButton, allowing for dynamic action handling based on user interactions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-23 01:14:56 +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
Innei
123bd9bf9e feat: add code quality rules for TypeScript and React components
- Introduced a new markdown file with guidelines for maintaining code quality in TypeScript and React projects.
- Emphasized the importance of avoiding code duplication, managing component complexity, and adhering to React best practices.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-22 23:02:34 +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
Innei
8f2d6b8212 fix: update customDomain in README files to include HTTPS protocol
- Changed the customDomain value from "cdn.example.com" to "https://cdn.example.com" in both English and Chinese README files for clarity and security.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-20 23:42:51 +08:00
Innei
5963279f49 feat: og adjust and open source vibe coding chats
- Implemented logic to calculate and maintain the original aspect ratio for images displayed within the film frame.
- Adjusted the frame dimensions dynamically based on the image's aspect ratio to ensure consistent visual presentation.
- Enhanced the image display structure to center the image while preserving its proportions, improving the overall aesthetic of the photo viewer.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-19 16:39:08 +08:00
Innei
67869bbd8d feat: add image validation logic in ImageLoaderManager
- Implemented a new method to validate image blobs, checking MIME types and file size to ensure they are valid images before processing.
- Enhanced the image loading process to reject invalid image responses, improving error handling and user feedback.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-19 16:18:47 +08:00
J2ephyr
fbb31bda30 feat: Add S3_EXCLUDE_REGEX configuration option for file exclusion support. (#15) 2025-06-19 14:39:41 +08:00
Ryogi Mutsuki
ed82daa5a0 Fix: photo data parsing to access 'data' property from JSON manifest (#17) 2025-06-19 14:38:55 +08:00
J2ephyr
68273d9d55 fix: improve date formatting handling in formatDateTime function (#14) 2025-06-18 13:41:57 +08:00
Yuri
87ae5f15a6 feat: update Dockerfile for improved build process and dependencies (#12) 2025-06-17 17:45:42 +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
54312beb0d refactor: remove image preloading logic from PhotoViewer component
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-15 17:24:34 +08:00
Innei
cfae63db78 feat: improve film mode handling in EXIF data processing
- Updated the film mode processing logic to map readable film modes for better clarity.
- Introduced a new function to handle film mode mapping, enhancing the overall EXIF data representation.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-15 13:34: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
e40e8baf17 chore: enable TypeScript build error ignoring in Next.js configuration
- Added TypeScript configuration to ignore build errors, allowing for smoother development experience.
- Maintained existing Next.js settings for output and React strict mode.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-14 18:13:45 +08:00
Innei
a7d4601048 fix: update EXIF data extraction logic for improved accuracy
- Refactored the EXIF data extraction to correctly access fields directly from the `photo.exif` object.
- Simplified the handling of date and shutter speed information for better clarity and consistency.
- Removed unnecessary nested object references to streamline the code.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-14 18:10:46 +08:00
Innei
dc90bd8197 feat: add date-fns dependency and enhance ExifPanel with additional EXIF data fields
- Added `date-fns` library to manage date formatting.
- Enhanced `ExifPanel` to display additional EXIF data including artist, copyright, lens make, and scene capture type.
- Updated localization files to include new translation keys for the added EXIF fields.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-14 18:00:58 +08:00
Innei
0d709f807a chore: clean up pnpm-lock.yaml by removing unused dependencies
- Removed `exif-reader` and `fuji-recipes` dependencies from the lock file as they are no longer in use.
- Cleaned up related entries to streamline the dependency management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-14 17:40:03 +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
b14dd85b28 feat: enhance RSS EXIF specification and update related components
- Updated the RSS EXIF specification to version 1.1, adding protocol metadata and expanding EXIF field definitions, including location and technical parameters.
- Modified the feed-sitemap generation to include new EXIF fields and improved date handling.
- Adjusted the SlidingNumber component to use a predefined spring transition for smoother animations.
- Updated VSCode settings to exclude specific directories from search.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 22:13:34 +08:00
Innei
82f8362b80 refactor: simplify GalleryThumbnail component structure
- Removed unnecessary background styling and improved layout for better readability.
- Streamlined the rendering of photo thumbnails while maintaining existing functionality.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 20:13:59 +08:00
Innei
e46541a905 feat: update .gitignore and enhance ExifPanel styling
- Added .project.json to .gitignore to exclude project identity files.
- Updated ExifPanel styling to include backdrop blur effect for mobile view, improving visual consistency.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 19:29:11 +08:00
Innei
39a6053e78 feat: open source vibe coding chats
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 19:21:25 +08:00
Innei
604ea15ce6 fix: update build script to use new builder CLI
- Changed the build command in the remote repository update script to utilize the new builder CLI instead of the previous manifest build command.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 17:23:50 +08:00
Innei
585a9db971 feat: implement NotFound component and enhance photo route handling
- Added a new NotFound component to display a user-friendly message when a photo is not found.
- Updated the photo route to return the NotFound component instead of a plain 404 response.
- Improved title handling in the photo viewer to default to 'Not Found' when no photo is available.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 17:14:16 +08:00
Innei
ed5284af6f feat: update README with new branding and OpenGraph support
- Added a centered logo image to the README for enhanced visual appeal.
- Updated project title formatting to align with the new branding.
- Included OpenGraph metadata information for improved social media sharing capabilities.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 16:38:47 +08:00
Innei
120d6c28ae feat: add support for Traditional Chinese and update language resources
- Added 'zh-TW' (Traditional Chinese) to the list of supported languages.
- Included new localization file for Traditional Chinese with comprehensive translations.
- Updated existing language resources for Japanese and Korean to reflect changes in map view labels.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 15:45:17 +08:00
Innei
5f1c11ab20 feat: enhance video conversion process with internationalization support
- Integrated translation keys for video conversion messages to improve accessibility across different languages.
- Updated conversion messages in the video conversion logic to utilize localized strings for better user experience.
- Added new translation entries in English, Japanese, Korean, and Chinese locales to support the updated video conversion features.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 15:35:45 +08:00
Innei
42012e6ec1 fix: update LivePhoto component to conditionally hide video when not playing
- Added a conditional class to hide the video element when the live photo is not playing.
- Updated conversion message to remove the 'FFmpeg' method label for improved clarity.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-13 15:25:11 +08:00
Innei
2387e8d813 feat: integrate mp4-muxer for video conversion and enhance ExifPanel layout
- Added mp4-muxer dependency to facilitate MP4 video conversion.
- Updated video conversion logic to utilize WebCodecs API for improved performance and reliability.
- Enhanced ExifPanel layout by adjusting grid spacing and item alignment for better visual consistency.

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