Dispatcharr/apps/channels
None cf3165ea88 fix(dvr): add DB retry resilience, fix recording card logos, prevent incorrect artwork
Add exponential backoff retry (_db_retry helper) for transient DB errors during final metadata save, startup recovery, and initial TS proxy
connection. Add FFmpeg remux retry for transient I/O errors. Retry same proxy base before falling back to next candidate on initial connection failure.

Fix DVR card logos not displaying: channel summary API returns logo_id (integer) but frontend expected a nested logo object with cache_url.

Add getChannelLogoUrl() helper that handles both data shapes. Backend artwork prefetch and run_recording now fall back to the channel's own logo when no show-specific artwork is found, ensuring poster_logo_id is always populated.

Prevent incorrect artwork by skipping external API searches (TVMaze, iTunes) when no program title is available - channel names like
"USA A&E SD*" returned unrelated results from fuzzy matching.

Add 13 tests for retry logic (test_dvr_retry.py)
2026-03-04 10:21:03 -06:00
..
migrations Missed migration for previous feature. 2026-01-31 21:26:34 -06:00
tests fix(dvr): add DB retry resilience, fix recording card logos, prevent incorrect artwork 2026-03-04 10:21:03 -06:00
__init__.py Initial commit 2025-02-18 11:14:09 -06:00
admin.py epg refactor, new relations and matching 2025-03-26 13:28:03 -04:00
api_urls.py Updated url path 2025-12-16 23:06:49 -06:00
api_views.py fix(dvr): add recording extend, fix cross-recording interference, artwork race, and keepalive gaps 2026-03-04 10:21:02 -06:00
apps.py Refactor stats and vod proxy 2025-09-05 19:30:13 -05:00
forms.py Forms support floats now. 2025-05-15 15:32:21 -05:00
models.py Enhancement: Added stream_id (provider stream identifier) and stream_chno (provider channel number) fields to Stream model. For XC accounts, the stream hash now uses the stable stream_id instead of the URL when hashing, ensuring XC streams maintain their identity and channel associations even when account credentials or server URLs change. Supports both XC num and M3U tvg-chno/channel-number attributes. 2026-01-31 17:47:46 -06:00
serializers.py Enhancement: Added stream_id (provider stream identifier) and stream_chno (provider channel number) fields to Stream model. For XC accounts, the stream hash now uses the stable stream_id instead of the URL when hashing, ensuring XC streams maintain their identity and channel associations even when account credentials or server URLs change. Supports both XC num and M3U tvg-chno/channel-number attributes. 2026-01-31 17:47:46 -06:00
signals.py fix(dvr): add recording extend, fix cross-recording interference, artwork race, and keepalive gaps 2026-03-04 10:21:02 -06:00
tasks.py fix(dvr): add DB retry resilience, fix recording card logos, prevent incorrect artwork 2026-03-04 10:21:03 -06:00
urls.py Initial commit 2025-02-18 11:14:09 -06:00
utils.py Initial commit 2025-02-18 11:14:09 -06:00
views.py m3u modifications so streams are identified by hash, configurable, also streams now have channel_groups instead of a string for groups 2025-03-19 16:35:49 -04:00