Jesse Bate
0cb3a95a41
perf: batch item_updated WebSocket events into a single per-tick payload
...
The per-download 500ms throttle still scales linearly with concurrency:
N active downloads produce up to 2N item_updated frames per second, each
with its own serialization pass and per-client send.
Add an ItemBatcher at the WebSocket boundary that coalesces dirty items
by _id (last write wins) and emits one item_updated frame per 500ms
tick whose payload is always a list of items, even for a single update.
Leading-edge emits keep isolated updates (e.g. renames via the API)
instant, and a trailing flush at most 500ms later delivers the rest.
Pending items are flushed on shutdown before clients disconnect.
Emitter call sites, the EventBus, and the StatusTracker throttle are
unchanged; the batcher only changes the wire format. The frontend now
types item_updated as StoreItem[] and iterates the array.
BREAKING CHANGE: the item_updated WebSocket event payload (data) is now
always an array of items instead of a single item object.
2026-06-10 23:38:27 +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
240a920b6c
fix; proper fix for dispatching many websocket events
2026-01-27 11:46:00 +03:00
arabcoders
501455029c
refactor: remove socket.io dependency
2026-01-21 22:07:12 +03:00
arabcoders
5a5f16c9f8
Refactor: make classes more modular
2025-12-19 20:12:01 +03:00
arabcoders
fa9f1fcefc
Fix: reduce the initial connection data
2025-11-11 17:24:07 +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
da8358bad6
Further updates on how we handle archive status
2025-08-29 22:11:14 +03:00
arabcoders
09c5d7794d
Cleaning up the event dispatcher system.
2025-07-18 21:06:09 +03:00
arabcoders
c4b8bf51d5
Fix sio disconnect event
2025-06-19 23:07:29 +03:00
arabcoders
4ee0a9962b
Add new service for dependency injection.
2025-06-16 19:45:59 +03:00
arabcoders
367d4a1aeb
Fixed bug in auth handler.
2025-06-15 16:37:31 +03:00
arabcoders
4367fb0937
Add option to remove item from archive, and minor ui updates.
2025-06-14 21:29:25 +03:00
arabcoders
5212dfeeaa
Refactor HttpSocket to be more manageable and more modular.
2025-06-13 01:02:31 +03:00
arabcoders
400cf7bec3
completely refactored HttpAPI into more manageable routes.
2025-06-12 00:57:37 +03:00
arabcoders
698791b7fc
minor design update for index page.
2025-06-10 13:58:18 +03:00
arabcoders
6c8fd05886
WiP: More migration to Path
2025-06-10 01:08:44 +03:00
arabcoders
b1bc399a0c
WiP: more changes to classes to support Path
2025-06-09 00:47:11 +03:00
arabcoders
6d774a6d9c
switch to uv instead of pipenv, and partially fix the code to work on windows.
2025-06-08 20:45:12 +03:00
arabcoders
2676ed099d
support pywebview
2025-06-07 23:40:59 +03:00
arabcoders
0f0dd51a41
Add support for running YTPTube from sub-directory. Fix #295
2025-06-05 21:04:00 +03:00
arabcoders
45f4382762
minor fixes
2025-05-10 19:38:36 +03:00
arabcoders
7755f3c4e2
added some protection aganist staled download blocking the download queue.
2025-04-19 17:44:09 +03:00
arabcoders
d6ab18ec22
migrate the entire app to use cli options for ytdlp and make it behave as close to cli options parsing as possible.
2025-04-06 01:03:17 +03:00
arabcoders
48e388b0fe
Add logs viewing and enable file logging by default
2025-04-04 20:18:03 +03:00
arabcoders
f7101f6a38
simplified the codebase and removed all backwards compat flags and checks.
2025-04-01 22:56:28 +03:00
arabcoders
77de30609b
updated the conversion process of cli to config
2025-03-31 20:46:55 +03:00
arabcoders
aa3538917f
Maintain playlist keys. Fixes #227
2025-03-26 00:54:46 +03:00
ArabCoders
4ed7c26bb4
migrated all our emitter usage to EventBus
2025-03-22 02:05:52 +03:00
ArabCoders
07fc86565a
updated the app to use EventBus
2025-03-21 23:56:02 +03:00
ArabCoders
a973ce8bcf
Finalize EventBus design
2025-03-21 21:54:28 +03:00
ArabCoders
e0e63d61c4
for some reason, people were exposing ytptube directly to internet without any authentication. therefore, we have disabled the console access by default.
2025-03-07 20:11:21 +03:00
ArabCoders
49bc28edc0
Make it possible to manage presets via webui
2025-03-04 02:11:17 +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
d063cf0f52
use same name cross client and server for variables and config files.
2025-01-28 00:09:46 +03:00
ArabCoders
41ddc14af5
Updated README.md
2025-01-27 22:30:19 +03:00
ArabCoders
f62ba22047
move format_item to common class, and update methods to use it
2025-01-27 21:14:01 +03:00
ArabCoders
902244769a
Major code changes.
2025-01-27 19:53:59 +03:00
ArabCoders
dbee7cf2fa
standardize more events.
2025-01-25 22:46:33 +03:00
ArabCoders
922d194d7a
simplify API calls.
2025-01-25 17:25:58 +03:00
ArabCoders
cb735cbb97
Added new feature to parse yt-dlp CLI arguments in yt-dlp JSON config box
2025-01-23 17:35:03 +03:00
ArabCoders
843d5fd726
Fixed type casting for some elements when adding items.
2025-01-19 18:12:11 +03:00
ArabCoders
0d9f0ded88
Another attempt at fixing #173
2025-01-18 20:57:23 +03:00
ArabCoders
ed02c3ec01
Added the ability to pause download pool
2024-12-30 21:39:24 +03:00
ArabCoders
7420138ce0
Document env variables and added remove_files env option.
2024-12-25 19:16:15 +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