SergeantPanda
f035319e5d
Moved SizedInstallButton to components\theme. Skip showing bytes if bytes is somehow 0 (probably not possible but just for consistency).
...
Ran Prettier formatting.
2026-04-17 14:49:01 -05:00
Seth Van Niekerk
110f51f711
Add file size display to plugin details and install buttons and information popups
2026-04-17 09:50:02 -04:00
SergeantPanda
a0f27d8116
Enhancement: Add debouce for plugin repo refresh interval setting.
2026-04-16 14:38:04 -05:00
SergeantPanda
50ec5d9f1a
Merge pull request #1143 from fezster/1140---EPG-Record-specific-channel
...
1140: EPG Record - select channel number explicitly rather than use tvgId
2026-04-14 17:04:32 -05:00
SergeantPanda
62848c0ea0
Enhancement: Improved the HDHR, M3U, and EPG URL builder popovers in the Channels table
2026-04-12 17:24:17 -05:00
SergeantPanda
95fba1cb84
Bug Fix: Fixed the XC Password field in the User modal being editable by standard users
2026-04-12 16:45:58 -05:00
SergeantPanda
123509eb9d
Enhancement: Redesigned the User settings modal with a tabbed layout
2026-04-12 16:39:35 -05:00
SergeantPanda
ba967f47d9
Enhancement: **EPG historical data window**: the EPG XML output and XC EPG API now support a prev_days URL parameter (e.g. &prev_days=3) to include past programs in the EPG response. This allows third-party players that request historical program schedules to receive the data they need. The EPG URL builder in the Channels page exposes "Days forward" and "Days back" controls. Per-user defaults for both values (epg_days / epg_prev_days) can be configured in the User settings modal and are applied automatically when no URL parameter is present. ( Closes #1154 )
2026-04-12 16:34:15 -05:00
SergeantPanda
298ca3260e
tests: Update frontend tests for recent frontend changes (Floating Video Player and Stream Connection Card)
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-04-12 12:37:02 -05:00
SergeantPanda
e69a8f3449
Bug Fix: Stats page "Active Stream" dropdown not updating when a stream switch occurs
2026-04-12 12:28:39 -05:00
SergeantPanda
ad46a10ce6
Bug Fix: Uploading a local M3U file with no expiration date set sending the string "null" as the exp_date field in the FormData request, causing a 400 validation error from the API. Null/undefined values are now skipped when building the FormData body, matching the behaviour already present in the update path.
2026-04-12 09:04:49 -05:00
SergeantPanda
4a6724c94b
Enhancement: FloatingVideo player: the native video controls (timeline, play/pause, volume) are now hidden by default when a live stream starts and only appear when the user hovers over the player.
2026-04-11 09:34:38 -05:00
Seth Van Niekerk
03b50420f5
update background color for AvailablePluginCard and PluginCard components; adjust button group alignment in PluginBrowsePage
2026-04-10 15:40:34 -04:00
Seth Van Niekerk
9734bca239
fix: update author display in PluginCard test
2026-04-10 15:22:08 -04:00
Seth Van Niekerk
e8e1560106
simplify component structure and improve layout responsiveness
2026-04-10 15:17:01 -04:00
Seth Van Niekerk
1cda7b9439
feat: plugin hub
2026-04-10 13:53:45 -04:00
SergeantPanda
dcefc6541c
chore(cleanup): - Removed dead VODConnectionManager class (apps/proxy/vod_proxy/connection_manager.py) and its associated helpers, which had been superseded by MultiWorkerVODConnectionManager. All active code already used the multi-worker implementation. Removed the unused VODConnectionManager import from vod_proxy/views.py, the unscheduled cleanup_vod_connections task from apps/proxy/tasks.py, and the unscheduled cleanup_vod_persistent_connections task from core/tasks.py.
...
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
- Removed dead VOD URL routes: `VODPlaylistView` (playlist generation), `VODPositionView` (position tracking), and the class-based `VODStatsView` (replaced by the existing function-based `vod_stats` view).
- Removed dead `updateVODPosition()` API method from `frontend/src/api.js`, which called the now-removed position tracking endpoint.
2026-04-09 19:59:50 -05:00
SergeantPanda
442e2bdc0e
Remove unused starttime24_long from buildTimePlaceholders, simplified formatTime24.
2026-04-09 17:50:59 -05:00
Nick Sandstrom
48734727ad
Syntax formatting
2026-04-08 23:35:43 -07:00
Nick Sandstrom
067a0ce0a9
Refactored form components
2026-04-08 23:35:42 -07:00
Nick Sandstrom
14d1cc26d7
Added tests for form components
2026-04-08 23:35:42 -07:00
Nick Sandstrom
8f8a7e316e
Added utils tests
2026-04-08 23:35:42 -07:00
Nick Sandstrom
30b97c4fc5
Extracted utils
2026-04-08 23:35:42 -07:00
SergeantPanda
1d41433ddc
Fix: Ensure absolute URL is used for stream in FloatingVideo component to resolve relative URLs in WorkerGlobalScope.
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) Has been cancelled
2026-03-31 10:35:17 -05:00
SergeantPanda
086cc74959
Bug Fix: M3U profile URL rewriting now uses the regex module instead of re across all URL transform code paths (url_utils.transform_url, core/views.py, vod_proxy/_transform_url, tasks.get_transformed_credentials, and the WebSocket live-preview handler in consumers.py). The regex module natively accepts JavaScript/PCRE-style named capture groups ((?<name>...)) without any conversion, eliminating the root cause of patterns that matched in the frontend live preview but failed on the backend with a re.error. As a further improvement, regex also supports variable-length lookbehind assertions (e.g. (?<=a+)), which re rejects with an error; patterns using these will now work correctly on the backend as well. Replace-pattern JS tokens are still normalised before calling regex.sub: $<name> → \g<name> and $1/$2/… → \1/\2/… (Python replacement syntax). Also fixed a bug in the WebSocket preview handler where a pattern error was incorrectly returning the search pattern string as the preview output instead of the original URL. ( Fixes #1005 )
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) Has been cancelled
2026-03-29 17:55:08 -05:00
SergeantPanda
9579248485
Enhancement: M3U Profile form (XC accounts): added a **Simple / Advanced** mode toggle for credential-based URL rewriting. In Simple mode users enter just a new username and password; the search and replace patterns are built automatically from the account's current credentials. In Advanced mode the full regex fields are shown as before. The selected mode is saved to custom_properties.xcMode and auto-detected on existing profiles (a profile whose search pattern matches the account's current username/password is recognised as Simple automatically). The Live Regex Demonstration panel is hidden in Simple mode.
2026-03-29 17:04:56 -05:00
SergeantPanda
698f9ff4c0
Enhancement: Add descriptions and placeholders to input fields for better user guidance
2026-03-29 16:33:08 -05:00
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
1d3cd5fd75
tests: Update floating video test.
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
7ece48bdf2
tests: Update frontend tests
2026-03-28 15:12:24 -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
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
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
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
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
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
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
...
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
SergeantPanda
6d694c8475
Bug Fix: Sort max stream column by total of streams from all profiles.
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