Commit graph

3942 commits

Author SHA1 Message Date
SergeantPanda
2e0c136796 fix: update dependency in useEffect to include sendMessage for WebSocket handling 2026-03-29 16:22:44 -05:00
SergeantPanda
121199de9c refactor: remove unused playlist store imports and update Text component to use 'div' as the component type 2026-03-29 16:20:04 -05:00
SergeantPanda
6d06422ddd Enhancement: client_connect and client_disconnect system events now include the **username** of the connected user. The username is stored alongside the client metadata in Redis and included in the event payload for log_system_event calls (making it available to webhook and script integrations). 2026-03-29 16:06:14 -05:00
Jonathan Caicedo
6591d1dac7 perf: use PostgreSQL Unix socket for AIO 2026-03-29 16:13:50 -04:00
SergeantPanda
1d3cd5fd75 tests: Update floating video test.
Some checks are pending
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
2026-03-28 18:14:25 -05:00
SergeantPanda
f00d1fe63c Bug Fix/Enhancement:
- Web UI stream preview (`FloatingVideo`) was calling `mpegts.createPlayer()` with all `Config` options (e.g. `enableWorker`, `liveSync`, `headers`) merged into the first `MediaDataSource` argument. mpegts.js only reads `Config` from the optional second argument; unrecognised fields in the first are silently ignored. As a result all player configuration was effectively the library defaults — worker offloading was disabled, latency management had no effect, and the `Authorization: Bearer` header (required for user identification) was never sent. Fixed by splitting into the correct two-argument call. Both `liveBufferLatencyChasing` and `liveSync` have been disabled, eliminating playback-rate fluctuations that caused audible stuttering on live streams. SourceBuffer cleanup thresholds were also relaxed from 10s/5s to 120s/60s to prevent frequent SourceBuffer pauses.
- Web UI stream preview now sends an `Authorization: Bearer` header with each mpegts.js request, identifying the logged-in user. Live channel previews initiated from the web UI now appear on the Stats page with the correct username rather than as unknown user.
2026-03-28 18:04:11 -05:00
SergeantPanda
3cb0925357 tests: Add user store mock and additional icons for VodConnectionCard tests 2026-03-28 17:04:57 -05:00
SergeantPanda
38f5156ca6 Enhancement: Show username in VOD cards. 2026-03-28 16:46:06 -05:00
SergeantPanda
30246a4d49 changelog: Add change for VOD XC endpoint. 2026-03-28 16:28:47 -05:00
SergeantPanda
17b8e6587f changelog: Move issue to correct location and formatted them for auto-closing. 2026-03-28 15:49:35 -05:00
SergeantPanda
7ece48bdf2 tests: Update frontend tests 2026-03-28 15:12:24 -05:00
SergeantPanda
dd97b642c7 Bug Fix: preserve original file mtime during HTML entity resolution to prevent infinite refresh loop 2026-03-28 14:21:37 -05:00
SergeantPanda
6f516c0074 Enhancement: CustomTable column layout now supports flexible (grow) columns alongside fixed-width ones:
- Column definitions accept a `grow` property (boolean or number) to opt into flex layout. A numeric value sets the flex-grow weight, allowing relative sizing between grow columns (e.g. `grow: 2` gives a column twice the share of spare space as `grow: 1`).
  - `maxSize` is now respected on grow columns, capping how wide they expand via `maxWidth`.
  - The wrapper's `minWidth` calculation now uses `minSize` (not TanStack's 150px default) for grow columns, preventing the table from overflowing its container when columns would otherwise be sized larger than available space.
