None
c841cfc8fc
Fix #861 : Prevent M3U endless downloading caused by Redis lock expiry
...
Large M3U downloads that exceed the 300s Redis lock TTL caused Celery Beat
to re-queue duplicate tasks, creating overlapping downloads that never complete.
Files changed:
- core/utils.py: Add TaskLockRenewer class — a daemon thread that periodically renews Redis lock TTL (every 120s) to prevent expiry during long-running tasks.
- apps/m3u/tasks.py: Apply TaskLockRenewer to refresh_single_m3u_account and refresh_m3u_groups; add HTTP timeout (30s connect, 60s read) to M3U download (the only download path missing one); stream M3U download to disk instead of accumulating in memory; add Celery task time limits (1 hour hard limit).
- apps/epg/tasks.py: Apply TaskLockRenewer to refresh_epg_data and parse_programs_for_tvg_id; add Celery task time limits (30 min / 1 hour).
Verified with a throttled test server: locks renewed at T+120s, T+240s, T+360s; 50,000 streams processed with no duplicate tasks.
2026-02-23 00:34:28 -06:00
SergeantPanda
8babb7d111
Chore: Update NPM packages.
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
2026-02-21 16:24:40 -06:00
SergeantPanda
95909d98f9
Security: Update npm dependencies to resolve vulnerabilities.
2026-02-21 16:11:06 -06:00
SergeantPanda
26f7f1025a
specify minimum version for django-celery-beat
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-02-20 16:52:48 -06:00
SergeantPanda
f92cd22d4e
changelog: Update changelog for django version change.
2026-02-20 16:14:48 -06:00
SergeantPanda
d68367e709
Roll django back to version 5 (still has remediations). django-celery-beat does not support Django 6 quite yet. Should soon.
2026-02-20 16:14:11 -06:00
SergeantPanda
bc12b5e6a7
changelog: Update changelog for python package and security updates.
2026-02-20 15:14:33 -06:00
SergeantPanda
ff7c78bb7e
- Dependency updates:
...
- `Django` 5.2.9 → 6.0.2 (major version upgrade; includes security fixes)
- `celery` 5.6.0 → 5.6.2
- `psutil` 7.1.3 → 7.2.2
- `torch` 2.9.1+cpu → 2.10.0+cpu
- `sentence-transformers` 5.2.0 → 5.2.3
2026-02-20 15:12:08 -06:00
SergeantPanda
b0cc5dca27
Enhancement: Channel table group filter sort order: The group dropdown in the channel table is now sorted alphabetically.
2026-02-20 13:38:28 -06:00
SergeantPanda
74bf98b405
Bug Fix Filter channel groups in the channel table to include only those with channels in groupOptions
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-02-20 12:26:20 -06:00
SergeantPanda
41b618a056
Merge pull request #994 from Dispatcharr/optimize-channels-store
...
Optimize channels store
2026-02-20 09:46:05 -06:00
SergeantPanda
a7b9c0ffe1
Merge branch 'dev' into optimize-channels-store
2026-02-20 09:42:36 -06:00
SergeantPanda
5dc531e5e4
Refactor: Rename 'Settings' to 'System' and vice versa in Sidebar component for clarity
2026-02-20 09:39:12 -06:00
SergeantPanda
438aa526bb
Bug Fix: get_live_streams and get_vod_info now return the added field as a string (e.g., "1708300800") instead of an integer, fixing compatibility with XC clients that have strict JSON serializers (such as Jellyfin's Xtream Library plugin). ( Closes #978 )
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-02-19 17:48:32 -06:00
SergeantPanda
1f932b30b9
Enhancement/BugFix:
...
- The User-Agent field was not correctly loaded from the existing profile when opening the edit modal. (Fixes #650 )
- Replaced the plain command text field with a dropdown listing built-in tools (FFmpeg, Streamlink, VLC, yt-dlp) plus a Custom option that reveals a free-text input. Each built-in now shows its default parameter string as a live example in the Parameters field description, updating as the command selection changes. Added descriptive help text to all fields to improve clarity.
2026-02-19 15:51:08 -06:00
SergeantPanda
e382af5ad0
changelog: Update changelog for pr 983
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-02-19 11:36:54 -06:00
SergeantPanda
1503127f61
Merge pull request #983 from CodeBormen/fix/962-VOD-proxy-connection-counter-leak-on-client-disconnect
...
Fix: VOD proxy connection counter leak on client disconnect
2026-02-19 11:32:20 -06:00
SergeantPanda
184a8c8c5e
changelog: Add dvr scheduling change for channel number
2026-02-19 09:48:39 -06:00
SergeantPanda
f2f6ddd82d
changelog: Update changelog for changes in this branch.
2026-02-18 16:30:12 -06:00
SergeantPanda
b1abab6654
Bug Fix: Fix bug where attempting to schedule a one-time recording of a future program resulted in the recording starting immediately.
2026-02-18 16:25:33 -06:00
SergeantPanda
8a8df11b72
Fix issue with channelById type error (object vs map) this was breaking scheduling manual DVR recordings.
2026-02-18 15:16:33 -06:00
SergeantPanda
34a24b2e44
Added isLoading: false to fetchChannelIds and fix auth and channels tests.
2026-02-18 14:45:34 -06:00
SergeantPanda
c68d73fbdb
Update DVR to not require group selection, use new channel summary endpoint.
2026-02-18 14:38:47 -06:00
SergeantPanda
8427ae0a2d
tests: Update frontend tests for changes to channel store.
2026-02-18 14:12:03 -06:00
SergeantPanda
edc3fc951e
Optimize now-line updates and scrolling performance in TVChannelGuide
2026-02-18 13:10:24 -06:00
SergeantPanda
3df259e06e
Enhance program visibility in GuideRow with horizontal culling and buffer
2026-02-18 12:59:56 -06:00
SergeantPanda
15b4ec7be9
Slight performance increase for tv guide.
2026-02-18 12:11:21 -06:00
SergeantPanda
7db6aded22
add summary endpoint and lightweight channel summary retrieval for TV Guide
2026-02-18 11:51:41 -06:00
None
58ccf2d6e1
Fix: VOD proxy connection counter leaks on client disconnect and seeking
...
Fix multiple VOD proxy connection counter leak paths that caused
profile_connections to remain permanently elevated after client
disconnects, leaving profiles locked at capacity.
Changes:
- Fix get_stream() race condition: save state under lock with fresh active_streams to prevent overwriting concurrent decrements during scrubbing/seeking (root cause of counter stuck after timeshift)
- Add early active_streams increment in session reuse path to prevent cleanup race between GeneratorExit and new request
- Add rollback on get_stream() returning None (range not satisfiable)
- Add profile_id fallback to closure variable when Redis state is deleted before generator cleanup runs
- Change increment/decrement return types and add warning logs for lock acquisition and state failures
- Clean up debug traceback logging from increment/decrement methods
2026-02-17 20:24:00 -06:00
dekzter
1eeaefef85
use getChannels endpoint for fetching all instead of normal querying
2026-02-17 17:49:02 -05:00
dekzter
7c0ce190d2
'disabled' all view limitation for now (just set it really high)
2026-02-17 17:29:26 -05:00
dekzter
b24d51c2aa
missed lots of places we used the old channels map, fixed them up
2026-02-17 17:28:59 -05:00
dekzter
f988506a79
missed channel memo
2026-02-17 16:23:54 -05:00
SergeantPanda
0aa5986c12
Enhancement: Reorganized the form into collapsible accordion sections (Pattern Configuration, Output Templates, Upcoming/Ended Templates, Fallback Templates, EPG Settings) for better organization. Field descriptions now appear in info icon popovers instead of taking up vertical space, making the form more compact and easier to navigate while keeping help text accessible.
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
2026-02-17 13:15:19 -06:00
SergeantPanda
47853bdb5b
Enhancement: Added optional subtitle template field to custom dummy EPG configuration. Users can now define subtitle patterns using extracted regex groups and time/date placeholders (e.g., {starttime} - {endtime}). ( Closes #942 )
2026-02-17 12:00:24 -06:00
SergeantPanda
967704d7a0
changelog: Update changelog for modular celery container numpy detection pr.
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-02-17 10:59:19 -06:00
SergeantPanda
daba81037d
Merge pull request #974 from patrickjmcd/main
...
fix: add support for legacy numpy in celery entrypoint
2026-02-17 10:44:15 -06:00
Patrick McDonagh
b1376386d5
docs: add legacy NumPy support instructions in docker-compose
2026-02-17 09:50:50 -06:00
SergeantPanda
74cc9bd376
changelog: Update changelog for pr 946
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-02-16 16:10:51 -06:00
SergeantPanda
ac1b43445e
Merge pull request #946 from CodeBormen/fix/945-XC-profile-refresh-extract-wrong-credentials
...
Fix XC URL sub-path handling in profile refresh and EPG creation
2026-02-16 16:04:53 -06:00
dekzter
cd6b3da8eb
Merge remote-tracking branch 'origin/dev' into optimize-channels-store
2026-02-16 16:44:20 -05:00
SergeantPanda
50918b45fb
changelog: Update changelog for webhooks.
2026-02-16 15:34:09 -06:00
SergeantPanda
b1cb70c5d2
Merge pull request #975 from Dispatcharr/connect
...
Feature: Connect
2026-02-16 15:27:56 -06:00
SergeantPanda
968551c1a6
Enhancement: M3U generation for Xtream Codes API endpoints now use proper XC-style stream URLs (/live/username/password/channel_id) instead of UUID-based stream endpoints, ensuring full compatibility with XC clients. ( Fixes #839 )
2026-02-16 13:45:57 -06:00
SergeantPanda
6ebcf18e48
Merge pull request #991 from Dispatcharr/cron-scheduling
...
feat(scheduling): add cron builder and refactor scheduling components (Closes #165 )
2026-02-16 10:55:43 -06:00
SergeantPanda
717cce92ec
Merge branch 'dev' into cron-scheduling
2026-02-16 10:55:33 -06:00
dekzter
55a5180ee1
hardening of script handling with configurable variables - making script execution more secure
2026-02-15 07:37:00 -05:00
dekzter
055d2604ca
better form validation
2026-02-15 07:36:29 -05:00
dekzter
45d0f180fe
added endpoint for testing connections with a dummy payload
2026-02-15 07:36:08 -05:00
None
4842bb87fa
Fix: VOD proxy connection counter leak on client disconnect
...
Three fixes:
- TOCTOU: Replace GET-check-INCR with atomic INCR-first-then-check pattern in both connection managers to prevent concurrent requests exceeding max_streams
- Immediate DECR: Decrement profile counter directly in stream generator exit paths (normal completion, client disconnect, error) instead of deferring to daemon thread cleanup which may never execute
- Rollback: Decrement profile counter on create_connection() failure so the reserved slot is released
Fixes #962
2026-02-13 19:37:06 -06:00