Phase 1 of the real grab→transfer pipeline:
- video.db video_downloads table (kind/title/release/source/username/filename/size/
target_dir/dest_path/status/progress/error/timestamps) + CRUD (add/list/get_active/
update/clear_finished). Schema v14.
- core/video/slskd_download.py: start_download (POST /transfers/downloads/{user}),
list_downloads (GET → flattened), + pure classify_state (completed/failed/active),
progress_pct, find_transfer.
- core/video/download_pipeline.py: pure find_completed_file (locate by basename in the
download dir), dest_path_for, target_dir_for (kind → movies/tv/youtube library).
All filesystem/HTTP is injected or thin glue; 7 tests, isolation guard + ruff clean.
Monitor + grab endpoint + Downloads page next.
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| music_database.py | ||
| personalized_schema.py | ||
| video_database.py | ||
| video_schema.sql | ||