Commit graph

3489 commits

Author SHA1 Message Date
SergeantPanda
d8ead97049 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/nemesbak/1285 2026-05-29 19:24:35 -05:00
SergeantPanda
7cbc71f7fb refactor(vod): Apply prettier. 2026-05-29 19:23:51 -05:00
SergeantPanda
36879c10f2 fix(vod): validate relation_id and handle loading state in VODModal 2026-05-29 19:23:13 -05:00
SergeantPanda
b19184d7aa changelog: Update changelog for stream profile bugfix. 2026-05-29 17:12:38 -05:00
SergeantPanda
e45e4fc86f
Merge pull request #1288 from nemesbak:fix/stream-profile-override-ignored
fix(channels): honor per-channel stream profile override during streaming
2026-05-29 17:08:40 -05:00
SergeantPanda
b63650799a docs: Restored todo as this did not resolve it. Cleaned up overly verbose comment. 2026-05-29 17:07:55 -05:00
SergeantPanda
a164194c61 changelog: Update changelog for web player pr. 2026-05-29 14:58:34 -05:00
SergeantPanda
87accc2f63
Merge pull request #1305 from nemesbak:fix/output-profile-guide-player
fix(frontend): apply web-player output profile in TV Guide and all live stream calls
2026-05-29 14:53:49 -05:00
nemes
c717df50f9 fix(frontend): update getShowVideoUrl tests to expect output_format and output_profile 2026-05-29 17:32:24 +02:00
nemes
98d7acd3c0 fix(frontend): apply output_profile and output_format in all live stream player calls
getShowVideoUrl was returning a raw proxy URL without calling
buildLiveStreamUrl, so the web-player output profile preference stored in
localStorage was ignored when starting a live stream from the TV Guide,
Program Detail modal, DVR page, Recording Details modal, and Recording Card.

Fixes #1304
2026-05-29 17:32:22 +02:00
SergeantPanda
e04afff04a
Merge pull request #1274 from nick4810:tests/frontend-unit-tests
Tests/frontend unit tests
2026-05-29 09:35:00 -05:00
nemes
17ce532326 fix(frontend): update getShowVideoUrl tests to verify output_format and output_profile 2026-05-29 13:23:22 +02:00
nemes
14c54b60f1 fix(frontend): apply output_profile and output_format in all live stream player calls
getShowVideoUrl was building raw proxy URLs without calling buildLiveStreamUrl,
so the web-player output profile preference stored in localStorage was silently
ignored when starting a live stream from the TV Guide, Program Detail modal,
DVR page, Recording Details modal, and Recording Card.

Fix: import buildLiveStreamUrl in RecordingCardUtils and call it at the end of
getShowVideoUrl so every caller inherits the correct output_format=mpegts
param and any configured output_profile automatically.

