Commit graph

3942 commits

Author SHA1 Message Date
SergeantPanda
f84ef95d3c perf(serializers): optimize channel group counts with queryset annotation fallback 2026-05-02 11:50:13 -05:00
SergeantPanda
133a15496a perf: optimize ChannelGroup and Channel viewsets for efficient querying and serialization 2026-05-02 11:49:49 -05:00
Nick Sandstrom
62313c33a6 Updated for M3UProfile changes 2026-05-02 02:53:15 -07:00
Nick Sandstrom
7eeecd8701 Formatting changes 2026-05-02 02:14:12 -07:00
Nick Sandstrom
24a25821fc Refactored components 2026-05-02 02:14:12 -07:00
Nick Sandstrom
4310e164bf Updated ChannelGroup tests for util 2026-05-02 02:14:12 -07:00
Nick Sandstrom
e8f13b78c3 Added component tests 2026-05-02 02:14:12 -07:00
Nick Sandstrom
0ec60b04d2 Added util tests 2026-05-02 02:14:12 -07:00
Nick Sandstrom
113f4c0bde Extracted utils 2026-05-02 02:14:12 -07:00
None
0c0e802cf2 refactor(orphan-cleanup): store as custom_properties mode
Drop 3UAccount.auto_cleanup_unused_channels field and its migration (apps/m3u/0020). Replace with a 3-state string under M3UAccount.custom_properties.orphan_channel_cleanup: "always" (default), "preserve_customized", "never".

Move the UI from a checkbox on the M3U account form to a SegmentedControl at the top of LiveGroupFilter. Local state mirrors the prop for immediate click feedback; reverts on API error.

M3UAccountSerializer.update() now merges incoming custom_properties before layering the typed preference fields on top.

Add LiveGroupFilter.test.jsx (5 cases). Replace AutoCleanupToggleTests with OrphanCleanupModeTests (5 cases) for the new 3-state contract.
2026-05-01 23:24:40 -05:00
SergeantPanda
013fde4c55 changelog: Update changelog for dependency updates.
Some checks failed
Base Image Build / prepare (push) Has been cancelled
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
2026-05-01 21:09:13 -05:00
SergeantPanda
9e4bdf0a09 Update @xmldom/xmldom to version 0.8.13 and postcss to version 8.5.13 in package-lock.json 2026-05-01 21:08:56 -05:00
SergeantPanda
bb291dc028 Merge branch 'main' of https://github.com/Dispatcharr/Dispatcharr into dev 2026-05-01 20:56:39 -05:00
SergeantPanda
4ca8f5bcbb Update dependencies: psycopg2-binary to 2.9.12, sentence-transformers to 5.4.1, and lxml to 6.1.0
Some checks failed
Base Image Build / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
2026-05-01 20:56:05 -05:00
None
b2b108bfe5 rename Channel.user_hidden to Channel.hidden_from_output
The previous name suggested "hidden from a specific user account" rather than "hidden from downstream client output", which was the actual
behavior. The new name is unambiguous and matches the help_text language ("Exclude this channel from downstream client output").

Mechanical rename across the migration, model, serializer, signals, sync logic, output endpoints, frontend forms / tables / utils, tests, and CHANGELOG. 77 occurrences across 20 files.

No behavior change.
2026-05-01 19:44:16 -05:00
None
b9b3ded71c refactor(migrations): merge channels FR #1196 migrations into single 0037
Consolidates 0037_channeloverride_and_user_hidden, 0038_backfill_auto_created_by_null,
0039_channelgroupm3uaccount_auto_sync_channel_end, and 0040_channel_channel_number_nullable
into a single 0037_auto_sync_overhaul migration.

The merged migration runs operations in dependency-respecting order:
  1. AddField    Channel.user_hidden
  2. CreateModel ChannelOverride
  3. AddField    ChannelGroupM3UAccount.auto_sync_channel_end
  4. RunPython   backfill_auto_created_by_null
  5. AlterField  Channel.channel_number (nullable)
  6. RunPython   noop / reverse_backfill_channel_number_nulls

