Commit graph

38 commits

Author SHA1 Message Date
Jesse Bate
687c82cb32 feat: add YTP_MAX_HISTORY to cap history and prevent unbounded DB growth
Long-running instances accumulate history indefinitely. As the history
table grows, SQLite COUNT(*), paginated SELECT, and index scans degrade.

YTP_MAX_HISTORY (default: 0 = unlimited) caps the number of completed
download records kept. Enforcement is a hook in DataStore.put(): on
each insertion, the oldest excess entries are immediately evicted from
the in-memory OrderedDict and their deletes are enqueued to SQLite.
DataStore.load() also trims on startup in case the limit was lowered
between restarts. No background tasks, no DB reads needed for the check.
2026-06-10 20:29:18 +09:30
Jesse Bate
e0dbc2d15d perf: throttle item_updated WebSocket events to 500ms intervals
yt-dlp fires progress hooks faster than the browser can usefully render
them. Previously every callback triggered a WebSocket emit → Vue
reactivity update → DOM re-render, causing unnecessary main-thread work
during active downloads.

Now status changes (e.g. downloading → finished) are always emitted
immediately, while progress-only updates are capped at one per 500ms
per download. A flush_pending() call at loop termination ensures the
final state is never dropped.
2026-06-10 19:32:31 +09:30
arabcoders
1267dbaf6b refactor: use single logger namespace 2026-05-28 19:07:11 +03:00
arabcoders
39ed3d0361 refactor: add more context to the actual log message. 2026-05-28 17:56:28 +03:00
arabcoders
cf90db3b4c refactor: update log mesages to take advantage of JSONL 2026-05-27 23:53:42 +03:00
arabcoders
64fdcac0f7 refactor: implement re-extraction logic and process-safe handling for non-picklable objects. 2026-05-25 20:06:34 +03:00
arabcoders
d18145f1c5 refactor: make clear message more clear 2026-05-18 07:44:37 +03:00
arabcoders
ee8218764f fix: suppress task related archive logs 2026-05-15 18:45:56 +03:00
arabcoders
734ef1c53c refactor: use item guid as thumbnail name for easier cleanup 2026-05-15 16:50:13 +03:00
arabcoders
9b3cc8b310 fix: respect sleep-requests arg in specific code paths. 2026-05-07 21:35:40 +03:00
arabcoders
084f5082ad feat: add support for ignoring conditions in downloads and UI 2026-04-27 20:58:00 +03:00
arabcoders
30a0c30d94 refactor: fix slowness in deleting big number of items
Co-authored-by: Copilot <copilot@github.com>
2026-04-24 23:18:14 +03:00
arabcoders
3c1567930f feat: add system limits API endpoint and UI for download capacity overview 2026-04-22 22:02:40 +03:00
arabcoders
03cabe6c70 refactor: wait on db flush before returning in API history clear response 2026-04-21 22:56:46 +03:00
arabcoders
c70d5340f1 feat: implement patch to make Windows Popen support stopping live stream 2026-04-11 23:31:48 +03:00
arabcoders
f9119f5a33 fix: better partial live download handling 2026-04-11 19:13:00 +03:00
arabcoders
1fa60c3909 fix: playlist keys pre-processing. Closes #585 2026-04-10 18:26:54 +03:00
arabcoders
c3132858e7 feat: add download_skipped flag to track intentionally skipped downloads 2026-04-10 18:07:05 +03:00
arabcoders
84077349c7 feat: improve status tracking in downloads 2026-02-14 20:05:08 +03:00
arabcoders
a0fef50248 fix: some times adding a link fails with UnboundLocalError 2026-02-14 18:49:52 +03:00
arabcoders
a3fc7f6abb fix: remove unnecessary terminator call and improve exception handling in status tracker 2026-02-13 18:16:18 +03:00
arabcoders
5844290d74 fix: sometimes downloads fails due to pickling issue 2026-02-08 03:45:56 +03:00
arabcoders
435882e16b chore: packages update and some formatting 2026-02-05 01:28:06 +03:00
arabcoders
abf4c5cffd fix: remove useless log statement. 2026-01-30 21:13:48 +03:00
arabcoders
b1a05b1d79 refactor: move archiver to be under yt_dlp submodule 2026-01-27 20:04:54 +03:00
arabcoders
2c5edc64f4 refactor: isolate yt_dlp related code into submodule 2026-01-27 19:36:13 +03:00
arabcoders
3383d5d5dc refactor: move streaming logic to a feature submodule 2026-01-27 17:42:12 +03:00
arabcoders
240a920b6c fix; proper fix for dispatching many websocket events 2026-01-27 11:46:00 +03:00
arabcoders
dae141a6c2 revert: changes to playlist processor 2026-01-27 10:41:17 +03:00
arabcoders
da9f082978 fix: unintended return type change. 2026-01-27 10:17:22 +03:00
arabcoders
fe0a1c5b70 fix: offload info extraction to ProcessPoolExecutor 2026-01-26 23:32:06 +03:00
arabcoders
41bca681e5 refactor: limit item add 2026-01-26 16:36:14 +03:00
arabcoders
7d6dc7ae76 refactor: move presets to db model 2026-01-25 19:17:54 +03:00
arabcoders
a09343938d refactor: conditions feature to db model 2026-01-18 22:17:07 +03:00
arabcoders
795943196e Refactor: replace direct extract_info calls to async fetch_info 2026-01-16 20:45:10 +03:00
arabcoders
ad54d80077 Refactor: better final filename status tracking 2026-01-14 19:50:35 +03:00
arabcoders
48e653b70a refactor: limit concurrent extract info calls to prevent loop blocking 2026-01-14 16:11:21 +03:00
arabcoders
55a298e0ff Refactor: download module into testable chunks 2026-01-13 20:05:01 +03:00