Commit Graph

73 Commits

Author SHA1 Message Date
tigeren 301d315ed1 fix(settings): change IntelliSense folder selection handler
- Replace navigateToIntelliSenseFolder with selectIntelliSenseItemAsLibrary for button click
- Pass intelliSensePath and false as arguments to new handler function
- Update button onClick behavior to reflect new selection logic
2025-10-19 13:03:16 +00:00
tigeren c9631d61b8 fix(intellisense): resolve case sensitivity issues on Linux systems
- Normalize file paths to lowercase for consistent, case-insensitive comparison
- Update library path checks to use normalized paths to avoid duplicates
- Ensure already added libraries are visually greyed out regardless of path casing
- Improve cross-platform compatibility by handling path case differences on Linux, macOS, and Windows
- Add new test script to verify case sensitivity fixes for IntelliSense feature
- Update documentation and feature status to reflect library IntelliSense improvements
- Bump Docker image version from 1.5 to 1.6 in deployment instructions
2025-10-19 11:15:32 +00:00
tigeren ddf5f1e9b8 feat(cluster-folder-view): add conditional navigation rendering
- Introduce `showNavigation` prop to control the visibility of the navigation header and breadcrumbs in the ClusterFolderView component.
- Update ClusterPage to set `showNavigation` to false, disabling navigation for specific use cases.
2025-10-18 17:58:20 +00:00
tigeren 4e3c4a1277 feat(cluster-page): enhance user experience with scrolling management and rating updates
- Implement body and HTML overflow management to prevent scrolling when the cluster page is active
- Update rating handling to support deletion of existing ratings when rating is set to zero
- Add file size formatting utility for improved display of media sizes
- Refactor UI components for better layout and responsiveness, including adjustments to card and tab styles
- Ensure consistent styling and spacing across various elements for a polished look
2025-10-18 17:52:36 +00:00
tigeren 7e5b122565 feat(library): add IntelliSense folder browsing for adding libraries
- Create API endpoint to list directories under /mnt with navigation support
- Detect and indicate already added libraries to prevent duplicates
- Add "Browse" button to library path input for opening modal folder selector
- Implement modal UI with directory navigation, current path display, and selection buttons
- Integrate modal selection with existing library adding workflow
- Show visual feedback by disabling selection of existing libraries
- Update documentation and feature status to include the new IntelliSense feature
- Add test scripts covering IntelliSense navigation and library conflict detection
2025-10-18 16:07:16 +00:00
tigeren f65b67a64d fix(surprise-me): change default algorithm to weighted_random
- Update initial algorithm state from 'unwatched_first' to 'weighted_random'
- Adjust SurpriseMePage to use new default recommendation algorithm
2025-10-14 17:33:28 +00:00
tigeren 438e4f2192 feat(scanner): add file deletion cleanup and thumbnail verification
- Implement cleanupDeletedFiles to remove orphaned database records for files no longer on disk
- Add verifyAndRegenerateThumbnail to detect and regenerate missing thumbnails for existing media
- Integrate new cleanup and verification steps into main scanLibrary async function
- Update scan stats to track files removed and thumbnails regenerated
- Enhance error handling to log but not block overall scan progress
- Maintain existing file discovery and processing workflows with new verification layers
- Provide detailed scanning process flow and statistics tracking for improved observability
2025-10-14 17:27:00 +00:00
tigeren 3601add44c chore(docs): update docker image version in deployment instructions
- Change docker image tag from 1.4 to 1.5 in deployment guide
- Update corresponding docker push command with new tag

style(surprise-me): adjust page container height and overflow