Also, update CHANGELOG.md and update migration references in test
2026-05-01 18:32:23 -05:00
Seth Van Niekerk
dec92ecd31
bump MAX_CUSTOM_PROPS_SIZE to 100KB 2026-05-01 19:15:45 -04:00
SergeantPanda
1da3ca26de Bug Fix: EPG program times shifted by host offset when /etc/localtime is mounted. (Fixes #651) 2026-05-01 17:54:25 -05:00
None
5e50dd8795 Update CHANGELOG.md 2026-05-01 15:25:39 -05:00
None
6fed444e43 feat: Auto-sync overhaul (FR #1196)
Per-field channel overrides for auto-synced channels, hide-from-output flag, range-bounded auto-numbering with re-pack, multi-stream channel safety, multi-provider shared-range merging, and an across-the-board move from per-row sync writes to bulk operations.

Migrations:

apps/channels:

0036_channeloverride_and_user_hidden,
0037_backfill_auto_created_by_null,
0038_channelgroupm3uaccount_auto_sync_channel_end,
0039_channel_channel_number_nullable

apps/m3u:
0020_m3uaccount_auto_cleanup_unused_channels

See CHANGELOG.md for the full commit log
2026-05-01 14:05:06 -05:00
Seth Van Niekerk
911644531b
add allowed_networks to ADMIN_ONLY_PROPS 2026-05-01 09:14:30 -04:00
Seth Van Niekerk
a01814069a
code review & pivot 2026-05-01 09:10:37 -04:00
SergeantPanda
37922a44ab Enhancement: Update user connection reporting in xc_get_info to reflect active connections and max connections based on user stream limits. (Fixes #990)
Some checks are pending
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
2026-04-30 20:33:30 -05:00
Seth Van Niekerk
0eb99381ac
Fix input description 2026-04-30 20:36:04 -04:00
Seth Van Niekerk
f9d452a1ba
allow plain addresses to be used 2026-04-30 20:17:22 -04:00
SergeantPanda
01e356c156 Enhancement: Include channelId in video playback parameters for better tracking 2026-04-30 18:02:40 -05:00
SergeantPanda
a80af16e6a Enhancement: Implement targeted stream-stats refresh for channel table using a new lightweight delta endpoint 2026-04-30 17:46:49 -05:00
SergeantPanda
022270efa0 changelog: Update changelog for recent changes. 2026-04-30 16:34:55 -05:00
SergeantPanda
8e858045d6 Enhancement: Throttle Redis stats writes in StreamGenerator to reduce traffic during high viewer load 2026-04-30 16:23:51 -05:00
SergeantPanda
a5ac0e78fc Enhancement: Optimize Redis writes in StreamBuffer by using pipelining for chunk storage and timestamp management 2026-04-30 16:22:36 -05:00
SergeantPanda
f2069caa62 Refactor: Simplify orphaned channel deletion and optimize M3UAccount fetching in send_m3u_update 2026-04-30 16:11:37 -05:00
SergeantPanda
2ef9ab0dcf Refactor: Remove unused stream deactivation and filtering methods from M3UAccount and M3UFilter classes 2026-04-30 16:01:55 -05:00
SergeantPanda
44b1b3b572 Enhancement: Optimize StreamsTable data fetching by reducing unnecessary requests and improving filter handling 2026-04-30 15:29:00 -05:00
SergeantPanda
db6755a009 Enhancement: Add database index on Stream.name to improve query performance and reduce disk spill during sorting (Fixes #1209) 2026-04-30 14:28:26 -05:00
SergeantPanda
3801dd7aab Security: Implement network access checks for HDHomeRun discovery endpoints and remove dangerouslySetInnerHTML from M3U Profile regex preview to prevent XSS vulnerabilities 2026-04-30 14:03:30 -05:00
SergeantPanda
dd911cc711 Refactor: Remove SSDP advertisement implementation and related code from HDHomeRun app
Some checks are pending
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
2026-04-30 12:23:37 -05:00
SergeantPanda
ddb03289b4 Enhancement: Improve plugin discovery process by adding a completion flag and refining in-memory registry handling 2026-04-30 10:33:41 -05:00
SergeantPanda
1e5298a8d3 Bug Fix: Implement Redis locks in run_recording and worker_ready to prevent duplicate ffmpeg processes and ensure single execution across workers 2026-04-30 10:15:03 -05:00
Seth Van Niekerk
8894d51877
restrict XC access per user by configurable IP allowlist 2026-04-28 16:35:32 -04:00
SergeantPanda
2650bee7e9
Merge pull request #1211 from Dispatcharr/watch-live-recordings
Some checks failed
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
Enhance DVR functionality with HLS support and improved queue management
2026-04-26 13:35:02 -05:00
SergeantPanda
c83e2be866 Enhancement: Refactor FloatingVideo component to improve JWT handling and ensure playback starts from the beginning of recordings 2026-04-26 13:28:13 -05:00
SergeantPanda
1eda68db7a Enhancement: Refactor run_recording to improve directory handling and remove unused cancellation check 2026-04-26 13:27:50 -05:00
SergeantPanda
a7b8e54747 Enhancement: Refactor HLS handling in RecordingViewSet and implement cleanup for empty parent directories 2026-04-26 13:27:32 -05:00
SergeantPanda
4f0312b44b changelog: Update changelog to document security improvements and new features for DVR recording playback 2026-04-26 12:33:58 -05:00
SergeantPanda
0cca34a2dc Enhancement: Implement user authorization for recording playback and inject JWT into HLS requests 2026-04-26 12:25:05 -05:00
SergeantPanda
8a89f43afd Enhancement: Ensure playback starts from the beginning of the seekable range for live and recorded streams 2026-04-26 11:54:01 -05:00
SergeantPanda
aa693f7a6a Enhancement: Integrate HLS.js for improved handling of live and recorded streams 2026-04-26 11:48:02 -05:00
SergeantPanda
914c612db9 Enhancement: Implement network access checks for streaming and update recording status handling during worker shutdown 2026-04-26 11:40:46 -05:00
SergeantPanda
76f2f2abc4 changelog: Update changelog for DVR enahncements 2026-04-26 10:21:40 -05:00
SergeantPanda
c956672587 Enhancement: Route long-running DVR recordings to a dedicated queue. 2026-04-26 09:34:20 -05:00