euzu and GitHub
38813bb672
Feature/makefile ci and log with local time ( #582 )
...
- Add Makefile to simplify installing required tools
- Add CONTRIBUTING.md welcome new contributors
- Add fmt, lint, test tasks to makefile and update CONTRIBUTING.md
- Add CI workflow
- Log with local date
2026-02-14 12:12:59 +01:00
euzu
d5207e886f
stream properties refactored
2025-12-26 14:09:44 +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
moe and Claude 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
c292f0b73e
config refactor
2025-06-24 11:25:42 +02:00
euzu
7f54327bfd
config added to shared model
2025-06-19 16:37:37 +02:00
euzu
2a9c8711e6
project shared added
2025-06-19 12:45:55 +02:00