0265ae2a70
feat: cron-based scheduler with auto-download after rescan
...
- Replace asyncio sleep loop with APScheduler AsyncIOScheduler + CronTrigger
- Add schedule_time (HH:MM), schedule_days (days of week), auto_download_after_rescan fields to SchedulerConfig
- Add _auto_download_missing() to queue missing episodes after rescan
- Reload config live via reload_config(SchedulerConfig) without restart
- Update GET/POST /api/scheduler/config to return {success, config, status} envelope
- Add day-of-week pill toggles to Settings -> Scheduler section in UI
- Update JS loadSchedulerConfig / saveSchedulerConfig for new API shape
- Add 29 unit tests for SchedulerConfig model, 18 unit tests for SchedulerService
- Rewrite 23 endpoint tests and 36 integration tests for APScheduler behaviour
- Coverage: 96% api/scheduler, 95% scheduler_service, 90% total (>= 80% threshold)
- Update docs: API.md, CONFIGURATION.md, features.md, CHANGELOG.md
2026-02-21 08:56:17 +01:00
26532ea592
Add NFO batch operations unit tests
...
- Created tests/unit/test_nfo_batch_operations.py
* 19 comprehensive unit tests all passing
* Test concurrent operations with max_concurrent limits
* Test partial failure handling (continues processing)
* Test skip_existing and overwrite functionality
* Test media download options
* Test result accuracy and error messages
* Test edge cases (empty, single, large, duplicates)
- Updated docs/instructions.md
* Marked NFO batch operations tests as completed
* Documented 19/19 passing tests
2026-01-31 15:25:30 +01:00
63da2daa53
Add scheduler service and comprehensive unit tests
...
- Created src/server/services/scheduler_service.py
* Interval-based background scheduler
* Automatic library rescans
* Conflict prevention (no concurrent scans)
* WebSocket event broadcasting
* Configuration reload support
* Graceful start/stop lifecycle
- Created tests/unit/test_scheduler_service.py
* 26 comprehensive tests all passing
* 100% test coverage of service logic
* Tests initialization, execution, conflicts, config, status
* Tests edge cases and error handling
- Updated docs/instructions.md
* Marked scheduler service task as completed
* Documented 26/26 passing tests
2026-01-31 15:09:54 +01:00