Commit graph

2078 commits

Author SHA1 Message Date
GitHub Actions
dd5f0d0753 Release v0.11.0 2025-10-22 01:16:18 +00:00
SergeantPanda
d5de69cd6a
Merge pull request #574 from Dispatcharr/dev
Version 0.11.0
2025-10-21 19:55:15 -05:00
SergeantPanda
119b222428 Enhancement: Allow setting both Celery and UWSGI nice levels. Default nice levels are UWSGI=0, Celery=5. Added documentation to the compose files on how to use it. Using nice levels for UWSGI allows us to have streaming run at a high priority. 2025-10-21 10:11:53 -05:00
SergeantPanda
92d499a274 Enhancement: Switch regex compilation from re to regex module
Use the 'regex' package instead of Python's standard 're' module for pattern
compilation in custom dummy EPG generation. This enables variable-width
lookbehind support, matching JavaScript regex behavior and removing the
fixed-width limitation of the standard library.

This fixes issues where patterns like (?<=\d{1,2}...) would fail with
"look-behind requires fixed-width pattern" errors.
2025-10-19 19:39:53 -05:00
SergeantPanda
97c24dbea3 Bug Fix: Fix inconsistency with how 24 hour time is displayed between frontend and backend. If minutes were > 0 and using 24 hour time, hours 0-9 would show as single digit but if minute was 0 they would show double digit. 2025-10-19 17:16:49 -05:00
SergeantPanda
4b74673795 Bug fix: Use search instead of match for checking if the title matches the title_match regex for custom dummy. 2025-10-19 17:06:44 -05:00
SergeantPanda
6a85475402 Enhancement: Adds ability to specify categories (comma separted) as well as include date and live tags in custom epg dummy output. 2025-10-19 10:06:48 -05:00
SergeantPanda
6e0e646938 Enhancement: EPG Dummy - Convert time based on timezone for preview. 2025-10-19 09:00:13 -05:00
SergeantPanda
937c20c082 Enhancement: Add upcoming and ended previews for custom dummy epg. 2025-10-19 08:53:49 -05:00
SergeantPanda
75215cfdc6 Enhancement: Convert <time> and <time24> in the frontend. 2025-10-19 08:42:27 -05:00
SergeantPanda
163b1dd7cf Move buttons to the right side and correctly load in output timezone for custom dummy epg. 2025-10-18 21:19:54 -05:00
SergeantPanda
603c9f9269 Enhancement: Added ability to specify output timezone for custom epg dummy. 2025-10-18 21:12:20 -05:00
SergeantPanda
fe540045fc Enhancement: Add a {time} and {time24} output for better output formatting of the time. 2025-10-18 21:06:27 -05:00
SergeantPanda
dee672287b Bug fix: Fixes bug where if minute was not specified matching would fail for custom dummy. 2025-10-18 20:50:56 -05:00
SergeantPanda
c21ea5ecbe Bug Fix: Use event timezone for date calculation in custom dummy channels
Previously used UTC date which caused events to be scheduled a day late when current UTC time had crossed midnight but the event timezone hadn't.
2025-10-18 20:46:06 -05:00
SergeantPanda
d456051eb3 Verify /app also has the correct permissions. 2025-10-18 19:52:22 -05:00
SergeantPanda
9b07f013a4 Refactor directory creation and ownership management in init script for clarity and maintainability. Will only chown recursively if we are not the owner. This should help improve boot speeds. 2025-10-18 19:33:23 -05:00
SergeantPanda
7cbdb61f2c Enhancement: Ensure root's .bashrc sources Dispatcharr profile scripts for interactive non-login shells. This will help when running root commands from the container cli 2025-10-18 19:08:02 -05:00
SergeantPanda
8494f615d0 Bug fix: Use correct name if stream name is supposed to be used to build dummy. 2025-10-18 17:29:44 -05:00
SergeantPanda
0d987aae99 Enhancement: If a stream profile is set for a custom stream, when previewing the stream Dispatcharr will now use the assigned stream profile. Fixes #186 2025-10-18 16:24:47 -05:00
SergeantPanda
81276bfc16 Bug fix: Current settings for Stream Profile and Group were not displayed when opening the edit form for custom streams 2025-10-18 16:04:55 -05:00
SergeantPanda
1a541bd133 Bug fix: Unable to preview custom streams. 2025-10-18 15:52:48 -05:00
SergeantPanda
fa2a90fab4 Bug fix: Remove bottom horizontal scroll bar from TV Guide, it was not synced with the guide and served no purpose. 2025-10-18 14:07:34 -05:00
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