- 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
21 lines
393 B
Plaintext
21 lines
393 B
Plaintext
fastapi==0.104.1
|
|
uvicorn[standard]==0.24.0
|
|
jinja2==3.1.2
|
|
python-multipart==0.0.6
|
|
pydantic==2.5.0
|
|
pydantic-settings==2.1.0
|
|
python-jose[cryptography]==3.3.0
|
|
passlib[bcrypt]==1.7.4
|
|
aiofiles==23.2.1
|
|
websockets==12.0
|
|
structlog==24.1.0
|
|
psutil==5.9.6
|
|
pytest==7.4.3
|
|
pytest-asyncio==0.21.1
|
|
httpx==0.25.2
|
|
sqlalchemy>=2.0.35
|
|
aiosqlite>=0.19.0
|
|
aiohttp>=3.9.0
|
|
lxml>=5.0.0
|
|
pillow>=10.0.0
|
|
APScheduler>=3.10.4 |