Commit graph

2055 commits

Author SHA1 Message Date
SergeantPanda
91eaa64ebb Enhancement: Force a specific EPG for auto channel sync channels. 2025-10-18 13:43:49 -05:00
SergeantPanda
0a4c7cae25 Bug fix: Fix bug where channel logo would revert back to provider logo after a refresh (for auto channel sync channels) 2025-10-18 12:38:43 -05:00
SergeantPanda
ba695ebbe9
Merge pull request #568 from Dispatcharr/dummy-epgs
Enhancement: Add Custom Dummy EPG with Dynamic Pattern Matching
2025-10-18 12:25:37 -05:00
SergeantPanda
22fb0b3bdd Enhancement: Add Custom Dummy EPG with Dynamic Pattern Matching and Name Source Selection
This enhancement introduces a powerful custom dummy EPG system that allows users to generate EPG programs on-demand by parsing channel or stream names using configurable regex patterns.

Key Features:
- Custom Pattern Matching: Define regex patterns to extract information from channel/stream names (teams, leagues, times, dates, etc.)
- Flexible Name Source: Choose to parse either the channel name or a specific stream name (by index)
- Timezone-Aware Scheduling: Automatic DST handling using pytz timezone names (e.g., 'US/Eastern', 'Europe/London')
- Time Format Support: Parse both 12-hour (AM/PM) and 24-hour time formats
- Date Parsing: Extract dates from names with flexible month/day/year patterns
- Custom Templates: Format EPG titles and descriptions using captured groups with {placeholder} syntax
- Upcoming/Ended Customization: Define custom titles and descriptions for programs before and after scheduled events
- Live Preview: Test patterns and templates in real-time with sample input
- Smart Program Generation: Automatically creates "Upcoming" and "Ended" programs around scheduled events

Use Cases:
- Sports channels with event details in stream names (e.g., "NHL 01: Bruins VS Leafs @ 8:00PM ET")
- Movie channels with genre/title/year information
- Racing events with driver/track/series details
- Any scenario where EPG data is embedded in channel/stream naming conventions

Technical Implementation:
- Backend: Pattern matching engine with timezone conversion and program scheduling logic
- Frontend: Interactive form with validation, pattern testing, and visual group preview
- Name Source Options: Parse from channel name or selectable stream index (1-based)
- Fallback Behavior: Uses standard dummy EPG if patterns don't match
- Custom Properties: Stores all configuration in EPGSource.custom_properties JSON field

Configuration Options:
- Title Pattern: Extract primary information (required)
- Time Pattern: Extract hour/minute/AM-PM (optional)
- Date Pattern: Extract month/day/year (optional)
- Timezone: Event timezone with automatic DST support
- Program Duration: Length of generated programs in minutes
- Title Template: Format EPG title using captured groups
- Description Template: Format EPG description using captured groups
- Upcoming Title Template: Custom title for programs before event starts (optional)
- Upcoming Description Template: Custom description for programs before event starts (optional)
- Ended Title Template: Custom title for programs after event ends (optional)
- Ended Description Template: Custom description for programs after event ends (optional)
- Name Source: Channel name or stream name
- Stream Index: Which stream to use when parsing stream names (1, 2, 3, etc.)

