Commit graph

2212 commits

Author SHA1 Message Date
dekzter
2ca2a51e2e reverted fix so only updated values are modified 2025-12-06 09:36:50 -05:00
dekzter
4a23883d0c merged in upstream 2025-12-05 08:34:29 -05:00
SergeantPanda
0d177e44f8 changelog: Change updated change to bug fix instead of change. 2025-12-04 15:45:09 -06:00
SergeantPanda
3b34fb11ef Fix: Fixes bug where Updated column wouldn't update in the EPG table without a webui refresh. 2025-12-04 15:43:33 -06:00
SergeantPanda
6c8270d0e5 Enhancement: Add support for 'extracting' status and display additional progress information in EPGsTable 2025-12-04 15:28:21 -06:00
SergeantPanda
5693ee7f9e perf: optimize EPG program parsing and implement atomic database updates to reduce I/O overhead and prevent partial data visibility 2025-12-04 14:57:57 -06:00
SergeantPanda
256ac2f55a Enhancement: Clean up orphaned programs for unmapped EPG entries 2025-12-04 14:25:44 -06:00
SergeantPanda
2a8ba9125c perf: optimize EPG program parsing for multi-channel sources
Dramatically improve EPG refresh performance by parsing the XML file once
per source instead of once per channel. The new implementation:

- Pre-filters to only process EPG entries mapped to actual channels
- Parses the entire XML file in a single pass
- Uses O(1) set lookups to skip unmapped channel programmes
- Skips non-mapped channels entirely with minimal overhead

For EPG sources with many channels but few mapped (e.g., 10,000 channels
with 100 mapped to channels), this provides approximately:
- 99% reduction in file open operations
- 99% reduction in XML file scans
- Proportional reduction in CPU and I/O overhead

The parse_programs_for_tvg_id() function is retained for single-channel
use cases (e.g., when a new channel is mapped via signals).

Fixes inefficient repeated file parsing that was occurring with large
EPG sources.
2025-12-04 14:07:28 -06:00
SergeantPanda
2de6ac5da1 changelog: Add sort buttons for 'Group' and 'M3U' columns in Streams table 2025-12-03 17:31:16 -06:00
SergeantPanda
6a96b6b485
Merge pull request #707 from bobey6/main
Enhancement: Add sort by 'Group' or 'M3U' buttons to Streams
2025-12-03 17:27:42 -06:00
SergeantPanda
5fce83fb51 style: Adjust table header and input components for consistent width 2025-12-03 17:13:50 -06:00
SergeantPanda
81b6570366 Fix name not sorting. 2025-12-03 17:03:58 -06:00
SergeantPanda
042612c677 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/bobey6/707 2025-12-03 16:49:21 -06:00
SergeantPanda
f38fb36eba Skip builds during documentation updates. 2025-12-02 15:03:34 -06:00
SergeantPanda
5e1ae23c4e docs: Update CHANGELOG 2025-12-02 14:58:22 -06:00
SergeantPanda
53a50474ba
Merge pull request #701 from jordandalley/nginx-add-ipv6-bind 2025-12-02 14:49:49 -06:00
SergeantPanda
92ced69bfd
Merge pull request #698 from adrianmace/fix-ipv6-access-issues
fix: Allow all IPv6 CIDRs by default
2025-12-02 14:36:51 -06:00
GitHub Actions
5b193249a8 Release v0.13.0 2025-12-02 19:25:22 +00:00
SergeantPanda
0571c6801a
Merge pull request #709 from Dispatcharr:dev
Version 0.13.0
2025-12-02 13:24:28 -06:00
SergeantPanda
c57c7d64de Docs: Improved wording for DVR date/time formats. 2025-12-02 13:10:34 -06:00
SergeantPanda
0bf3499917 Add update_changelog script and integrate it into release workflow 2025-12-02 12:14:50 -06:00
SergeantPanda
3cb695279a Docs: Added issue references to changelog. 2025-12-02 11:49:32 -06:00
SergeantPanda
2c5fbaffb4 Update changelog with current unreleased changes. 2025-12-02 11:09:09 -06:00
SergeantPanda
85b5b18a57 Add CHANGELOG.md to document project updates and notable changes 2025-12-02 09:40:31 -06:00
SergeantPanda
be0409bfc2 Add referrorpolicy to Youtube iframe's for series and VOD modals. 2025-12-01 18:21:19 -06:00
SergeantPanda
bd3709463a Bug fix: Use UUID instead of ID for episode URL. This fixes links not working in the series modal. 2025-12-01 16:30:51 -06:00
root
cf08e54bd8 Fix sorting functionality for Group and M3U columns
- Add missing header properties to group and m3u columns
- Fix layout issues with sort buttons (proper flex layout, remove blocking onClick)
- Fix sorting state initialization (use boolean instead of empty string)
- Fix sorting comparison operators (use strict equality)
- Fix 3rd click behavior to return to default sort instead of clearing
- Map frontend column IDs to backend field names for proper API requests
2025-12-01 18:11:58 +00:00
GitHub Copilot
641dcfc21e Add sorting functionality to Group and M3U columns in Streams table
- Added m3u_account__name to backend ordering_fields in StreamViewSet
- Implemented field mapping in frontend to convert column IDs to backend field names
- Added sort buttons to both Group and M3U columns with proper icons
- Sort buttons show current sort state (ascending/descending/none)
- Maintains consistent UX with existing Name column sorting
2025-11-30 19:20:25 +00:00
3l3m3nt
43949c3ef4 Added IPv6 port bind to nginx.conf 2025-11-30 19:30:47 +13:00
Adrian Mace
6a9b5282cd
fix: allow all IPv6 CIDRs by default
This change ensures that by default, IPv6 clients can
connect to the service unless explicitly denied.

