Commit Graph
402 Commits
Author SHA1 Message Date
knylbyteandGitHub f8ae4c9d56 fix: use manual redirects only for http proxies and apply proxy setting to ffprobe subprocess (#612)
* fix: use manual redirects only for http proxies
* fix: sync panel api on manual playlist update
* fix: route ffprobe probes through configured proxy
* fix: handle non-unicode proxy env vars safely
* fix: serialize panel api sync and align sync naming
* fix: manually follow hls redirects when proxy is configured
* fix: align hls manual redirect with proxy scheme
* fix: emit playlist update failure when lock is closed
* fix: align probe and scheduler paths for upstream merge
* fix: remove playlist lock retry and name hls redirect limit
2026-02-26 20:36:01 +01:00
euzuandGitHub e8c908e8fd Feature/bplustree delete (#614)
* BPlustree remove implementation
2026-02-26 19:31:52 +01:00
euzuandGitHub 96a5512b65 TMDB retry fixed and added cooldown. (#613)
New Features

Background probing for Live streams with configurable interval; new input options to trigger probing and toggle background resolution.
Configuration Changes

metadata_update reorganized into grouped sections: log, resolve, probe, ffprobe, tmdb.
FFprobe controls moved under ffprobe.* and now require explicit time/size units; new live ffprobe settings.
Added metadata_update.tmdb.cooldown (default 7d) and grouped TMDB settings.
Bug Fixes

TMDB no-match cooldown to prevent endless requeues.
Documentation

README and UI help updated to reflect grouped metadata_update fields and explanations.
2026-02-26 14:41:02 +01:00
euzuandGitHub 3be0fa347f MetadatResolve hardening rerties after errors (#611)
* MetadatResolve hardening rerties after errors
2026-02-25 19:30:19 +01:00
euzuandGitHub 02989dd05f Fix: update_on_boot playlist update and metadata solver deadlock (#610)
- Fix: update_on_boot playlist update and metadata solver deadlock
- probe task release with grace time
2026-02-24 18:59:51 +01:00
euzuandGitHub 0db2af05f4 Feature/vod stick to provider (#609)
* Vod Seek provider selection fix
2026-02-24 16:03:39 +01:00
euzuandGitHub 43909f1a5d - Fixed telegram markdown escape (#606)
- Fixed telegram markdown escape
- Fixed sort order for episodes
- Fixed session stickyness problem for vod and series
- Fixed template resolution
2026-02-24 12:51:51 +01:00
euzuandGitHub cbb305c456 wrong account allocatoin vod/series
Was allocating the right XC account but sometimes still storing/reusing the old base stream URL (often the first batch account) for VOD/series sessions, especially around seek/reconnect. (#605)
That caused provider/account mismatch and possible single-connection resets.
2026-02-23 21:16:45 +01:00
euzuandGitHub d0ce95eb3c Fix/web UI save overrides templates (#604)
- WebUI save overrides templates
- Deadlock during playlist update and metadata background task
- Global templates like mappings
2026-02-23 17:00:11 +01:00
euzuandGitHub 9b742997b0 initial setup (#601)
Initial Setup Wizard
2026-02-23 11:46:21 +01:00
knylbyteandGitHub dedf6bb63b fix: set input.options defaults if input.options is none and normalize missing /live prefix for hls streams (#602)
fix: set input.options defaults if input.options is none and normalize missing /live prefix for hls streams
fix: document defensive options guard in config input prepare
fix: group configinputoptions methods in one impl
fix: document fallback semantics for configinput _or flag helpers
fix: restore false fallback for missing options in flag checks
2026-02-22 23:27:40 +01:00
euzuandGitHub f0121917eb Fix/rabbit (#596)
Fixed some rabbit.ai issues.
The PR standardizes and improves error handling and logging across playlist, EPG, and repository modules: it changes M3U iteration to continue on individual read errors, introduces async watcher tasks to await and log blocking-thread failures, adds temp-file cleanup and more descriptive disk/source error logs, and removes two noisy DB-viewer logs.
2026-02-18 09:04:40 +01:00
euzuandGitHub 815487e4f5 Fix/peristed m3u file invalid provider url (#595)
Fixed m3u playlist with  provider_config persistence as text file
Added probe_delay input option (default 2s); stream probing renamed “Stream Probing” and now covers live, VOD and series as a low‑priority background task.
2026-02-18 08:18:28 +01:00
euzuandGitHub ef26c6645c Feature/schedule local library scan (#593)
Schedule Local library scan

New Features

Scheduler now supports Local Library scans alongside playlist updates; schedules can trigger either task type.
Each schedule can specify a Type: PlaylistUpdate or LibraryScan (defaults to PlaylistUpdate).
UI

Schedule editor: new Type selector and TYPE column; Targets field shown only for PlaylistUpdate.
2026-02-16 15:47:44 +01:00
euzuandGitHub 0f55ff83eb deadlock during update through background probe (#591)
deadlock during update through background probe
2026-02-16 11:22:06 +01:00
euzuandGitHub dd7d3c6fe3 Target is updated after all resolve tasks finish (#590)
Target is updated after all resolve tasks finish
2026-02-15 17:31:14 +01:00
euzuandGitHub 7bc66a90df CSP inline style fixes (#589)
CSP inline style fixes
2026-02-15 15:40:43 +01:00
euzuandGitHub 7b8bdaa49b Feature/stream probe (#585)
Stream probe
2026-02-14 17:52:35 +01:00
euzuandGitHub 38813bb672 Feature/makefile ci and log with local time (#582)
- Add Makefile to simplify installing required tools
- Add CONTRIBUTING.md welcome new contributors
- Add fmt, lint, test tasks to makefile and update CONTRIBUTING.md
- Add CI workflow
-  Log with local date
2026-02-14 12:12:59 +01:00
euzuandGitHub dffa8a8873 shared stream between targets (#574)
shared stream between targets
2026-02-12 19:18:16 +01:00
knylbyteandGitHub 55ea77d8f2 feat: sort alias accounts descending and fixed sorting for csv batch (#573)
sort alias accounts descending and fixed sorting for csv batch (#573)
2026-02-12 18:50:40 +01:00
euzuandGitHub fc0f1f32aa Enhanced Metadata Resolution, Stream Analysis & Improved STRM-Output. Added connection priority management.
**Description:**
This PR introduces a major overhaul of how streams are analyzed and connections are managed. It integrates `ffprobe` for deep stream analysis, adds a background task queue for metadata resolution to prevent UI blocking, introduces a connection priority system, and adds support for Live TV probing.

### 🚀 Key Features

*   **FFprobe Integration & Live TV Probing**:
    *   Automatically probes streams (VOD/Series **and now Live TV**) to determine resolution, codecs (HEVC/AV1), dynamic range (HDR/DV), bit depth, and audio channels.
    *   **Safe Probing**: Probing strictly respects the provider's `max_connections` limit.
    *   Docker images now include static `ffmpeg/ffprobe` binaries.

*   **Smart Connection Management (Priority System)**:
    *   Introduced a priority system for connections to manage provider limits intelligently.
    *   **Preemption**: Users with higher priority can preempt (kick) lower priority connections when provider slots are full.
    *   **Background Queue**: Metadata resolution and stream analysis run as background tasks (Priority 0). They only run when connection slots are idle and yield immediately if a real user needs to stream.

*   **Enhanced Metadata Resolution**:
    *   **Fallback Logic**: If a provider is missing the TMDB ID or Release Date, the system resolves them via the TMDB API.
    *   **Smart Title Cleaning**: Implemented a centralized cleaner to strip common IPTV prefixes before attempting metadata matches or generating filenames, significantly improving match rates.

*   **Improved Output**:
    *   **Quality Tags**: Filenames in STRM files now include detailed tags (e.g., `Movie - [4K HEVC HDR].strm`).
    *   **Flat Grouping**: `flat: true` now correctly groups multi-version movies into single folders based on TMDB ID.
    *   **Global Series Date**: Ensures consistent series folder naming even if episodes have different years.
2026-02-12 15:06:57 +01:00
euzuandGitHub 555bc2cce1 Feature/provider config (#570)
New Features
- Automatic provider failover & rotation across multiple provider URLs with a provider:// scheme and capped retries
- Configurable failover redirect patterns to influence retry/failover behavior
UI

- New interface to view and edit failover redirect patterns in reverse proxy configuration

- Expanded docs covering Provider Failover & Rotation and enriched messaging templating
Reliability

- Improved URL resolution, error reporting and logging for more robust provider handling
2026-02-10 11:53:42 +01:00
euzuandGitHub 3a2d11284a Feature/timeshift request offset (#571)
Timeshift offset for epg requests
2026-02-09 11:55:05 +01:00
euzuandGitHub 7f98d96ece Feature/timeshift request offset (#569)
Timeshift offset for epg requests
2026-02-08 14:27:58 +01:00
euzuandGitHub b2ec51580e Fixed a possible deadlock during update, Added epg_request_timeshift to api user (#568)
Fixed a possible deadlock during update
Added epg_request_timeshift to api user
2026-02-08 10:53:38 +01:00
euzuandGitHub c149c8cde5 Fixed epg icon url (#567)
Fixed epg icon url
Fixed m3u parsing
2026-02-06 14:09:09 +01:00
knylbyteandGitHub ebc7fa0184 fix: logging proxy auth error only once and dont retry (#564) 2026-02-01 22:11:19 +01:00
euzuandGitHub a0581368bd Feature/bplustree operations in async runtime (#563)
Using spawn_blocking fro sync io to avoid tokio runtime block
2026-02-01 18:09:13 +01:00
knylbyteandGitHub 7bcb9c17c3 Bugfix/proxy auth (#557)
gitignore added debug directory and codex instructions STEPS.md
fix: preserve proxy auth across redirects
fix: fail when proxy client build fails
fix: keep no-redirect fallback policy
fix: drop auth headers on cross-origin redirects
fix: ignore NO_PROXY for redirect handling
Fix redirect fails proxy authentification
2026-02-01 13:37:49 +01:00
euzuandGitHub 748fca44b3 Feature/request timeout and web UI updates (#555)
* Idle timeout for requests implemented
* fix: user api path
* WebUI Added APi Proxy Config
2026-01-31 15:29:32 +01:00
euzuandGitHub 13f71ed988 B+ tree now supports a multi-block layout to handle records that exce… (#553)
B+ tree now supports a multi-block layout to handle records that exceed a single block.
Additionally, a larger safety factor was added to the overhead calculation to reduce the risk of data overflow.
Added in-place update for values if they fit in the block without rewriting the whole tree structure.
Implemented an LRU Block Cache (Node Cache) for the query engine.
Implemented zero copy key lookup
Added --dbv for printing id_mapping.db files
Increased initial load time with mmap
2026-01-30 19:29:04 +01:00
euzuandGitHub 0be9258fc0 epg timeshift refactoring (#550)
epg timeshift refactoring
2026-01-29 18:08:22 +01:00
euzuandGitHub 8cc0d1e74c TargetIdMapping moved to playlist storage from xtream playlist storage. (#548)
TargetIdMapping moved to playlist storage from xtream playlist storage.
2026-01-28 18:37:40 +01:00
euzuandGitHub 03d6e966c7 Feature/fix catchup (#547)
Catchup fix
Changed allocator to mimalloc
2026-01-28 17:21:10 +01:00
euzuandGitHub 45fbf91bee Feature/provider linup manager deadlock fix (#545)
Identified a critical deadlock path in  reconcile_connections where a DashMap iterator held internal shard locks while awaiting an asynchronous
2026-01-28 12:15:31 +01:00
euzuandGitHub a15c966190 Feature/some fixes (#544)
* Season Order fix

* fixed episode id problem

* fixed path prefix for user bouquet editor

* fixed css styling for mobile size

* fixed disabled input config

* cargo clippy fixes
2026-01-28 11:11:08 +01:00
euzuandGitHub 2d0ac6f957 Feature/sort epg playlistexplorer normalization fix (#543)
* Fixed series sort issues
* Playlist explorer copy to clipboard functons implemented
* Epg time fix
* grace period hold stream option added.
* Fixed group and mapper normalization
* Image cache validity for browsers set to 4 hours. Responding now  last modified and cache header.
2026-01-27 18:33:16 +01:00
euzuandGitHub e01197cf52 Feature/for each genre review (#541)
* New Features
Added for_each DSL construct for iterating over playlist item fields, with split() function support.
Added "genre" as a queryable and editable playlist item field.

Bug Fixes
Improved short EPG request handling with automatic default limits.
Fixed EPG timestamp formatting to use UTC consistently.
2026-01-26 23:04:37 +01:00
euzuandGitHub 9a6b7e574b epg fix (#537)
New Features
Aliases can now be individually enabled or disabled to manage active sources.

Bug Fixes
Improved channel identification accuracy in XMLTV outputs.

Style
Disabled aliases display with strikethrough text for better visibility.
2026-01-26 17:37:01 +01:00
euzuandGitHub 62f7611125 Feature/log fixes and button styling (#536)
fixed some logs, added input name
epg short response hos now no errors field
added missing fields for reverse_proxy and library config in ui
fixed button styling
2026-01-25 16:32:35 +01:00
euzuandGitHub a407f209a8 Messaging templates (#534)
Messaging templates
2026-01-25 12:41:18 +01:00
euzuandGitHub 4c27f13d47 Feature/shared stream exhausted custom stream fix (#533)
Custom stream display fix
Playlist Explorer series info fix
2026-01-24 09:59:33 +01:00
euzuandGitHub 52805d0d77 Feature/shared stream fix (#532)
* Shared stream cpu spike fix
2026-01-23 19:32:16 +01:00
euzu 9c62246078 epg parsing changed 2026-01-23 18:47:05 +01:00
euzu d5519f7b8a epg parsing changed 2026-01-23 18:36:08 +01:00
euzu ad40d72587 epg parsing changed 2026-01-23 18:27:29 +01:00
euzu f1aee7d302 epg parsing changed 2026-01-23 17:10:58 +01:00
euzu 3752125112 Improved HTTP request retry mechanism with standardized backoff handling for better reliability
UI Improvements
Enhanced playlist explorer styling
2026-01-23 16:06:20 +01:00
euzu c5239b5614 Optimizing playlist data exchange with ui 2026-01-22 17:43:03 +01:00