Commit graph

32 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
arabcoders
1267dbaf6b refactor: use single logger namespace 2026-05-28 19:07:11 +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
55a298e0ff Refactor: download module into testable chunks 2026-01-13 20:05:01 +03:00
arabcoders
5a5f16c9f8 Refactor: make classes more modular 2025-12-19 20:12:01 +03:00
arabcoders
b36d9fd641 Refactor: migrated whatleft of sync code to async 2025-12-18 18:21:34 +03:00
arabcoders
50f50bed9f Refactor: do not load history items in DownloadQueue 2025-12-18 17:08:18 +03:00
arabcoders
7a85bcdb5c Refactor: swap sqlite to aiosqlite and add queued db updates 2025-12-18 16:31:15 +03:00
arabcoders
e4ffa5d77a Fix: Fix performance regression while loading items. 2025-12-15 17:22:41 +03:00
arabcoders
6d2deedc21 Refactor: change how clear in/completed buttons behave due to changes in how we load history now. 2025-11-16 19:17:33 +03:00
arabcoders
6d9c7d70d9 Feat: update datastore.get_items to support operations 2025-11-14 17:49:01 +03:00
arabcoders
1107567f86 Feat: add paginated history endpoint 2025-11-13 17:15:05 +03:00
arabcoders
669f70d9b8 fixes 2025-09-12 19:34:12 +03:00
arabcoders
2eba728dd2 Refactor event handlers to be asynchronous across multiple modules 2025-09-12 02:55:11 +03:00
arabcoders
86952200b5 FEAT: Enhance item retrieval in DataStore and DownloadQueue with flexible attribute search 2025-09-03 18:35:40 +03:00
arabcoders
da8358bad6 Further updates on how we handle archive status 2025-08-29 22:11:14 +03:00
arabcoders
472b8cb468 Fixes #344 2025-07-20 16:53:56 +03:00
arabcoders
a7e8d242c9 Completed the events system upgrade and expanded the notifications events with support for apprise. 2025-07-19 19:45:07 +03:00
arabcoders
9ff9735a2f Added the ability to add item in paused state 2025-07-08 22:13:45 +03:00
arabcoders
1239643f97 minor update to store fields 2025-07-08 17:58:56 +03:00
arabcoders
47484c2d35 make datastore.get key optional. 2025-06-19 20:40:51 +03:00
arabcoders
44226c9a04 when item download fails, trigger item_error event 2025-06-19 19:02:44 +03:00
arabcoders
1f1fbbac01 WIP: more changes to support webview in the future. 2025-06-08 23:45:00 +03:00
arabcoders
93e830f029 in some specific cases, users were unable to delete items from history 2025-04-04 22:09:58 +03:00
arabcoders
f7101f6a38 simplified the codebase and removed all backwards compat flags and checks. 2025-04-01 22:56:28 +03:00
ArabCoders
45878965f4 fixed linting problems 2025-01-28 23:05:59 +03:00
ArabCoders
fdec16e895 mostly linter fixes. 2025-01-28 19:43:51 +03:00
ArabCoders
902244769a Major code changes. 2025-01-27 19:53:59 +03:00
ArabCoders
2d70de2032 updating python code to be little more clean and implements more type checks. 2024-12-20 21:20:51 +03:00
ArabCoders
fcb2eda4ba Fixes for default preset. 2024-12-17 18:43:09 +03:00
ArabCoders
c727ab3446 Finalizing migration to nuxt3 2024-12-17 17:07:52 +03:00
ArabCoders
51024c2a9b some minor app changes =) 2024-12-15 21:28:37 +03:00
Renamed from app/DataStore.py (Browse further)