SergeantPanda
6e70753d1c
changelog: Fixed nginx startup failure due to group name mismatch in non-container deployments
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-01-22 14:25:33 -06:00
SergeantPanda
9959e3d353
Merge pull request #878 from s0len/fix/nginx-group-name-mismatch
...
Fix: nginx startup failure due to group name mismatch
2026-01-22 14:18:57 -06:00
SergeantPanda
3311a38aae
Bug fix: Fixed long IP addresses overlapping adjacent columns in stream connection card by adding truncation with tooltips displaying the full address. ( Fixes #712 )
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-01-21 16:55:25 -06:00
SergeantPanda
e79622f513
adjust arrow to be next to title always.
2026-01-21 16:44:31 -06:00
SergeantPanda
58d14664e3
Enhancement: Adjust layout and spacing in StreamConnectionCard for improved UI consistency and readability
2026-01-21 16:35:00 -06:00
Mattias Svensson
cbb8a52163
Fix: nginx startup failure due to group name mismatch
...
The script was creating a group named 'dispatch' (hardcoded) while
nginx.conf expected a group matching POSTGRES_USER (e.g., 'dispatcharr').
Changes:
- Use $POSTGRES_USER for group name instead of hardcoded 'dispatch'
- Make sed command more robust to match any existing user directive
This ensures the group name matches the user name, fixing the error:
"getgrnam("dispatcharr") failed in /etc/nginx/nginx.conf:1"
Fixes #877
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 08:04:49 +01:00
SergeantPanda
e43aba67e7
Enhancement: Refactor StreamConnectionCard layout for improved UI, separating channel name and current program display.
2026-01-20 19:35:19 -06:00
SergeantPanda
2fc2486c34
Enhancement: Added "Hide Stale" filter to quickly hide streams marked as stale.
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-01-20 18:51:13 -06:00
SergeantPanda
c9b454431c
Enhancement: Streams table UI: Added descriptive tooltips to top-toolbar buttons (Add to Channel, Create Channels, Filters, Create Stream, Delete) and to row action icons (Add to Channel, Create New Channel). Tooltips now use a 500ms open delay for consistent behavior with existing table header tooltips.
...
Streams table button labels: Renamed "Remove" to "Delete" and "Add Stream to Channel" to "Add to Channel" for clarity and consistency with other UI terminology.
2026-01-20 18:01:17 -06:00
SergeantPanda
8bc88112aa
Enhancement: Improved pill functionality and sizing.
2026-01-20 17:09:28 -06:00
SergeantPanda
0984ec9834
Enhancement: Add Progress bar showing elapsed and remaining time for currently playing programs
2026-01-20 16:31:41 -06:00
SergeantPanda
6b9e6b2d8a
tests: Fix frontent tests for new stats features.
2026-01-20 15:38:36 -06:00
SergeantPanda
091c1686e5
Enhancement: Added tooltip on filter pills showing all selected items in a vertical list (up to 10 items, with "+N more" indicator) Also fixed +N not working as intended.
2026-01-20 15:31:34 -06:00
SergeantPanda
c6f359c159
Enhancement: Refactor StreamsTable component to improve MultiSelect UI with tooltips and pill displays for selected groups and M3Us.
2026-01-20 14:56:32 -06:00
SergeantPanda
0e1db3e39c
Enhancement: - Stats page enhancements: Added "Now Playing" program information for active streams with smart polling that only fetches EPG data when programs are about to change (not on every stats refresh). Features include:
...
- Currently playing program title displayed with live broadcast indicator (green Radio icon)
- Expandable program descriptions via chevron button
- Efficient POST-based API endpoint (`/api/epg/current-programs/`) supporting batch channel queries or fetching all channels
- Smart scheduling that fetches new program data 5 seconds after current program ends
- Only polls when active channel list changes, not on stats refresh
- Channel preview button: Added preview functionality to active stream cards on stats page
2026-01-20 13:37:40 -06:00
SergeantPanda
3a5a676097
changelog: Update changelog to reference github issue for streamlink.
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-01-19 21:28:22 -06:00
SergeantPanda
3646ec5e46
changelog: Update changelog to reflect streamlink update.
2026-01-19 21:13:02 -06:00
SergeantPanda
2c5cc636a7
Security: - Updated react-router from 7.11.0 to 7.12.0 to address two security vulnerabilities:
...
- **High**: Open Redirect XSS vulnerability in Action/Server Action Request Processing ([GHSA-h5cw-625j-3rxh](https://github.com/advisories/GHSA-h5cw-625j-3rxh ), [GHSA-2w69-qvjg-hvjx](https://github.com/advisories/GHSA-2w69-qvjg-hvjx ))
- **Moderate**: SSR XSS vulnerability in ScrollRestoration component ([GHSA-8v8x-cx79-35w7](https://github.com/advisories/GHSA-8v8x-cx79-35w7 ))
- Updated react-router-dom from 7.11.0 to 7.12.0 (dependency of react-router)
2026-01-19 21:03:18 -06:00
SergeantPanda
7fc2cbc45b
tests: Fixed frontend tests failing after datetime utility changes.
2026-01-19 20:16:06 -06:00
SergeantPanda
cbcf2ac3c2
Bug fix: - Fixed date/time formatting across all tables to respect user's UI preferences (time format and date format) set in Settings page:
...
- Stream connection card "Connected" column
- VOD connection card "Connection Start Time" column
- M3U table "Updated" column
- EPG table "Updated" column
- Users table "Last Login" and "Date Joined" columns
- All components now use centralized `format()` helper from dateTimeUtils for consistency
- Removed unused imports from table components for cleaner code
2026-01-19 20:07:31 -06:00
SergeantPanda
0b83137ac6
Enhancement: DVR recording remux fallback strategy: Implemented two-stage TS→MP4→MKV fallback when direct TS→MKV conversion fails due to timestamp issues. On remux failure, system now attempts TS→MP4 conversion (MP4 container handles broken timestamps better) followed by MP4→MKV conversion, automatically recovering from provider timestamp corruption. Failed conversions now properly clean up partial files and preserve source TS for manual recovery.
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-01-19 18:56:23 -06:00
SergeantPanda
cf323f15a5
changelog: Update changelog for dev build script.
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-01-18 17:52:27 -06:00
SergeantPanda
8012f372cd
Merge pull request #865 from JeffreyBytes:fix/build-dev-logic
...
fix: stabilize build-dev paths and push behavior
2026-01-18 17:50:28 -06:00
SergeantPanda
235467a1ac
changelog: Update changelog for logo caching.
2026-01-18 17:31:20 -06:00
SergeantPanda
8b15e6e52f
Merge pull request #871 from Dispatcharr/main
...
Merge main into dev
2026-01-18 17:29:24 -06:00
SergeantPanda
8521df94ad
Merge pull request #868 from DawtCom:main
...
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Move caching to client to remove burden on dispatch server
2026-01-18 17:26:49 -06:00
SergeantPanda
fec868ac30
Merge pull request #867 from JeffreyBytes/hotfix/streamtable-filter-bug
...
Fix streams requery to respect table filters
2026-01-18 17:01:29 -06:00
SergeantPanda
39bf57bf40
Bug Fix: Fixed TypeError on streams table load after container restart: Added robust data validation and type coercion to handle malformed filter options during container startup. The streams table MultiSelect components now safely convert group names to strings and filter out null/undefined values, preventing "right-hand side of 'in' should be an object, got number" errors when the backend hasn't fully initialized. API error handling returns safe defaults.
2026-01-18 16:24:26 -06:00
SergeantPanda
620d65d1de
Bug Fix: Fixed XtreamCodes API crash when channels have NULL channel_group: The player_api.php endpoint (xc_get_live_streams) now gracefully handles channels without an assigned channel_group by dynamically looking up and assigning them to "Default Group" instead of crashing with AttributeError. Additionally, the Channel serializer now auto-assigns new channels to "Default Group" when channel_group_id is omitted during creation, preventing future NULL channel_group issues.
2026-01-18 15:52:50 -06:00
DawtCom
c970cfcf9a
Move caching to client to remove burden on dispatch server
2026-01-18 00:49:17 -06:00
Jeffrey C
4f9088c6fc
Fix: requery streams using table filters
2026-01-17 21:15:02 -06:00
SergeantPanda
fe60c4f3bc
Enhancement: Update frontend tests workflow to ensure proper triggering on push and pull request events only when frontend code changes.
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Has been cancelled
2026-01-17 18:30:13 -06:00
SergeantPanda
a772f892bd
changelog: Update changelog for recent stream table PR.
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
2026-01-17 18:26:33 -06:00
SergeantPanda
a37659eb82
Merge pull request #846 from JeffreyBytes:feature/667
...
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
feat: Add unassociated streams filter; fix: StreamsTable Group column header overflow
2026-01-17 18:07:50 -06:00
SergeantPanda
0a340e51e2
Enhancement: Add playlist and channel group fetching logic to StreamsTable for improved data management
2026-01-17 18:05:57 -06:00
SergeantPanda
f810142493
Enhancement: Optimize channel filtering in StreamViewSet using Count annotation for improved performance on large datasets.
2026-01-17 17:55:12 -06:00
SergeantPanda
1afb15fb63
Revert change to header sizing.
2026-01-17 16:15:11 -06:00
SergeantPanda
d33d047a94
Enhancement: - Mature content filtering support:
...
- Added `is_adult` boolean field to both Stream and Channel models with database indexing for efficient filtering and sorting
- Automatically populated during M3U/XC refresh operations by extracting `is_adult` value from provider data
- Type-safe conversion supporting both integer (0/1) and string ("0"/"1") formats from different providers
- UI controls in channel edit form (Switch with tooltip) and bulk edit form (Select dropdown) for easy management
- XtreamCodes API support with proper integer formatting (0/1) in live stream responses
- Automatic propagation from streams to channels during both single and bulk channel creation operations
- Included in serializers for full API support
- User-level content filtering: Non-admin users can opt to hide mature content channels across all interfaces (web UI, M3U playlists, EPG data, XtreamCodes API) via "Hide Mature Content" toggle in user settings (stored in custom_properties, admin users always see all content)
2026-01-17 15:00:28 -06:00
Jeffrey C
91d73a1fe8
fix: stabilize build-dev paths and push behavior
2026-01-17 15:00:09 -06:00
Jeffrey C
c46e258d3d
Merge branch 'upstream/dev' into feature/667
...
Resolved conflicts in StreamsTable.jsx:
- Kept API.queryStreamsTable() for automatic store updates
- Preserved unassociated streams filter functionality
- Maintained Group column overflow fix (no sorting icon)
- Added upstream's improved M3U filter options and UX
- Integrated upstream's filter validation logic
- Fixed CSS to allow custom-multiselect headers to expand vertically"
2026-01-17 10:50:30 -06:00
SergeantPanda
19d25f37c6
Bug Fix: Fixed VOD logo cleanup button count: The "Cleanup Unused" button now displays the total count of all unused logos across all pages instead of only counting unused logos on the current page.
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-01-16 14:03:48 -06:00
SergeantPanda
d80da75795
Bug Fix: Changed logo comparisons to use logo_id (raw FK integer) instead of logo (related object) to avoid Django's lazy loading, which triggers a database fetch that fails if the referenced logo no longer exists.
2026-01-16 13:50:43 -06:00
SergeantPanda
548098b063
Bug Fix: Fixed VOD refresh failures caused by orphaned logo references: Added validation to detect and clear logo foreign key references when the logo no longer exists in the database, preventing "VODLogo matching query does not exist" errors. Also improved logo assignment logic to properly handle cases where logo URLs exist but logo creation fails, ensuring VOD content updates successfully even when logos are deleted or unavailable.
2026-01-16 11:11:56 -06:00
SergeantPanda
9963ae3acf
Bug fix: Fixed channel profile filtering to properly restrict content based on assigned channel profiles for all non-admin users (user_level < 10) instead of only streamers (user_level == 0). This corrects the XtreamCodes API endpoints (get_live_categories and get_live_streams) along with M3U and EPG generation, ensuring standard users (level 1) are properly restricted by their assigned channel profiles. Previously, "Standard" users with channel profiles assigned would see all channels instead of only those in their assigned 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-01-16 08:50:39 -06:00
SergeantPanda
f0267508ff
Enhancement: Cascading filters for streams table: Improved filter usability with hierarchical M3U and Group dropdowns. M3U acts as the parent filter showing only active/enabled accounts, while Group options dynamically update to display only groups available in the selected M3U(s). Only enabled M3U's are displayed. ( Closes #647 )
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-01-15 16:26:06 -06:00
SergeantPanda
0f29cc6e66
fix: Update timezone settings structure in UiSettingsFormUtils tests
2026-01-15 13:52:33 -06:00
SergeantPanda
82172e9615
Merge pull request #858 from Dispatcharr/table-refactor
...
feat: Implement table header pin toggle and refactor table preferences management (Closes #663 )
2026-01-15 13:44:41 -06:00
SergeantPanda
10169b96c0
feat: Implement table header pin toggle and refactor table preferences management ( Closes #663 )
...
- Added functionality to pin/unpin table headers, maintaining visibility while scrolling. This feature is accessible via the channel table menu and UI Settings page, with persistence across sessions.
- Refactored table preferences management by migrating `table-size` preference to a centralized `useTablePreferences` hook, enhancing maintainability and consistency across table components.
2026-01-15 13:40:13 -06:00
Jeffrey C
3ddc6d196b
Fix: restore StreamsTable loading feedback
2026-01-15 10:23:20 -06:00
SergeantPanda
7cf7aecdf2
Merge pull request #857 from Dispatcharr/dev
...
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
Dev
2026-01-15 09:05:06 -06:00