Fixes #1304
2026-05-29 13:20:35 +02:00
Nick Sandstrom
714f1b5cf5 Updated rendering behavior 2026-05-28 18:46:57 -07:00
Nick Sandstrom
5eeca5fc94 Fixed test behavior 2026-05-28 18:46:57 -07:00
Nick Sandstrom
cc59718997 Small cleanup 2026-05-28 18:46:57 -07:00
SergeantPanda
cc450f0a97
Merge pull request #1272 from JCBird1012/fix/db-connection-pool-exhaustion
perf: replace per-request DB connections with geventpool
2026-05-28 20:01:13 -05:00
SergeantPanda
f6acbb0c98 changelog: Update changelog for connection pooling pr. 2026-05-28 19:42:06 -05:00
SergeantPanda
f5ed272807 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/JCBird1012/1272 2026-05-28 19:32:10 -05:00
SergeantPanda
a2656184e8 perf/fix: migrate DB driver to psycopg3, fix pool settings
- Switch engine to postgresql_psycopg3 (PR had wrong engine name,
  and we're migrating from psycopg2 to psycopg3 as part of this work)
- Set CONN_MAX_AGE=0 (required by geventpool; PR had None)
- Reduce MAX_CONNS 20→8, REUSE_CONNS 10→3 to avoid exhausting
  pg max_connections across 4 uWSGI workers + Celery
- Add pool=False to explicitly disable Django's native psycopg3 pool
2026-05-28 19:31:50 -05:00
SergeantPanda
80b72d8cfa Enhancement: Update psycopg2 to 3. 2026-05-28 19:27:52 -05:00
SergeantPanda
d6f837238f Enhancement: Update psycopg from 2 to 3, remove psycogreen as it's no longer needed with psycopg3. 2026-05-28 19:27:11 -05:00
SergeantPanda
2f31a17be3 changelog: Update changelog for plugin page pr. 2026-05-28 15:39:46 -05:00
SergeantPanda
6d37b44e75
Merge pull request #1265 from sv-dispatcharr/fix/plugin-repo-tweaks 2026-05-28 15:26:38 -05:00
SergeantPanda
1d2ca3c436
Merge pull request #1300 from sv-dispatcharr:repo/compliance-checks
Introduce In-House Template & Compliance Actions
2026-05-28 15:06:06 -05:00
SergeantPanda
1cfd26227b
Merge pull request #1271 from kensac:docker-multistage-base
docker: split base image into builder and runtime stages
2026-05-28 14:36:45 -05:00
SergeantPanda
89a689c5a0 changelog: Update changelog for Docker PR. 2026-05-28 14:36:02 -05:00
SergeantPanda
9c6c2a081b fix: remove unnecessary libpq-dev dependency from Dockerfile 2026-05-28 14:31:00 -05:00
Seth Van Niekerk
3e7bd3d431
Introduce In-House Template & Compliance Actions 2026-05-28 14:20:39 -04:00
nemesbak
5eb118478b fix(channels): honor stream profile override in Channel.get_stream_profile()
Channel.get_stream_profile() read self.stream_profile directly, bypassing
the override system. The override-aware property effective_stream_profile_obj
already existed and called _resolve_effective_fk('stream_profile') which
correctly picks override.stream_profile when set, but nothing in the
streaming path called it.

As a result, a per-channel 'Stream Profile' override saved through the UI
was visible in the channel edit form (yellow pencil indicator appeared) but
silently ignored at stream time — Dispatcharr always used the global default
profile regardless of what was configured per-channel.

Fix: call effective_stream_profile_obj in get_stream_profile() so that all
callers (live proxy url_utils, input manager, views) automatically pick up
channel-level overrides without any further changes.

Fixes #1268

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 13:39:05 +02:00
nemesbak
5fbe38f8d2 fix(vod): respect relation_id when switching providers in SeriesModal/VODModal
The provider-info endpoints for both series and movies always returned
data from the highest-priority relation, ignoring the provider the user
had selected in the dropdown. Switching sources in the UI produced no
change in the episode list or movie details.

Root cause: the endpoints had no support for a relation_id query param,
and the frontend never passed one when the user changed the selection.

Fix (backend):
- series provider-info: accept ?relation_id=<id> and query that specific
  M3USeriesRelation; fall back to highest-priority when omitted
- movie provider-info: same treatment for M3UMovieRelation

Fix (frontend):
- api.getSeriesInfo / api.getMovieProviderInfo accept an optional
  relationId argument and append it to the query string
- useVODStore.fetchSeriesInfo / fetchMovieDetailsFromProvider forward
  the argument to the API layer
- SeriesModal.onChangeSelectedProvider re-fetches series info (episodes
  included) with the newly selected relation's id
- VODModal.onChangeSelectedProvider re-fetches movie details with the
  newly selected relation's id

Fixes #1250

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 13:39:04 +02:00
Nick Sandstrom
284ba87fe7 Minor formatting changes 2026-05-25 18:15:18 -07:00
Nick Sandstrom
fee8913824 Added tests for components 2026-05-25 18:08:41 -07:00
Nick Sandstrom
e766c4dd54 Refactored components 2026-05-25 18:08:41 -07:00
Nick Sandstrom
688ca2b405 Updated Guide component and utils 2026-05-25 18:08:41 -07:00
Nick Sandstrom
275a93b9b5 Added functionality to dateTimeUtils.js 2026-05-25 18:08:41 -07:00
Nick Sandstrom
1dd0446701 Added tests for utils 2026-05-25 18:08:40 -07:00
Nick Sandstrom
6021bdf741 Extracted utils 2026-05-25 18:08:40 -07:00
Jonathan Caicedo
94c8bd36bf perf: replace per-request DB connections with geventpool 2026-05-25 11:12:46 -04:00
Kanishk Sachdev
2070f9e281 docker: split base image into builder and runtime stages
Keeps compilers in the builder; runtime stage copies only the venv
and NumPy wheel.
2026-05-25 04:31:42 -04:00
Seth Van Niekerk
0db557384a
configurable per-page, sticky pagination footer, fix update sort order and disabled button badge color 2026-05-24 10:59:53 -04:00
SergeantPanda
c4b2fae85a
Merge pull request #1255 from JCBird1012:fix/stats-503-intermittent
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
perf: reduce intermittent 503s on stats page and API requests
2026-05-23 21:47:25 -05:00
SergeantPanda
fb260356aa changelog: Update changelog for stats PR. 2026-05-23 21:45:49 -05:00
SergeantPanda
61c187fc72 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/JCBird1012/1255 2026-05-23 21:43:13 -05:00
SergeantPanda
92d3068be0 fix: ensure migrations run automatically after restoring backups to prevent missing schema issues 2026-05-23 21:25:44 -05:00
GitHub Actions
5ea194059b Release v0.25.1
Some checks failed
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) Has been cancelled
2026-05-23 19:17:36 +00:00
SergeantPanda
5cfea5892a
Merge pull request #1262 from Dispatcharr/dev
Dispatcharr - v0.25.1
2026-05-23 14:16:52 -05:00
SergeantPanda
812d25b987 fix: resolve SynchronousOnlyOperation in ORM calls by allowing async unsafe operations 2026-05-23 13:54:41 -05:00
Jonathan Caicedo
0d1d1f2722 fix: revert nginx timeouts; fire stats fetch on mount regardless of interval 2026-05-23 14:20:13 -04:00
SergeantPanda
137241f873 Bug Fix: Fix auto sync migration. (Fixes #1259)
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-05-22 13:53:00 -05:00