Fixes #593
2025-11-30 00:39:30 +11:00
SergeantPanda
b791190e3b Enhancement: Add scrollable modal support for M3UFilters and M3UProfiles components to improve usability on mobile devices. 2025-11-28 12:05:08 -06:00
SergeantPanda
1d23ed3685 Enhancement: Allow scrolling when edit m3u account modal is open on mobile. 2025-11-28 11:10:11 -06:00
SergeantPanda
2b58d7d46e Enhancement: Ensure "Uncategorized" categories and relations exist for VOD accounts. This improves content management for movies and series without assigned categories. Closes #627 2025-11-25 17:14:51 -06:00
SergeantPanda
fb084d013b Bug Fix: Filter out non-existent channel groups in M3UGroupFilter component. This fixes a bug where if a group was removed and you attempt to edit an m3u before the frontend was notified, the webui would go blank. 2025-11-25 14:51:41 -06:00
SergeantPanda
8754839c81 Enhancement: Add search icon to name headers for the channels and streams tables. Closes #686 2025-11-25 13:45:25 -06:00
SergeantPanda
13ad62d3e1 Bug Fix: Fix bug where previewing a stream would always select the default m3u profile regardless of utilization. 2025-11-25 13:07:49 -06:00
SergeantPanda
0997cd7a9d Enhancement: Improved minimum horizontal size in the stats page for improved usability on smaller displays. 2025-11-25 10:43:02 -06:00
SergeantPanda
962d5e965b Enhancement: Hide drop-downs for the system event viewer when in the collapsed state and on a smaller display. 2025-11-25 10:04:52 -06:00
SergeantPanda
7673cd0793 fix: Convert float channel numbers to integers for XC client compatibility
XC (Xtream Codes) clients require integer channel numbers and fail to parse
float values (e.g., 100.5). This change implements collision-free mapping
that converts floats to integers while preserving existing integer channel
numbers where possible.

Changes:
- Implemented two-pass collision detection algorithm that assigns integers
  to float channel numbers by incrementing until an unused number is found
- Applied mapping to all XC client interfaces: live streams API, EPG API,
  and XMLTV endpoint
- Detection: XC clients identified by authenticated user (user is not None)
- Regular M3U/EPG clients (user is None) continue to receive float channel
  numbers without modification

Example: Channels 100, 100.5, 100.9, 101 become 100, 101, 102, 103 for XC
clients, ensuring no duplicate channel numbers and full compatibility.
2025-11-22 09:01:46 -06:00
SergeantPanda
aae7b1bc14 Enhancement: Refactor xc_player_api to streamline action handling and ensure consistent responses for unknown actions 2025-11-21 16:49:45 -06:00
SergeantPanda
e7700b60f3 Enhancement: Add validation for EPG objects and payloads in updateEPG functions to prevent errors from invalid data 2025-11-21 15:10:54 -06:00
SergeantPanda
aa9fa09822 Fix: Improve date parsing logic in generate_custom_dummy_programs to handle empty or invalid inputs 2025-11-21 14:19:35 -06:00
SergeantPanda
c5f6d8ccf3 Enhancement: Update xc_player_api to return server_info for unknown actions to align with provider behavior 2025-11-21 10:57:35 -06:00
SergeantPanda
cb1953baf2 Enhancement: Implement comprehensive logging for user authentication events and network access restrictions 2025-11-21 10:50:48 -06:00
SergeantPanda
d94d615d76 Fix: Handle missing channel profiles in m3u and EPG generation with appropriate error logging 2025-11-20 18:54:32 -06:00
SergeantPanda
05f98e9275
Bug fix: Fixes DVR cards not respecting users preference for date and time formats.
UI now reflects date and time formats chosen by user
2025-11-20 18:22:43 -06:00
SergeantPanda
db276f6d32
Merge pull request #679 from Dispatcharr/event-viewer
Enhancement: Add system event logging and viewer with M3U/EPG endpoint caching
2025-11-20 17:44:29 -06:00
SergeantPanda
89a23164ff Enhancement: Add system event logging and viewer with M3U/EPG endpoint caching
System Event Logging:
- Add SystemEvent model with 15 event types tracking channel operations, client connections, M3U/EPG activities, and buffering events
- Log detailed metrics for M3U/EPG refresh operations (streams/programs created/updated/deleted)
- Track M3U/EPG downloads with client information (IP address, user agent, profile, channel count)
- Record channel lifecycle events (start, stop, reconnect) with stream and client details
- Monitor client connections/disconnections and buffering events with stream metadata

Event Viewer UI:
- Add SystemEvents component with real-time updates via WebSocket
- Implement pagination, filtering by event type, and configurable auto-refresh
- Display events with color-coded badges and type-specific icons
- Integrate event viewer into Stats page with modal display
- Add event management settings (retention period, refresh rate)

M3U/EPG Endpoint Optimizations:
- Implement content caching with 5-minute TTL to reduce duplicate processing
- Add client-based event deduplication (2-second window) using IP and user agent hashing
- Support HEAD requests for efficient preflight checks
- Cache streamed EPG responses while maintaining streaming behavior for first request
2025-11-20 17:41:06 -06:00
Biologisten
1f0fe00cbf UI now reflects date and time formats chosen by user 2025-11-20 17:34:03 +01:00
SergeantPanda
204a5a0c76
Merge pull request #659 from FiveBoroughs/fix/channel-stream-order-serialization
Fix: Preserve stream order in ChannelSerializer PATCH/PUT responses
2025-11-19 15:59:38 -06:00