- Replace min-h-screen with fixed h-screen for full viewport height
- Add overflow-y-auto to enable vertical scrolling within the page container
- Maintain existing background color and header styles unchanged
2025-10-13 01:42:48 +00:00
tigeren 5ed3640733 feat(media-access): add media access tracking endpoint and database support
- Implement POST /api/media-access/[id]/route to track media access events: view, play, bookmark, rate
- Validate media ID and access type input with appropriate error responses
- Persist media access records in new media_access table with associated media ID and timestamp
- Add indexes on media_access for efficient querying by media ID, access type, and timestamp
- Export helper functions to track and query media access counts and recent accesses
- Add "Surprise Me" navigation link with icon in sidebar component for new discovery feature
2025-10-12 12:29:34 +00:00
tigeren 7d8694b6f5 feat(clusters): add bookmark and rating features to video player
- Enable display of bookmarks and ratings in the player UI
- Add handlers for bookmarking and unbookmarking actions
- Implement rating functionality with corresponding event handler
- Enhance user interaction by integrating these new controls
- Improve state management related to video selection and player display
2025-10-12 09:09:28 +00:00
tigeren 335f47549a feat(api): include rating and bookmark metadata in media queries
- Add bookmark_count, avg_rating, and star_count fields to photo, video, and text queries
- Join bookmarks and stars tables to aggregate counts and average ratings
- Use COALESCE to ensure default values for missing metadata are zero
- Update folder contents handler to use actual thumbnail path from database instead of conditional URLs
2025-10-12 09:03:17 +00:00
tigeren ce61ebbf9e feat(clusters): add folder view tab with backend and frontend support
- Implement `/api/clusters/[id]/folders` endpoint for folder navigation with pagination and error handling
- Create ClusterFolderView component for folder tab UI with breadcrumb and cluster theming
- Enhance VirtualizedFolderGrid to support cluster API mode and handle cluster folder responses
- Integrate folder view as default tab on cluster page with navigation and state management
- Add comprehensive testing documentation and handle loading, empty, and error states in UI
2025-10-12 07:56:15 +00:00
tigeren 0d6d2730bc feat(clusters): add cluster navigation UI and cluster view page with media tabs
- Add "Clusters" collapsible section in sidebar with color-coded icons
- Implement client cluster fetching and navigation links in sidebar
- Create cluster view page with header, stats cards, and tabbed media interface
- Integrate media player modals for video, photo, and text viewing
- Enhance InfiniteVirtualGrid to support custom API endpoints and response formats
- Refactor cluster API routes query params variable naming for consistency
- Add search and loading/error handling within cluster media pages
- Implement bookmark and rating functionality within cluster media grid
- Ensure responsive design and active state highlighting in sidebar and cluster pages
- Update library cluster progress documentation to reflect Phase 3 completion status
2025-10-12 06:14:01 +00:00
tigeren 4306d4ace8 feat(cluster): implement cluster management and library clustering UI
- Add database tables for clusters and library-cluster mappings with indexes
- Create REST API endpoints for cluster CRUD and library assignments
- Develop ClusterManagement component for create/edit/delete clusters with color/icon picker
- Implement multi-select library assignment and real-time statistics display
- Add LibraryClusterBadges component to show color-coded cluster badges on library cards
- Integrate cluster management UI into settings page with loading states and validation
- Enhance API input validation and error handling for cluster operations
- Document design decisions, performance considerations, and next steps for navigation features
2025-10-11 17:17:07 +00:00
tigeren f92e44db93 feat(db): add cluster feature with related database tables and indexes
- Define TypeScript interfaces for Cluster, ClusterWithStats, and LibraryClusterMapping
- Create clusters table with fields for name, description, color, icon, and timestamps
- Create library_cluster_mapping table to link libraries and clusters with foreign keys and unique constraint
- Add indexes on library_cluster_mapping and clusters tables for improved query performance
2025-10-11 17:03:14 +00:00
tigeren ac06835850 feat(folder-bookmarks): add folder bookmarks feature with migration support
- Introduce new folder_bookmarks table with unique folder_path and timestamp fields
- Implement API endpoints for folder bookmarks CRUD operations
- Enhance bookmarks API to combine and paginate media and folder bookmarks
- Update bookmarks page UI to handle and display folder bookmarks
- Add folder viewer support for bookmarking current folder with toggle functionality
- Create automated migration script with backup, schema verification, and rollback instructions
- Provide detailed migration guides for manual and Docker deployments
- Add comprehensive testing and verification steps for migration and new feature integration
2025-10-10 15:31:45 +00:00
tigeren 76154123b8 feat(player): add external video player auto-launch feature with preferences
- Implement player preferences management with localStorage and events
- Enable auto-launch and confirmation dialogs in LocalPlayerLauncher component
- Learn user preferences from manual player selections dynamically
- Integrate settings UI for video player configuration and real-time updates
- Support platform-aware player listing and reset to default preferences
- Provide clear current configuration display and toggle switches in settings
- Enhance user experience with smart defaults and customizable workflow
- Maintain backward compatibility with manual player selection option
- Add custom event system for cross-component synchronization of preferences
- Optimize player detection and launching logic to respect user settings
2025-10-04 16:59:17 +00:00
tigeren e019389770 feat(player): improve HLS player cleanup and session management
- Add support for releasing HLS session references via API cleanup route
- Extend HLS cleanup API to handle 'release_reference' and 'force_cleanup' actions
- Refactor WebDAV API to handle PROPFIND method via POST with x-webdav-method header
- Replace PROPFIND handler with GET and POST handlers for better WebDAV compatibility
- Add comprehensive cleanup of HLS instances, players, and error handlers on unmount and modal close
- Implement immediate stop and destroy of HLS instance when modal closes
- Automatically release backend HLS session reference on modal close via cleanup API call
- Improve logging throughout cleanup and error handling processes
2025-10-04 14:36:19 +00:00
tigeren 4489fc5381 fix(hls): improve buffering and error handling in HLS player
- Adjust Hls.js config
2025-10-01 17:20:21 +00:00
tigeren fef8f57e9b feat(hls): implement dynamic FFmpeg segmentation for merged .ts files
- Add tsSegmentationService to detect and re-segment merged .ts files using FFmpeg
- Create HLSSessionManager to manage segmentation sessions with heartbeat and TTL
- Enhance HLS playlist route to serve either virtual or FFmpeg-segmented playlists
- Update segment route to serve FFmpeg-generated segments with proper caching headers
- Add manual cleanup API for forced session cleanup and status inspection
- Implement global HLS status endpoint with session and segmentation metrics
- Introduce session lifecycle management with auto cleanup and error handling
- Provide detailed logging for session creation, heartbeat, cleanup, and errors
- Configure segment duration, temp directory, concurrency limits, and cleanup intervals
- Ensure fallback to virtual segmentation on errors or unsupported cases
- Document MPEG-TS protocol issues with naive merging and correct segmentation approach
- Plan phased migration for scalable production readiness and monitoring integration
2025-10-01 15:40:23 +00:00
tigeren d54af0289f feat(streaming): add .ts file HLS streaming and container conversion support
- Implement virtual HLS playlist generation for .ts files as multi-segment streams
- Serve .ts files in virtual 2MB segments with proper byte-range handling
- Enhance existing HLS playlist route to support .ts files as single or multi-segment streams
- Improve segment route to serve .ts segments using stream slicing and abort handling
- Add comprehensive API endpoint for converting .ts files to .mp4 containers
- Implement fast container remuxing using FFmpeg without re-encoding
- Provide analysis of .ts files for conversion suitability based on codec compatibility
- Return detailed error messages and alternatives when HLS streaming unsupported for non-.ts formats
- Update HLS playlist URLs to absolute paths with protocol and host for external access
- Add caching and CORS headers for HLS segments and playlists
- Include thorough logging for debugging HLS segment requests and conversion processes
2025-09-29 19:21:46 +00:00
tigeren 4940cb4542 feat(streaming): disable transcoding and add local player guidance
- Disable video transcoding endpoints with HTTP 410 Gone responses
- Add detailed messages recommending local media players for unsupported formats
- Modify direct stream API to return 415 status with local player usage instructions
- Implement enhanced external streaming API with CORS, range requests, and metadata headers
- Add universal media access API providing multiple streaming URLs and playback recommendations
- Improve MIME type detection and headers for better compatibility with external players
- Remove all transcoding logic and related process management code while preserving references
- Ensure fallback to direct streaming and local player usage instructions on unsupported formats
2025-09-29 17:07:05 +00:00
tigeren 9ccc88d5ee style(sidebar): improve layout and add custom scrollbar styling
- Add custom scrollbar styles for sidebar with hover transitions
- Set fixed height and overflow hidden on sidebar container for consistent layout
- Add overflow-hidden to main content wrapper for better scroll handling
- Update navigation and library sections to use flex layout with proper overflow control
- Add scrollbar with custom style to libraries list for better UX during scrolling
- Ensure sidebar and its elements adapt properly when collapsed or expanded
2025-09-21 16:46:18 +00:00
tigeren b8b46fcf0e feat(stars): add DELETE endpoint and support rating removal
- Implement DELETE /api/stars to remove star ratings by mediaId
- Update media's star count and average rating on deletion
- Modify frontend rating handlers to support unstarring by sending DELETE requests
- Update multiple pages to handle rating removal when rating is zero
- Adjust photo viewer to toggle rating off if same rating clicked
- Improve error handling and success responses for star rating API interactions
2025-09-21 15:06:52 +00:00
tigeren 5fac68e809 feat(api): add GET endpoints for bookmarks and stars by media ID
- Implement GET /api/bookmarks/[id] to check bookmark existence and return bookmark ID
- Implement GET /api/stars/[id] to check star rating existence and return rating value
- Validate media ID as integer and handle invalid ID with 400 status
- Handle server errors with 500 status and error messages

