Commit graph

24 commits

Author SHA1 Message Date
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
Dispatcharr
c85316b912 Added DVR offset
Added pre/post offset for DVR recordings.
2025-09-11 20:58:42 -05:00
SergeantPanda
1c7fa21b86 Add rehash streams endpoint and UI integration for triggering stream rehashing 2025-07-11 14:11:41 -05:00
SergeantPanda
9757f6a48d Fix key error with react. 2025-06-15 11:28:57 -05:00
SergeantPanda
e80d30689c Settings load correctly during first open. 2025-06-14 13:42:01 -05:00
SergeantPanda
c4a6b1469e Change to JSON settings 2025-06-13 14:36:08 -05:00
SergeantPanda
a99a6431b2 More merge fixes. 2025-06-12 10:45:57 -05:00
SergeantPanda
ada1d51aaa Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into proxy-settings 2025-06-12 10:45:44 -05:00
dekzter
30b2a19eb0 merged in main 2025-06-11 08:38:00 -04:00
dekzter
788667b687 better error checking, only warn for UI blocking 2025-06-11 08:24:32 -04:00
SergeantPanda
7812a410b3 Allow users to change proxy settings. 2025-06-10 21:17:30 -05:00
dekzter
82f35d2aef check and warn before saving a network access setting that could block current client access 2025-06-10 08:46:36 -04:00
Marlon Alkan
18a6c428c1
core: api_views.py: add fallback IP geo provider
Fixes #127

- add ip-api.com as fallback geo provider
- fix silent JSONException by parsing only if HTTP 200 OK
- add logger and log error if IP geo can't be fetched
2025-06-08 19:28:56 +02:00
dekzter
3f445607e0 looooots of updates for user-management, initial commit of access control 2025-05-31 18:01:46 -04:00
dekzter
74d58515d0 user management, user levels, user level channel access 2025-05-18 11:19:34 -04:00
dekzter
1a0d065eca ui settings with configurable table size, added setting to set / rehash stream hashes 2025-05-03 08:01:22 -04:00
SergeantPanda
c049e48c08 Use timestamp instead of build number increase. 2025-04-27 17:46:27 -05:00
dekzter
663ea2c5b9 soooo many changes.... 2025-04-11 13:22:08 -04:00
SergeantPanda
22be164925 Add version endpoint and fetch version information in Sidebar component and add api routes. 2025-04-11 07:25:01 -05:00
SergeantPanda
c223914402 Add version to navigation bar. 2025-04-10 17:14:41 -05:00
Dispatcharr
fb9a3ca65b Added country flags
Added Country codes next to public IP
2025-03-06 18:58:55 -06:00
dekzter
412b799d7b new environment settings endpoint, added added in support for conditionally building video URL since we don't want dev env to proxy the stream through the react server 2025-03-05 11:08:04 -05:00
kappa118
c42f2d048a core settings update capabilities 2025-03-01 11:19:15 -05:00
Dispatcharr
1fb7a0c9eb Alpha v3
Added user agents
Added Stream Profiles
Added new API calls
2025-02-21 15:31:59 -06:00