Enhance PVideoDl with finished_at tracking for downloads and UI updates. Added finished_at field to Download model, updated storage to handle legacy databases, and improved frontend to display recent downloads. Refactored scripts for better clarity and error handling.

This commit is contained in:
Leonid Pershin
2026-06-19 16:27:20 +03:00
parent 303de2b26c
commit 3e47e95fc4
14 changed files with 316 additions and 126 deletions
+18 -3
View File
@@ -7,6 +7,8 @@
- **Прямые файлы** (`.zip`, `.pdf`, `.mp4`, …) качаются через `httpx` по chunk'ам.
- **Видео с сайтов** (YouTube и сотни других) — через `yt-dlp`.
- Прогресс течёт в UI по **SSE** в реальном времени.
- Две вкладки: **Активные** (что качается сейчас и завершилось за последний час)
и **История** (все завершённые загрузки).
## Стек
@@ -31,7 +33,22 @@ app/
frontend/ SvelteKit SPA → собирается в frontend/build
```
## Запуск (прод, «для себя») — одна команда
## Запуск — готовые скрипты
В корне лежат скрипты-обёртки (Linux/macOS — `.sh`, Windows — `.bat`):
```bash
# Прод: зависимости -> сборка фронта (если её нет) -> сервер
./run.sh # Windows: run.bat
# Дев: бэкенд (:8000) + Vite dev-сервер (:5173) с hot-reload
./dev.sh # Windows: dev.bat
```
`run` открывает <http://127.0.0.1:8000>, `dev` — <http://localhost:5173>.
Файлы складываются в `downloads/`.
## Запуск (прод, «для себя») — вручную
Фронт собирается в статику, FastAPI отдаёт её с того же origin:
@@ -44,8 +61,6 @@ cd frontend && npm install && npm run build && cd ..
uv run pvideodl
```
Открыть <http://127.0.0.1:8000>. Файлы складываются в `downloads/`.
## Запуск (дев) — два процесса
```bash