Web UI: - Replace SSE with simple 600ms polling (GET /api/progress) — SSE added complexity with no real benefit for a local tool and was the source of connection failures - Poll task moved into request handler (dl.poll() on each /api/progress call) so no background goroutine needed; simplifies state greatly - Remove tokio-stream dependency (no longer needed) - Fix: create channels dir before opening DB in web serve() - Rescan also refreshes watched set from DB - Bulk watched, sort, channel download button all working in web UI Sort labels: - Rename "Dur ↑" / "Dur ↓" → "Shortest" / "Longest" - Rename "Size ↑" / "Size ↓" → "Smallest" / "Largest" Channel right-click context menu: - Right-click any channel in sidebar → "Check for new videos" starts a yt-dlp job on the stored channel_url from its info.json - Also shows "Open folder" shortcut - Grayed out with tooltip if no URL is stored yet (channel has no info.json) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
21 lines
679 B
TOML
21 lines
679 B
TOML
[package]
|
|
name = "yt-offline"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "A desktop app for archiving YouTube channels with yt-dlp"
|
|
|
|
[dependencies]
|
|
eframe = "0.29"
|
|
image = { version = "0.25", default-features = false, features = ["webp", "jpeg", "png"] }
|
|
toml = "0.8"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
rusqlite = { version = "0.31", features = ["bundled"] }
|
|
tray-icon = "0.13"
|
|
notify-rust = { version = "4", default-features = false, features = ["z"] }
|
|
axum = { version = "0.7", features = ["macros"] }
|
|
tokio = { version = "1", features = ["full"] }
|
|
tower-http = { version = "0.5", features = ["cors"] }
|
|
|
|
[profile.release]
|
|
opt-level = 2
|