Commit graph

53 commits

Author SHA1 Message Date
SergeantPanda
edfa497203 Enhancement: Channel Profile membership control for manual channel creation and bulk operations: Extended the existing channel_profile_ids parameter from POST /api/channels/from-stream/ to also support POST /api/channels/ (manual creation) and bulk creation tasks with the same flexible semantics:
- Omitted parameter (default): Channels are added to ALL profiles (preserves backward compatibility)
  - Empty array `[]`: Channels are added to NO profiles
  - Sentinel value `[0]`: Channels are added to ALL profiles (explicit)
  - Specific IDs `[1, 2, ...]`: Channels are added only to the specified profiles
  This allows API consumers to control profile membership across all channel creation methods without requiring all channels to be added to every profile by default.
2026-01-11 17:31:15 -06:00
SergeantPanda
759569b871 Enhancement: Add a priority field to EPGSource and prefer higher-priority sources when matching channels. Also ignore EPG sources where is_active is false during matching, and update serializers/forms/frontend accordingly.(Closes #603, #672) 2025-12-05 09:54:11 -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
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
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
d1ac5b11e5 Add EPG TVG-ID setting functionality
- Implemented API endpoint to set channel TVG-IDs from EPG data.
- Created Celery task to handle TVG-ID updates for multiple channels.
- Added frontend methods to initiate TVG-ID setting from EPG for both single and batch channel forms.
- Enhanced notifications for task status updates.
2025-10-04 15:20:35 -05:00
SergeantPanda
c73271c617 Bug Fix: Sort order while bulk creating channels will now be in the order they were selected in not reverse order. 2025-10-02 13:23:24 -05:00
SergeantPanda
23f397c805 Enhancement: Add exact Gracenote ID matching to EPG channel mapping 2025-09-25 11:51:10 -05:00
Dispatcharr
6536f35dc0 FIxed bug
Fixed bug that stopped stream from ending
2025-09-19 19:47:59 -05:00
Dispatcharr
eee4ab0725 Update for recurring rules 2025-09-19 16:21:28 -05:00
Dispatcharr
424a450654 DVR Features and bug fixes
Added ability to use custom comskip.ini
Added series recording without reliance on EPG
Fixed comskip bug
Fixed timezone mismatch when scheduling DVR recordings

No migrations completed yet
2025-09-18 10:23:16 -05:00
SergeantPanda
d2d1984797 Switch bulk epg name and logo to backend celery tasks for efficiency and scrape epg channel logo during epg scanning. 2025-09-16 17:17:07 -05:00
SergeantPanda
a846b09ad3 Minor formatting adjustment. 2025-09-16 14:39:04 -05:00
SergeantPanda
60e378b1ce Add support for matching selected channels with EPG data
- Updated API to accept optional channel IDs for EPG matching.
- Enhanced match_epg method to process only specified channels if provided.
- Implemented new task for matching selected channels in the backend.
- Updated frontend to trigger EPG matching for selected channels with notifications.
2025-09-16 14:38:16 -05:00
SergeantPanda
20685b8344 Lower regional bonus. Remove epg_match script. 2025-09-16 14:27:07 -05:00
SergeantPanda
c7235f66ba Use stricter matching for bulk matching. 2025-09-16 14:12:45 -05:00
SergeantPanda
6384f4f56f Add progress notifications for EPG matching process 2025-09-16 13:47:59 -05:00
SergeantPanda
d6bb9e40b2 Implement memory cleanup for ML models after channel matching operations 2025-09-16 13:15:32 -05:00
SergeantPanda
c55dcfd26a Remove unnecessary checking of cache directories. Lets sentence transformers handle it. 2025-09-16 13:01:43 -05:00
SergeantPanda
fedc98f848 Removed unneeded debug logging. 2025-09-16 12:54:19 -05:00
SergeantPanda
d2085d57f8 Add sentence transformers to new matching function. 2025-09-16 12:43:21 -05:00
SergeantPanda
f6be6bc3a9 Don't use matching script 2025-09-16 09:18:41 -05:00
SergeantPanda
f1739f2394 Add EPG auto-match functionality for specific channels and update UI 2025-09-16 08:55:10 -05:00
SergeantPanda
4886426ea0 New feature: Allow specifying channel number during channel creation.
Closes #377
Closes #169 [Feature]: Starting channel number/continue auto numbering from channel number X (user defined)
2025-09-14 12:46:30 -05:00
SergeantPanda
0411fe003a Add ability to specify starting channel numbers to the api. 2025-09-14 12:30:24 -05:00
SergeantPanda
cf7ea09341 Implement asynchronous bulk channel creation from stream IDs with WebSocket progress updates 2025-09-13 19:59:43 -05:00
SergeantPanda
41d7066d6e Fix incorrect paths for DVR and Plugins. 2025-09-13 11:49:04 -05:00
Dispatcharr
c85316b912 Added DVR offset
Added pre/post offset for DVR recordings.
2025-09-11 20:58:42 -05:00
Dispatcharr
f652d2b233 Comskip Update 2025-09-04 13:45:25 -05:00
Dispatcharr
41e32bc08a DVR Updates
Added fallback settings.
Added subtitles to cards.
Add data volume mount to Docker container.
2025-09-04 08:22:13 -05:00
Dispatcharr
00cc83882a DVR update 2025-09-03 21:35:45 -05:00
xham3
5360f38b14 Fix process communicate() deadlock when epg match data overfill subprocess.PIPE buffer. 2025-06-12 15:34:24 -07:00
SergeantPanda
56be7b7194 Added missing dc dependency for auto-match. 2025-05-20 19:17:01 -05:00
SergeantPanda
7c809931d7 Rewored celery memory cleanup logic. 2025-05-18 20:57:37 -05:00
SergeantPanda
1174e2e0c7 EPG processing enhancements. Celery memory management. 2025-05-17 16:42:37 -05:00
SergeantPanda
418bf01449 Notify user of how many matches auto-match found.
Add batch EPG association endpoint and improve EPG matching logic

- Implemented a new API endpoint to associate multiple channels with EPG data in a single request.
- Enhanced the EPG matching process to normalize TVG IDs and log relevant information.
- Updated frontend to handle batch EPG associations efficiently, falling back to legacy methods when necessary.
2025-04-29 18:13:42 -05:00
Dispatcharr
b903a226b0 Updated Tasks.py
Fix EPG matching bulk update by converting dict results to Channel model instances
2025-04-10 13:55:00 -05:00
dekzter
5570562960 epg match run externally to keep memory usage low 2025-04-07 11:57:00 -04:00
dekzter
b3551fe32f fixed potential timezone issue 2025-04-06 19:14:32 -04:00
dekzter
ecc96f8b69 memory optimization, m3u processing, re-added group filtering before m3u ingestion 2025-04-06 11:36:16 -04:00
dekzter
cdf9df03bd lazy-load sentencetransformer instance 2025-04-05 20:05:45 -04:00
dekzter
00f6e7c1cd first run at recordings, among other things 2025-04-05 18:59:15 -04:00
dekzter
3ad1a1b4dc fixed exact epg matching on bulk channel creation 2025-04-04 10:49:12 -04:00
dekzter
c5e0de5d48 logos, channel numbers, websocket regex test so we can properly test against python regex and not javascript 2025-04-02 16:27:28 -04:00
dekzter
17a8e94f64 django beat, refresh intervals for epg and m3u 2025-03-30 11:53:26 -04:00
dekzter
fa3af5ed6d refresh channel programs on epg change, fixed some notification bugs 2025-03-28 15:24:25 -04:00
dekzter
16138592b6 epg processing optimizations, websocket success notifications, added allotment to channels page for resizing 2025-03-26 16:52:47 -04:00
dekzter
de5063d20b epg refactor, new relations and matching 2025-03-26 13:28:03 -04:00
Dispatcharr
a6f2ae5d9f EPG Processing
Updated the way EPG files are processed. Uses less resources.
2025-03-19 12:49:38 -05:00