refactor(api): change rating POST request to include mediaId in body

- Update /api/stars POST request to send mediaId and rating in JSON body
- Adjust client fetch call accordingly from /api/stars/[id] to /api/stars

feat(player): integrate bookmark and rating status checks in video player

- Add state and loading indicators for bookmark and rating status in UnifiedVideoPlayer
- Fetch current bookmark and rating status on video open using new GET API endpoints
- Update local bookmark and rating state on user actions for bookmark add/remove and rating update
- Show loading state until both bookmark and rating statuses are fetched

fix(ui): improve bookmark button tooltip and state handling in ArtPlayerWrapper

- Change bookmark button title dynamically based on bookmark state ('Add bookmark' or 'Remove bookmark')
- Remove redundant bookmark count element in button for cleaner UI
2025-09-21 12:25:48 +00:00
tigeren 74980b5059 feat(media): add bookmark feature and rating improvements
- Extend media database query to include bookmark count with LEFT JOINs
- Add bookmark_count property to media file types and UI components
- Implement bookmark add and remove handlers with API calls
- Enhance video player overlay to show bookmark button and rating stars
- Update ArtPlayerWrapper for interactive 5-star rating and bookmark toggling
- Modify folder viewer and virtualized media grid to display bookmark counts
- Simplify video player debug to always use ArtPlayer and show static support info
2025-09-21 07:47:59 +00:00
tigeren 5e45db122e refactor(player): switch to ArtPlayer-only architecture
- Remove fallback to other players in UnifiedVideoPlayer component
- Eliminate legacy InlineVideoPlayer and VideoViewer components
- Update API to always use ArtPlayer as player type and remove alternatives
- Simplify feature detection flags to assume full ArtPlayer support
- Remove ArtPlayer error fallback chain; log errors without switching player
- Rename and adjust styles in ArtPlayerWrapper for consistency
- Refactor VideoPlayerDebug to always report ArtPlayer active
- Adjust diagnostics and logging to indicate ArtPlayer-only mode
- Clean up unused imports and feature flags related to multiple players
2025-09-20 17:57:44 +00:00
tigeren d94fed7e01 feat(player): add autoplay support and prioritize H.264 direct streaming
- Add autoplay prop to ArtPlayerWrapper, UnifiedVideoPlayer, and related components
- Implement autoplay logic with graceful handling of browser restrictions in ArtPlayerWrapper
- Set default autoplay to true in artplayer configuration and expose helper functions to create configs
- Enhance video and stream API to parse codec info with codec and container details
- Implement H.264 codec detection to prioritize direct streaming over transcoding
- Update video-viewer and stream route to override transcoding flag for H.264 codec videos
- Add MIME type to ArtPlayer to select appropriate player type (mpegts, webm, ogg, mp4)
- Extend video format detector to serve MPEG Transport Stream (.ts) files directly without transcoding
- Improve logging with detailed codec, container, and transcoding decision information
2025-09-20 17:00:49 +00:00
tigeren 4e25da484a feat(streaming): integrate hls.js with ArtPlayer and implement fallback chain
- Add hls.js plugin to ArtPlayer wrapper for HLS streaming support
- Implement adaptive bitrate streaming and quality level switching
- Create comprehensive HLS error handling with recovery and fallback
- Detect and handle HLS-compatible formats (.ts, MP4, M4V, TS, M2TS, MTS)
- Support native HLS playback fallback for Safari browsers
- Enhance fallback chain: Native → HLS → Direct → Transcoding streaming
- Update unified video player to handle ArtPlayer errors with fallback logic
- Provide user-friendly error messages and retry options on HLS failure
- Add cleanup for HLS error handlers on component unmount
- Complete Phase 2 of gradual migration tracker with HLS integration and tests
2025-09-18 15:52:39 +00:00
tigeren f9d30fa9b4 feat: native用artplayer取代 2025-09-16 15:03:56 +00:00
tigeren a22e4a95c5 feat(transcode): improve transcoding logic with request deduplication and stable FFmpeg processes
- Add HEAD request handler to serve video metadata without body
- Replace fluent-ffmpeg with direct spawn for FFmpeg process execution
- Implement active request tracking to prevent duplicate transcoding streams
- Enhance process management by avoiding killing similar seek processes (within 2s)
- Preserve original metadata and apply duration overrides for accurate streaming
- Return full duration metadata and seek time in custom response headers
- Add DELETE endpoint to clean up all transcoding processes for a video
- Update client video player to detect transcoding need and switch source accordingly
- Implement retry logic with capped attempts for both direct and transcoding streams
- Add user-visible transcoding error display with retry button in video viewer
- Optimize transcoding seek requests to avoid duplicate or unnecessary restarts
- Enhance useStableProgress hook to support seek offset from streaming URL
- Adjust progress updates to consider seek time offset for smooth playback progress
- Initialize progress state at seek offset instead of zero on reset to prevent jitter
2025-09-06 18:26:31 +00:00
tigeren 13d6874c00 feat(api): add FFmpeg process status and management API endpoints
- Implement GET /api/ffmpeg/status to return current FFmpeg process status
- Support filtering by videoId and response formatting (JSON or text table)
- Include optional statistics in status response
- Implement DELETE /api/ffmpeg/status for process cleanup operations
- Allow killing processes by videoId, stale status, or all at once
- Add cache-control and CORS headers for API responses
- Add error handling with 500 response on failure
2025-09-06 16:39:00 +00:00
tigeren b93bd26825 fix: ensure proper encoding of folder paths in navigation links
- Updated folder path handling in the FolderViewerPage, SidebarContent, and VirtualizedFolderGrid components to use encodeURIComponent for URL encoding.
- This change improves the handling of special characters in folder paths, ensuring correct navigation and link generation.
2025-09-02 17:49:35 +00:00
tigeren fbeed219fc fix: improve file path handling in API routes
- Updated file reading and database querying logic to decode URL-encoded paths, ensuring proper handling of special characters.
- Refactored path usage in the GET requests for both media file listing and content retrieval, enhancing compatibility with various file names.
2025-09-02 17:14:32 +00:00
tigeren 30cebc453a fix: improve transcoding progress bar and duration handling
- Enhanced video player components to correctly read and display duration for transcoded streams, addressing issues with incorrect progress bar behavior.
- Updated FFmpeg configuration to ensure proper preservation of duration metadata during transcoding.
- Implemented better validation for progress bar calculations to prevent invalid values.
- Added dynamic duration change event handling to improve user experience during transcoding.
- Updated documentation to reflect changes and added testing instructions for progress bar functionality.
2025-08-31 16:36:54 +00:00
tigeren 25f230e598 feat: implement transcoding fixes and heartbeat management
- Added documentation for transcoding fixes addressing FFmpeg process management and progress bar accuracy.
- Introduced a heartbeat mechanism to track active video players and ensure proper cleanup of FFmpeg processes.
- Created a global ProcessManager class for managing FFmpeg processes and automatic cleanup of stale processes.
- Enhanced video player components to support heartbeat notifications and display transcoding status.
- Updated API routes for managing heartbeats and processes, improving resource efficiency and user experience.
2025-08-31 15:58:45 +00:00
tigeren 280a718a63 feat: enhance video streaming and transcoding capabilities
- Added support for video codec analysis and transcoding based on codec information.
- Implemented new API routes for transcoding videos, allowing for dynamic quality adjustments.
- Updated video player components to handle errors and fallback to transcoded versions if direct streaming fails.
- Enhanced database schema to store codec information for media files.
- Introduced a VideoAnalyzer utility for extracting codec details from video files during scanning.
- Improved CORS handling in API responses for better compatibility with various clients.
2025-08-31 14:56:23 +00:00
tigeren f6a02d9328 refactor: remove thumbnail API and update thumbnail management
- Deleted the thumbnail API route to streamline the application structure.
- Integrated ThumbnailManager for improved thumbnail path generation and directory management.
- Updated media scanning logic to utilize hashed thumbnail paths and ensure directory existence.
- Enhanced error handling for thumbnail generation with fallback options based on media type.
2025-08-31 09:23:05 +00:00
tigeren 407c702e88 feat: add text file support and viewer enhancements
- Introduced a text viewer for displaying various text file formats, including .txt, .md, and more.
- Implemented API routes for fetching text file content with encoding options and error handling.
- Enhanced folder viewer to support text file selection and integrated the new text viewer component.
- Updated global styles to include custom scrollbar styles for the text viewer.
- Added support for hashed folder structure to store thumbnails for better organization.
- Included new dependencies for text encoding handling and updated package configurations.
2025-08-31 08:42:30 +00:00
tigeren 9ca11a8c6d feat: add thumbnail API and update Docker configuration
- Implemented a new API route for serving thumbnails, allowing dynamic retrieval of image files.
- Updated Dockerfile to install FFmpeg for media processing.
- Enhanced docker-compose.yml to mount the thumbnails directory for easier access.
- Added public/thumbnails to .dockerignore and .gitignore to prevent unnecessary file inclusion.
- Created a new media database file for managing media assets.
2025-08-30 19:39:51 +00:00
tigeren 0c1119be46 feat: add Docker configuration and database initialization
- Introduced a .dockerignore file to exclude unnecessary files from Docker builds.
- Created a Dockerfile for building the Next.js application with optimized production settings.
- Added a docker-compose.yml file for orchestrating services, including NextAV, FFmpeg, and Nginx.
- Refactored database access to use a singleton pattern for better management and initialization of the SQLite database.
- Updated API routes to utilize the new database access method, enhancing consistency across the application.
2025-08-30 17:42:26 +00:00
tigeren 854afd4c41 feat: enhance photo viewer navigation and state management
- Implemented next and previous photo navigation in the photo viewer, allowing users to cycle through images while skipping videos.
- Introduced state management for current items in the folder viewer to support navigation functionality.
- Updated the InfiniteVirtualGrid and VirtualizedFolderGrid components to handle item clicks with index support for better user experience.
2025-08-29 17:26:51 +00:00
tigeren 848578c136 feat: integrate virtualized folder grid for enhanced media browsing experience
- Replaced the existing folder viewer layout with a new VirtualizedFolderGrid component to improve performance and responsiveness.
- Streamlined item fetching logic to eliminate unnecessary state management and enhance loading efficiency.
- Updated UI elements for better navigation, including breadcrumb support and back button functionality.
- Enhanced error handling and loading states to provide clearer feedback during directory access.
2025-08-29 16:08:53 +00:00
tigeren a56492f36a feat: refine path display and layout adjustments for folder and media grids
- Enhanced path display logic to accommodate longer directory names and improved truncation for better clarity.
- Adjusted grid item dimensions and padding for a more consistent and responsive layout across components.
- Updated title formatting and line clamping to enhance readability and prevent overflow in media item displays.
2025-08-29 15:45:44 +00:00
tigeren efd5e70e1f feat: enhance folder viewer and grid layout for improved usability
- Updated path display logic to show full paths or truncated versions based on length, enhancing clarity for users navigating directories.
- Adjusted grid layout and item dimensions for better responsiveness and visual consistency across different screen sizes.
- Improved title formatting and added line clamping to prevent overflow, ensuring a cleaner presentation of media item names.
- Refined star rating component to support additional size options, allowing for better integration with various UI elements.
2025-08-29 15:37:31 +00:00
tigeren 44aedcbee6 feat: implement infinite scrolling and replace virtualized media grid
- Replaced the existing VirtualizedMediaGrid component with a new InfiniteVirtualGrid component to support infinite scrolling for bookmarks, photos, and videos.
- Enhanced media item fetching with batch loading and search functionality, improving user experience and performance.
- Removed unused state variables and functions related to photo indexing and file size formatting, streamlining the codebase.
2025-08-28 18:56:59 +00:00
tigeren 6ce4e5a877 feat: enhance scrollbar customization and layout adjustments for media grid
- Updated global CSS to implement custom scrollbar styles, including hover effects and animations.
- Adjusted layout in the media grid component to improve responsiveness and user experience, including dynamic height calculations and loading states.
- Disabled automatic loading of more items, allowing users to manually trigger loading for better control.
2025-08-28 15:52:55 +00:00
tigeren 6aef5daa74 feat: implement performance optimization plan and pagination for media APIs
- Added a comprehensive performance optimization plan detailing phases for API pagination, frontend memory optimization, file system scanning, database performance, and caching strategies.
- Implemented pagination for bookmarks, photos, and videos APIs, including limit/offset parameters and server-side filtering and sorting.
- Enhanced database queries with indexes for improved performance and added total count for pagination responses.
- Updated frontend components to utilize virtualized lists for better memory management and user experience.
2025-08-28 09:10:38 +00:00
tigeren 2442d0dde7 fix: update media viewer layout and maintain aspect ratio for video thumbnails
- Adjusted the layout of media items in the folder viewer to ensure proper aspect ratio handling for video files.
- Modified thumbnail size settings in the video thumbnail generation function to maintain aspect ratio while specifying a fixed width.
- Updated the media database file to reflect recent changes.
2025-08-27 17:49:02 +00:00
tigeren caa0d1eab9 refactor: improve path handling in folder viewer
- Updated path splitting logic to retain leading slashes for absolute paths while filtering out empty segments.
- Enhanced parent path reconstruction to ensure correct navigation within the folder structure.
- Improved readability and maintainability of the path management code.
2025-08-27 17:16:45 +00:00