Commit Graph
16 Commits
Author SHA1 Message Date
euzu 873235d8f3 - Fixed Sort
- Added cluster to favourites
- Added Regex cache to avoid multiple compilations of same regex
2026-01-13 16:37:27 +01:00
euzu 14153fc4ff Fixed EPG titles to match renamed / mapped titles 2026-01-04 16:17:47 +01:00
euzu e5e94a5f28 Fix stream session poisoning and correct headers handling 2026-01-04 10:54:41 +01:00
euzu 5e246aefab some refactoring for panel api config 2025-12-20 15:15:36 +01:00
euzu eac510ca6e integrated local series into playlist 2025-12-19 16:41:12 +01:00
euzu ca3ae3e81b integrated local series into playlist 2025-12-19 16:27:06 +01:00
euzu aa4463b632 fetching tmdb data for series 2025-12-19 15:57:46 +01:00
euzu 2f32f1ece1 Local media library 2025-12-15 17:54:19 +01:00
euzu a66b227316 Fixed source editor connection delete refresh 2025-12-10 12:04:27 +01:00
euzu f3f7d0136d Merge remote-tracking branch 'deadc1de/feature/local-vod-module' into feature/local_media 2025-12-10 09:18:53 +01:00
moeandClaude Sonnet 4.5 d481303e57 feat: Add Local VOD (Video-on-Demand) Module
Implements comprehensive local video file scanning and metadata management:

Core Features:
- Recursive directory scanning with tokio::fs async operations
- Automatic classification (Movies vs TV Series) using regex patterns
- Multi-source metadata resolution (NFO → TMDB → filename parsing)
- JSON-based metadata storage with UUID tracking
- Virtual ID management (incremental, stable across scans)
- TMDB API integration with rate limiting (250ms default)
- NFO file reading/writing (Kodi/Jellyfin/Emby/Plex compatible)
- Incremental scanning (only processes changed files)
- Orphaned entry cleanup

Components Added:
- backend/src/vod/scanner.rs - Async file scanner
- backend/src/vod/classifier.rs - Movie/Series classification
- backend/src/vod/metadata.rs - Metadata models
- backend/src/vod/nfo_reader.rs - NFO parser
- backend/src/vod/tmdb_client.rs - TMDB API client
- backend/src/vod/metadata_storage.rs - JSON storage layer
- backend/src/vod/metadata_resolver.rs - Metadata orchestration
- backend/src/vod/processor.rs - Main processing pipeline

API Endpoints:
- POST /api/v1/vod/scan - Trigger VOD scan
- GET /api/v1/vod/status - Get VOD status
- GET /api/v1/vod/item/:id - Get VOD item by virtual ID

CLI Integration:
- --scan-vod - Scan VOD directories
- --force-vod-rescan - Force full rescan

Configuration:
- config/vod.yml.example - Example configuration
- New InputType::LocalVod in source.yml

Technical Details:
- Uses OnceLock for regex caching (no lazy_static needed)
- Arc-swap pattern for lock-free config updates
- Comprehensive unit tests
- ~3,200 lines of new code
- Zero new dependencies added

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-10 07:51:06 +01:00
euzu 82258d91f2 Handling HLS errors from provider 2025-10-16 11:58:40 +02:00
euzu 9bf787953d fixes for series tmdb id 2025-09-20 15:32:14 +02:00
euzu 30df63359a fixed web path handling 2025-08-12 16:27:15 +02:00
euzu b3c88ef6db shared stream optimizations 2025-07-28 14:46:13 +02:00
euzu 068150561a moved constants, size_utils, string_utils to shared 2025-06-19 13:22:43 +02:00