2026-03-28 13:36:47 -05:00
SergeantPanda
5f4e066147 Enhancements:
- Connection cards on the Stats page now show the **username** of the connected user in a new User column (between IP Address and Connected). The username is resolved from the user store using the `user_id` stored in Redis client metadata; unauthenticated connections display "Anonymous". (Closes #766)
- `ip_address` and `user_id` were not included in the client info returned by `get_detailed_channel_info()` despite being available in the Redis hash. Both fields are now extracted and returned. (Closes #586)
2026-03-28 13:33:29 -05:00
SergeantPanda
49f6871ba8 changelog: Update formatting a bit.
Some checks failed
Base Image Build / prepare (push) Has been cancelled
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
2026-03-27 16:36:34 -05:00
SergeantPanda
b9e2a878df
Merge pull request #1152 from Dispatcharr/donate-button
Enhancement: Donate button added to the sidebar footer
2026-03-27 15:16:58 -05:00
Damien
2a107eebd3
Merge branch 'Dispatcharr:main' into feature-819-UserTableUpdate 2026-03-27 20:14:05 +00:00
SergeantPanda
3ee925ca71 tests: add Heart icon and Tooltip mock to Sidebar tests 2026-03-27 15:14:04 -05:00
SergeantPanda
c29deeb007
Merge branch 'dev' into donate-button 2026-03-27 15:05:02 -05:00
SergeantPanda
456f9ef6e6
Merge pull request #1145 from Dispatcharr/user-priority-fixes
User stream limits
2026-03-27 14:18:38 -05:00
SergeantPanda
3064be8194 tests: Fix settings page test. 2026-03-27 14:15:20 -05:00
SergeantPanda
0827908b53 fix: lazy load UserLimitsForm and correct spelling in user limits section 2026-03-27 14:12:21 -05:00
SergeantPanda
110c8623ed delete temp script used for debugging. 2026-03-27 13:59:50 -05:00
SergeantPanda
5f45d3e9ad changelog: User stream limits 2026-03-27 13:55:16 -05:00
SergeantPanda
9d8d4f6c75 chore: remove unnecessary python-is-python3, python3-pip and streamlink from Dockerfile dependencies
Some checks failed
Base Image Build / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
2026-03-27 12:12:44 -05:00
SergeantPanda
c601174e9a chore: update dependencies for celery, requests, torch, and sentence-transformers 2026-03-27 12:12:30 -05:00
SergeantPanda
36ce5a8c71 changelog: Update changelog for base image changes. 2026-03-27 11:54:00 -05:00
SergeantPanda
9c9de12b19 chore: remove unnecessary python-is-python3, python3-pip and streamlink from Dockerfile dependencies 2026-03-27 11:49:28 -05:00
SergeantPanda
2253e18ef8 changelog: Update changelog for dependency upgrades 2026-03-27 11:04:37 -05:00
SergeantPanda
b20c42f25a chore: update dependencies for celery, requests, torch, and sentence-transformers 2026-03-27 11:03:55 -05:00
SergeantPanda
7d8619f644 Security: Update npm dependencies to resolve frontend vulernabilities. 2026-03-27 09:30:01 -05:00
SergeantPanda
8e9a6285a4 Enhancement: Donate button added to the sidebar footer. A heart icon links to the project's Open Collective page, visible in both expanded and collapsed states. Hovering shows a "Support Dispatcharr" tooltip. The version string is also now clickable to copy it to the clipboard. 2026-03-26 21:16:18 -05:00
SergeantPanda
7964b2c2cb fix: enhance stream termination logic to handle multiple connections on the same channel 2026-03-26 20:33:03 -05:00
SergeantPanda
7e6041286a fix: update user limit settings key in migration and frontend form for consistency with other settings keys. 2026-03-26 20:16:16 -05:00
SergeantPanda
46d4063524 fix: change logging level from info to debug in user connection checks 2026-03-26 20:10:03 -05:00
SergeantPanda
aa6fb033d3 fix: update user stream limit checks to include media_id and rename user_limits_settings key 2026-03-26 20:02:54 -05:00
SergeantPanda
58befaa52b fix: correct indentation in check_user_stream_limits function 2026-03-26 19:14:46 -05:00
SergeantPanda
b671a72707 fix: resolve decode_responses migration bugs and user-limit regressions
Fix a wave of bugs introduced by the user-priority branch's migration
from manual .decode('utf-8') calls to decode_responses=True on the
metadata Redis client:

core/utils.py
- Rewrite _init_client: fix SyntaxError at line 138, missing
  redis_password/redis_user params, cls._client corruption when
  decode_responses=False was requested, and dead retry backoff logic

apps/proxy/utils.py
- Fix get_user_limit_settings() → get_user_limits_settings() (2 sites)
- Fix VOD scan key vod_persistent_connections:* → vod_persistent_connection:*
- Fix undefined channel_id in VOD loop (use content_uuid from Redis hash)
- Remove leftover print(active_connections) debug statement
- Refactor manual cursor SCAN while-loops to scan_iter()

apps/channels/tasks.py
- Fix closure bug in _d(): md.get(key) → md.get(bkey) (was reading
  the outer loop variable instead of the local bytes key)

apps/proxy/ts_proxy/server.py
- Replace stale b'init_time', b'total_bytes', b'state' byte-string
  key lookups and .decode() calls with plain string equivalents

apps/proxy/ts_proxy/services/channel_service.py
- Fix ChannelMetadataField.STATE.encode() / .OWNER.encode() →
  .STATE / .OWNER (pre-existing, broke under decoded client)

apps/proxy/ts_proxy/views.py
- Fix ChannelMetadataField.OWNER.encode("utf-8") → .OWNER

apps/proxy/ts_proxy/client_manager.py
- Fix cid.decode('utf-8') in remove_ghost_clients(): smembers()
  already returns str with decode_responses=True
2026-03-26 18:41:42 -05:00
dekzter
90a600b48f merged in dev 2026-03-26 12:17:43 -04:00
fezster
57e863a4bf Merge remote-tracking branch 'upstream/dev' into 1140---EPG-Record-specific-channel 2026-03-26 15:53:19 +00:00
SergeantPanda
af54366d76 changelog: Update changelog for XML parsing fixes.
Some checks are pending
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
2026-03-26 10:15:24 -05:00
SergeantPanda
5095f8d5ce
Merge pull request #1099 from CodeBormen/fix/1095-epg-special-characters
fix: resolve HTML named entities in XMLTV files before parsing
2026-03-26 10:07:59 -05:00
dekzter
a19be96ced fleshed out user limits and termination logic 2026-03-25 17:33:26 -04:00
fezster
fcbf794947 feat: Update Guide component tests to use selected channel for recording and enhance program selection functionality 2026-03-25 13:30:17 +00:00
fezster
29cb481f78 feat: When recording from EPG, use the explicit channel number selected rather than relying on the findChannelByTvgId() function to select the channel - of which there can be many and it would default to the first channel in the list, which may not be the same stream you want to record. 2026-03-25 13:30:03 +00:00
SergeantPanda
cee94282f9
Merge pull request #1128 from CodeBormen/dev
Some checks failed
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
feat: add TLS connection support for Redis and PostgreSQL (#950)
2026-03-24 18:56:57 -05:00
None
c005b1ac56 changelog: add TLS connection support for Redis and PostgreSQL (#950) 2026-03-24 18:25:15 -05:00
SergeantPanda
6d694c8475 Bug Fix: Sort max stream column by total of streams from all profiles.
Some checks are pending
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
2026-03-24 13:41:46 -05:00
SergeantPanda
58f40ff276 Bug Fix: Fixed stale references to old guideutils location. Also change dockerfile to get clear error messages during failure. 2026-03-24 13:19:48 -05:00
SergeantPanda
ec876716c5 tests: Fix tests that use guide utils. 2026-03-24 13:08:45 -05:00