Curt LeCaptain
c0d6e951a3
feat(m3u): add native xz decompression support for uploaded M3U playlists
...
Extends _open_m3u_text_source() and fetch_m3u_lines() to treat an
uploaded .xz playlist the same way as the existing .m3u.gz path: it is
streamed lazily via lzma.open() rather than loaded fully into memory
(unlike the .zip path, which must read archive members). Uses stdlib
lzma, no new dependency.
Companion to the EPG xz support added for Dispatcharr/Dispatcharr#1414 -
the M3U upload path has the same gzip/zip dispatch structure and would
otherwise hit the same gap for an xz-compressed playlist.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 19:48:44 -05:00
Curt LeCaptain
408c3c6bea
feat(epg): add native xz decompression support for EPG sources
...
Adds .xz to the set of compressed formats detect_file_format(),
extract_compressed_file(), fetch_xmltv(), and EPGSource.get_cache_file()
recognize, mirroring the existing gzip handling. Uses stdlib lzma, no new
dependency. Detection works via LZMA magic bytes (fd 37 7a 58 5a 00),
the .xz extension (including compound extensions like .xml.xz), and the
application/x-xz mimetype fallback.
Widened the magic-byte read in get_cache_file() from 4 to 6 bytes since
the xz signature is 6 bytes (the previous 4-byte read was sufficient
only for the 2-byte gzip/zip signatures it originally supported). That
widening silently broke the bare-<tv> raw-XML detection: the
fixed-length slice comparison header[:5] == b'<tv>' can never match a
5-byte slice of a 6-byte header against a 4-byte literal. Replaced the
fixed-length slice comparisons with header.startswith(...), which is
correct regardless of how many bytes are read - this also fixes the
adjacent <?xml declaration check, which was silently dead before this
change (a 4-byte read could never equal the 5-byte b'<?xml' literal
either).
Fixes Dispatcharr/Dispatcharr#1414
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 19:48:44 -05:00
SergeantPanda
b8f657250d
tests: Add CELERY_BROKER_URL and CELERY_RESULT_BACKEND environment variables to ci_bootstrap_backend.sh for improved Celery configuration.
2026-07-08 00:16:54 +00:00
SergeantPanda
8b22f1c63a
refactor: Lazy load celery_app in __getattr__ to improve module attribute access and reduce initial import overhead.
2026-07-07 21:33:49 +00:00
SergeantPanda
b26916dc7c
refactor: Replace custom test label iteration with centralized test discovery functions for improved maintainability and consistency in test suite management.
2026-07-07 21:30:20 +00:00
SergeantPanda
35ac9ea987
test: Refactor collision avoidance tests to use a fixed timestamp and improve suffix collision checks. Introduced helper function for clearer logic in assertions regarding MKV file naming conventions.
2026-07-07 21:08:45 +00:00
SergeantPanda
53e6d9874a
test: Implement github workflow for backend tests.
2026-07-07 20:51:49 +00:00
SergeantPanda
c6dfce167b
test: Add custom test runner for improved test execution in settings_test.py
2026-07-07 18:58:18 +00:00
SergeantPanda
af71dc929f
tests: Move tests to under tests folder.
2026-07-07 18:51:35 +00:00
SergeantPanda
2a09ce49da
Enhancement: Update changelog to reflect changes in ChannelPagination, ensuring pagination works correctly with only page_size provided. Refactor tests to improve reliability and consistency, including adjustments to database connection management in various test cases. Modify EPG name normalization tests for accuracy and clarity, and enhance program data serializer tests to utilize precomputed season and episode values.
2026-07-07 18:30:06 +00:00
SergeantPanda
cf421b7b39
Enhancement: Refine database connection management in event dispatching and logging functions by conditionally closing old connections based on gevent monkey patching status, improving resource handling during asynchronous operations.
2026-07-07 18:27:35 +00:00
SergeantPanda
ae58fdb980
Enhancement: Add release_connections parameter to PluginManager, allowing for conditional database connection closure during plugin discovery, improving resource management.
2026-07-07 18:27:15 +00:00
SergeantPanda
dff97d9067
Enhancement: Ensure proper DB connection management in Celery tasks by checking for worker context before releasing connections, preventing potential ORM errors.
2026-07-07 18:26:09 +00:00
SergeantPanda
810a7a93a1
Enhancement: Update plugin discovery logic to include release_connections parameter, improving resource management during event triggering.
2026-07-07 18:25:52 +00:00
SergeantPanda
553bfc135c
Enhancement: Modify pagination logic in ChannelPagination to disable pagination when both page and page size parameters are absent, ensuring full queryset is returned in such cases.
2026-07-07 18:23:46 +00:00
SergeantPanda
7649bfc88a
Enhancement: Prevent 500 errors in live proxy preview when joining active channels on non-owner workers by ensuring proper client registration and cleanup. Update changelog to reflect this fix.
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (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-07-06 21:05:09 -05:00
SergeantPanda
a90872079b
Enhancement: Update session management details and improve stream limit handling in timeshift proxy. Enhance tests for decisive account failover and session probe logic.
2026-07-06 19:49:19 -05:00
SergeantPanda
4f798e9a28
changelog: update to link issue.
2026-07-06 19:29:25 -05:00
SergeantPanda
4d4cc92bc9
Enhancement: Improve live proxy failover logic by resetting connection retries after a specified period of stability and ensuring backup streams are rotated in channel order. Update changelog to reflect these changes.
2026-07-06 19:11:32 -05:00
SergeantPanda
ebbc2a7b54
Enhancement: Enable GEVENT support in uWSGI configuration for improved concurrency handling. Update debugging environment variables accordingly.
2026-07-06 17:15:35 -05:00
SergeantPanda
96db4f92c7
Enhancement: Implement live proxy failover for VLC stream profile, ensuring proper handling of upstream URL failures. Update changelog to reflect changes in stream management and VLC profile parameters.
2026-07-06 16:45:56 -05:00
SergeantPanda
9c3ace6146
Enhancement: Introduce 'Only Catch-up' filter in Channels and Streams tables, allowing users to easily narrow down to catch-up entries. Update changelog to reflect this new feature.
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-07-03 09:09:59 -05:00
SergeantPanda
4b0066f6e7
Enhancement: Add catch-up indicators to Channels and Streams tables, enhancing UI with new serializers for catch-up data.
2026-07-03 09:03:28 -05:00
SergeantPanda
54d97fd630
changelog: slight cleanup.
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-07-02 14:52:30 -05:00
SergeantPanda
6fe67f4044
changelog: Update for pr 1403
2026-07-02 14:42:49 -05:00
SergeantPanda
9bd05580e7
Merge pull request #1403 from nick4810:fix/node25+-test-compatibility
...
Node25+ Test Compatibility
2026-07-02 14:40:34 -05:00
SergeantPanda
27fc812df9
Add comment explaining the Node 25 issue with localStorage. Also patch globalThis.
2026-07-02 14:39:26 -05:00
SergeantPanda
aa60275a2a
Merge pull request #1398 from francescodg89-crypto:main
...
Add VOD failover logic for M3U relations
2026-07-02 14:19:02 -05:00
SergeantPanda
259db1196d
Update tests and changelog.
2026-07-02 14:03:29 -05:00
SergeantPanda
2dcae97d01
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/francescodg89-crypto/1398
2026-07-02 13:55:27 -05:00
SergeantPanda
3a81a34e4a
fix(epg): Enhance EPG data refresh and parsing logic to prevent data loss and improve concurrency handling. Implement deferred processing for ongoing tasks, ensuring stability during refresh operations. Update changelog with significant fixes and improvements.
2026-07-02 13:34:53 -05:00
SergeantPanda
de3a0a0713
refactor(celery): Replace worker_ready signal with worker_process_init for plugin discovery and close inherited DB connections. Use djangos PostgrSQL backend for celery tasks.
2026-07-02 13:33:04 -05:00
francescodg89-crypto
72c0a4e69a
Refactor VOD failover tests and enhance coverage
...
Refactor tests for VOD provider failover logic to improve clarity and remove unnecessary components. Introduce new tests for order candidates and ensure no database access occurs during processing.
2026-07-02 00:17:13 +02:00
francescodg89-crypto
c824f7a17f
Refactor content relation handling for efficiency
...
Refactor content relation retrieval to use a single DB query for active relations, improving efficiency. Update return values to include candidates for failover handling.
2026-07-02 00:16:25 +02:00
SergeantPanda
12f094cbc0
feat(epg): Implement channel parsing progress tracking and update progress reporting logic in parse_channels_only function
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-07-01 17:07:47 -05:00
Nick Sandstrom
e8eec56783
Added localStorage polyfill
2026-06-30 16:27:50 -07:00
SergeantPanda
692765c199
Merge pull request #1393 from nick4810:tests/frontend-unit-tests
...
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) Has been cancelled
Tests/frontend unit tests
2026-06-30 16:57:24 -05:00
SergeantPanda
15fbf3d3d6
changelog: Update for pr.
2026-06-30 16:56:51 -05:00
SergeantPanda
dafdb1a19b
refactor(tests): Improve formatting and structure in ChannelsTable tests; streamline requeryChannels function in ChannelUtils
2026-06-30 16:49:30 -05:00
SergeantPanda
14ab2a0317
Enhance VodConnectionCard to use human-readable duration format and update tests accordingly. Refactor formatDuration function to support 'human' precision and add related unit tests for various duration scenarios.
2026-06-30 16:48:36 -05:00
SergeantPanda
570adc2fe0
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/nick4810/1393
2026-06-30 12:55:20 -05:00
SergeantPanda
e6630d52c3
Merge pull request #1378 from Jacob-Lasky:fix/xc-empty-fetch-channel-wipe
...
fix(m3u): abort XC refresh on empty provider fetch to prevent channel wipe
2026-06-30 12:23:50 -05:00
SergeantPanda
617eeae42a
docs: Update changelog and reduce code comment length.
2026-06-30 12:22:55 -05:00
SergeantPanda
49a40ba7ed
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/Jacob-Lasky/1378
2026-06-30 12:08:17 -05:00
SergeantPanda
4dc8e27cfd
Merge pull request #1367 from CodeBormen/fix/1332-rename-preview
...
fix(m3u): align auto-sync rename preview with the live rename
2026-06-30 11:58:08 -05:00
SergeantPanda
eac3849486
changelog: add thanks to submitter.
2026-06-30 11:57:38 -05:00
SergeantPanda
827e18a3fd
Merge remote-tracking branch 'origin/dev' into pr/CodeBormen/1367
2026-06-30 11:54:31 -05:00
SergeantPanda
a71667436e
Merge branch 'main' of https://github.com/Dispatcharr/Dispatcharr into dev
2026-06-30 11:37:19 -05:00
GitHub Actions
22b957aee4
Release v0.27.2
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
2026-06-30 16:28:27 +00:00
SergeantPanda
68ab03d95f
Merge pull request #1399 from Dispatcharr/refactor-channel-initialization
...
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Has been cancelled
Refactor channel initialization
2026-06-30 10:47:15 -05:00