Closes #293
2025-10-18 12:08:56 -05:00
SergeantPanda
ca8e9d0143 Enhancement: Add custom logo support for channel groups in Auto Sync Channels.
Closes #555
2025-10-17 10:03:21 -05:00
SergeantPanda
d3d7f3c733
Merge pull request #531 from jordandalley/fix-ipv6-validation
Fix: Add IPv6 CIDR validation in Settings
2025-10-16 18:04:36 -05:00
SergeantPanda
7744d7287b Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/jordandalley/531 2025-10-16 17:57:39 -05:00
SergeantPanda
ec21e8329d Enhancement: Increase time for a client to search for an available connection from 1.5 seconds to 3 seconds. This will help when clients are changing channels and release the old connection AFTER attempting to start the new connection. Closes #503
Bug Fix: Fix a bug where searching for an available stream could clear out stream locks for streams that it never acquired a lock for.
2025-10-16 17:38:23 -05:00
SergeantPanda
0031d55bab Bug Fix: Resizing columns in the channel table may cause the page to crash.
Fixes #516
2025-10-16 16:49:13 -05:00
SergeantPanda
b9a0aaa574 Re-allign tables and buttons after adjusting button layout. 2025-10-16 14:33:15 -05:00
SergeantPanda
9b2ebf169b Better database connection cleanup. 2025-10-16 14:22:19 -05:00
SergeantPanda
4df2f79bcf Bug fix: Fixes bug where if there were no channel profiles other than ALL, streamer and standard accounts could not stream any channels even if they had ALL profiles selected. 2025-10-14 15:03:42 -05:00
SergeantPanda
ed065f718d Enhancement: Implement caching for proxy settings to improve performance and reduce database load. Also, ensure database connections are closed after use in both config and stream manager. 2025-10-14 13:44:28 -05:00
SergeantPanda
90d065df80 Enhancement: Show "Saved Successfully" message when changing stream settings and DVR settings. Also only show "Saved Successfully" when the api actually returns a success. 2025-10-13 17:00:18 -05:00
SergeantPanda
87d2131789 Bug fix: Fixes saving settings returning error.
Fixes [Bug]: Error saving Stream Settings
Fixes #535
2025-10-13 16:45:22 -05:00
SergeantPanda
071561c570
Merge pull request #553 from Dispatcharr:Proxy-changes
Enhance HTTP streaming and timeout configurations
2025-10-12 09:46:21 -05:00
SergeantPanda
404d2f82a3 Switch HTTP streamer to a thread and pipe its output to a local pipe where the fetch chunk can access it the same way our transcode processes would be accessed. Simplifies the code. 2025-10-12 09:42:15 -05:00
SergeantPanda
74280baa85 Changed read timeout for http connection for the proxy server to 10 secounds to avoid unnecessary timeouts.
Improved try_next_stream to not fail if the returned stream is the same. It will now try a different stream.
Force a client to jump ahead in the buffer if they fall to far behind.
2025-10-11 19:45:21 -05:00
SergeantPanda
fa08216600 Enhancement: Add chunk timeout configuration in ConfigHelper. Improve StreamManager timeout handling for consistency. Only 1 heartbeat thread per worker should be started now. Timeout on proxy reduced from 60 seconds to 5. 2025-10-11 18:08:20 -05:00
SergeantPanda
fbd83e61b7 Enhancement: Added tooltips to stream table fields. Also removed unneeded imports for logos. 2025-10-11 10:54:11 -05:00
SergeantPanda
6acb0da933 Bug fix/Enhancement: Selecting many streams will no longer cause the stream table to create a new row for buttons. Also reordered buttons in the stream table slightly. 2025-10-11 10:46:52 -05:00
SergeantPanda
d32abecb25 Enhancement: Add confirmation dialog to stream delete functions. 2025-10-11 10:36:04 -05:00
SergeantPanda
d5f9ba7e5e Sort EPG output by channel number. 2025-10-10 17:55:51 -05:00
SergeantPanda
f58bc81c36 Enhancement: Optimize EPG program fetching by implementing chunked retrieval and explicit ordering to improve performance and reduce memory issues. 2025-10-10 17:52:05 -05:00
SergeantPanda
fefab4c4c6 Enhancement: Improve resource cleanup in ProxyServer and StreamManager classes to avoid "SystemError: (libev) error creating signal/async pipe: Too many open files" errors 2025-10-10 15:26:02 -05:00
SergeantPanda
9dc54fdcff Fix: Ensure channel_id and channel.uuid are converted to strings before processing. This fixes an issue where sending a stream switch event would fail if the event was sent from a non owning worker.
Fixes [Bug]: Manually switching active stream not working when using XC client.
Fixes #269
2025-10-09 19:10:38 -05:00
SergeantPanda
85fdfedabe
Merge pull request #543 from Dispatcharr/Auto-disable-new-categories 2025-10-09 15:32:57 -05:00
SergeantPanda
951af5f3fb Enhancement: Add auto-enable settings for new groups and categories in M3U and VOD components
Bug Fix: Remove orphaned categories for VOD and Series
Fixes #540
Closes #208
2025-10-09 15:28:37 -05:00
GitHub Actions
fe58594a36 Release v0.10.4 2025-10-08 00:55:25 +00:00
SergeantPanda
072201016c
Merge pull request #534 from Dispatcharr/dev
Dispatcharr – Version 0.10.4
2025-10-07 19:54:34 -05:00
SergeantPanda
8794156767 Enhancement: Only fetch playlists and channel profiles after successful m3u refresh not every m3u_refresh status update. This should reduce network traffice and efficiency.
This may fix #327
2025-10-07 10:02:26 -05:00
SergeantPanda
da245c409a Bug fix: Backend now notifies frontend when a new playlist is creating. This should fix where accounts will sometimes only show fetching groups after a new account is added. 2025-10-07 09:55:35 -05:00
SergeantPanda
171bb004c4 Set XC as default for new M3U accounts 2025-10-07 09:20:01 -05:00
SergeantPanda
99ad0ecb7b Bug fix: Fixes bug where adding multiple M3U accounts in a row would only modify the first M3U account that was added unless you refresh the web UI. 2025-10-07 09:18:43 -05:00
3l3m3nt
a959ba1748 Fix: Add IPv6 CIDR validation in Settings. Add ::0/0 as a default as well as 0.0.0.0/0 2025-10-07 20:02:47 +13:00
SergeantPanda
d1aa9fe441 Bug fix: Add logo URL validation to prevent PostgreSQL btree index errors during channel creation from stream 2025-10-06 21:22:16 -05:00
SergeantPanda
3326b9fbdc Bug fix: Add logo URL validation to prevent PostgreSQL btree index errors during bulk channel creation
Fixes #519
2025-10-06 21:11:53 -05:00
SergeantPanda
13874d64ad Bug fix: If no streams are found during an XC account refresh we were not releasing the task lock and we weren't processing vods.
Fixes #449
2025-10-06 20:04:22 -05:00
SergeantPanda
bc574c272c Bug fix: convert commas to decimals and verify float before saving vod/series to database.
Fixes #526
2025-10-06 19:45:43 -05:00
SergeantPanda
144a861142 Bug fix: When using direct urls in m3u output, use the correct stream based on the order for the channel.
Fixes #528
2025-10-06 18:18:05 -05:00
SergeantPanda
e01338f055 Enhancement: Properly track channel creation time and channel update times in the database. XC Get Live streams will now use this for the added field. 2025-10-06 18:07:51 -05:00
SergeantPanda
22493c2797 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into dev 2025-10-06 16:50:28 -05:00
SergeantPanda
a4a677a6fb Bug fix: Streamers with ALL assigned will now get all channels they have access to instead of All profiles. If there wasn't a profile other than default before, the streamer would not get any channels. 2025-10-06 16:50:17 -05:00
OkinawaBoss
8db9689999
Merge branch 'DVR-Update' into dev 2025-10-06 06:25:40 -07:00
Dispatcharr
dea6411e1c Time Zones
- Added time zone settings
2025-10-06 07:46:23 -05:00
SergeantPanda
a31feee311 Bug fix: Ensure distinct channel results in generate_m3u, generate_epg, and xc_get_live_streams functions. Fixes duplicate channels output for streamer profiles that were set to "All" 2025-10-05 19:32:40 -05:00
SergeantPanda
ad4143d035
Merge pull request #514 from Blarm1959/dev
Replaces #499 - debian_install.sh - Update installed packages, node and create missing folders
2025-10-05 18:54:56 -05:00
SergeantPanda
0406c868bc
Merge pull request #515 from EmeraldPi/set-name-logo 2025-10-05 18:51:30 -05:00
SergeantPanda
cfd235ba34
Merge pull request #457 from EmeraldPi/logo-batch-edit 2025-10-05 18:47:29 -05:00
SergeantPanda
cedd0d6f4d Finish merge 2025-10-05 18:44:26 -05:00