Commit Graph
864 Commits
Author SHA1 Message Date
euzu de45535647 ci: bump version v3.3.80 2026-08-01 10:51:57 +00:00
euzu f56f8a0f0a ci: bump version v3.3.79 2026-08-01 09:56:08 +00:00
MaxPain99andGitHub 9cb8ea9aad fix: Flussonic/BitTV archive catchup routing and Streams panel stability (#807)
* feat: improve Flussonic/TiviMate M3U catchup and DVR playback

Unified catchup-type export, default Wink append template, leaked relative
DVR path recovery, session-based archive EPG reference, and panel archive
playback helpers for Flussonic-style origins.

* fix: Flussonic/BitTV archive Streams sticky panel and catchup routing

Prefer catchup-type for Flussonic detection, keep archive rows stable across HLS segments without immortal ghosts, scroll Active Streams list, and dedupe HLS chips.
2026-08-01 11:55:02 +02:00
euzu 81bf19028b ci: bump version v3.3.78 2026-07-30 16:49:18 +00:00
euzu 3ae44e1f5c ci: bump version v3.3.77 2026-07-30 12:58:56 +00:00
euzu 73a3da5f55 ci: bump version v3.3.76 2026-07-29 16:46:50 +00:00
euzu fb925b0171 ci: bump version v3.3.75 2026-07-29 14:04:46 +00:00
euzuandGitHub 42e4c72608 STRM title/filename can now selected from header or metadata. (#803)
* **New Features**
  * Added a STRM export option to control whether generated folder/file names use media metadata or the processed title.
  * STRM naming now prefers the processed title by default; enabling the option switches to metadata-derived names.
  * Added a UI chip/tag and editor control for the setting.

* **Documentation**
  * Updated STRM configuration docs with the new option, its default, and its effect.
  * Added localization text for the setting in supported languages.

* **Tests**
  * Added/updated tests to verify filename behavior for videos and series with and without the option.
2026-07-29 16:01:24 +02:00
euzu 0dd6ef8a54 ci: bump version v3.3.74 2026-07-27 13:14:08 +00:00
euzuandGitHub 4d8df8f534 M3u catchup fix (#794)
* **New Features**
  * Catch-up streams can now auto-detect whether to serve direct video or an HLS playlist.
  * Added archive-aware HLS session/identity handling and improved upstream user-agent propagation for manifests.
  * Enhanced M3U timeshift/archiving, including nested handling and native Flussonic archive support; Short EPG can advertise archive availability.

* **Bug Fixes**
  * Provider session headers now persist across retries and deferred-open scenarios.
  * Legacy HLS routing is now cache-aware; seek detection improvements.
  * Stalker errors now better redact sensitive URL details.
  * Fix: Preserve VOD client range requests

* **Tests**
  * Expanded coverage for probing, archive/timeshift resolution, header overlay rules, and related routing.
2026-07-27 15:13:10 +02:00
euzu bcc1badcfe ci: bump version v3.3.73 2026-07-23 13:38:32 +00:00
euzuandGitHub fa87a65c9f Feature/hls disable (#800)
* **New Features**
  * Added **Force MPEG-TS** / `disable_hls_streaming` for Xtream live streams, rewriting live `.m3u8` requests to `.ts`.
  * Added UI controls and option indicators, with localized labels in English, Arabic, and Russian.

* **Documentation**
  * Clarified MPEG-TS behavior and added an Xtream example configuration.

* **Bug Fixes**
  * Improved live-stream playback routing/extension handling and related permission-failure responses.
  * Refined provider allocation and grace-period handling for more consistent connection admission.
2026-07-23 15:37:14 +02:00
euzu 2cc23aa92f ci: bump version v3.3.72 2026-07-22 12:32:33 +00:00
euzu 427ea8fee3 ci: bump version v3.3.71 2026-07-22 09:19:48 +00:00
euzuandGitHub fa514031d6 Fixed input form state (#797)
Bug Fixes
- Input forms now consistently update when switching between configured sources.
- Improved filter matching for captions/titles and more accurate type handling for live/video/series (including series-info variants).

New Features
- Mapping DSL now supports reading @input and @type as metadata sources, while rejecting assignments to them.
- Regex capture results are now more consistently exposed across captures (by index and name).

Tests
- Added WASM browser coverage for input switching and updated coverage for filter/mapping behavior.

Documentation
- Updated mapping DSL documentation and changelog to reflect @input/@type read-only behavior and capture access rules.
2026-07-22 11:18:46 +02:00
euzu 21ba9322ca ci: bump version v3.3.70 2026-07-21 09:23:01 +00:00
euzuandGitHub ab4031e567 Fix: Mapper counter reset (#795)
Bug Fixes
Fixed playlist counter assignments so values reset correctly during each refresh.
Corrected counter displays to consistently show their configured starting values.
Improved counter comparisons to detect changes in starting values accurately.
2026-07-21 11:21:34 +02:00
euzu b0ac44372c ci: bump version v3.3.69 2026-07-20 15:41:09 +00:00
euzu 922cb8f028 ci: bump version v3.3.68 2026-07-20 13:00:59 +00:00
euzuandGitHub f8e8941929 Feature/stalker (#780)
New Features

- Added first-class Stalker/Ministra portal support, including live, VOD, series, playback-link refresh, and bulk EPG ingestion.
- Added Stalker configuration and batch/CSV support in the Web UI.
- Added playlist preview and playback handling for Stalker inputs, with support for partial refreshes.
2026-07-20 14:58:06 +02:00
euzu ca2daee21b ci: bump version v3.3.67 2026-07-17 15:58:29 +00:00
euzu e3956a30cd ci: bump version v3.3.66 2026-07-16 13:30:23 +00:00
knylbyteandGitHub 2c39bebc2d fix: clean up orphaned active streams (#791) 2026-07-16 15:28:16 +02:00
euzu a9336f5a44 ci: bump version v3.3.65 2026-07-15 10:53:30 +00:00
euzu d4da4466ac ci: bump version v3.3.64 2026-07-15 08:41:31 +00:00
euzu 8f65e98241 ci: bump version v3.3.63 2026-07-15 07:40:51 +00:00
euzu aa4d742108 ci: bump version v3.3.62 2026-07-13 10:44:31 +00:00
euzuandGitHub 9c34d8e8ca feat: invert staged input connection flow and credentials inheritance (#779)
* feat: invert staged input connection flow
2026-07-13 12:43:25 +02:00
euzu 85b813f545 ci: bump version v3.3.61 2026-07-13 06:44:40 +00:00
euzu 55e3484726 ci: bump version v3.3.60 2026-07-11 08:00:26 +00:00
knylbyteandGitHub 18ae03ba1a feat: add EPG output normalization (#785)
* docs: document EPG output normalization

* feat: normalize EPG output
2026-07-11 09:59:23 +02:00
euzu 01c4ca2616 ci: bump version v3.3.59 2026-07-10 12:55:45 +00:00
knylbyteandGitHub 9040940674 feat: ics to xmltv exporter (#784)
feat: ics to xmltv exporter
2026-07-10 14:53:33 +02:00
euzu 4d0533ff00 ci: bump version v3.3.58 2026-07-08 14:19:22 +00:00
euzu 414085882d ci: bump version v3.3.57 2026-07-08 13:42:48 +00:00
knylbyteandGitHub dc49189f63 feat: add shared hls cache sessions (#782)
Shared HLS cache session feature and aligns the runtime, cache, provisioning, recovery, custom-response, and documentation paths with the new shared-session model.
2026-07-08 11:52:22 +02:00
euzu cbd82fbdfa ci: bump version v3.3.56 2026-06-22 18:03:43 +00:00
euzu 989a225ea8 ci: bump version v3.3.55 2026-06-18 14:10:50 +00:00
euzuandGitHub bfcd66ffcc Fix/catchup (#778)
* Fix: setting auth web_ui token_ttl_mins = 0 fixed.
* Fix: catchup
* New: added playlist update log view
* Fix: Landing Page
New: "Last Page"  added for Landing Page selection
2026-06-18 16:03:09 +02:00
euzu 026aa1adb8 ci: bump version v3.3.54 2026-06-15 12:10:26 +00:00
euzuandGitHub 9e83d24864 Feature/optimizations (#777)
* perf: binary-search EPG programme lookup
Replaces the linear position() scan with a binary search via partition_point for EPG programmes. Reduces complexity to O(log p).
* perf: cache interned PlaylistItemType label
Avoids repetitive hash-map lookups during sorting and filtering. The five fixed labels are now interned once via OnceLock and returned as a cheap Arc clone.
* perf: avoid per-event String allocation in web-UI XMLTV parser
Uses borrowed Cow types instead of allocating a new String for every element name. Tracks the active text state using a small TextTag enum.
* perf: throttle per-chunk download control poll
Throttles the control_signal lock polling to a 200ms interval on multi-GB downloads to prevent CPU thrashing. Immediate actions (pause/cancel) remain guaranteed via control_notify.
* perf: pre-size filtered channel buffers in apply_filter_to_playlist
Pre-allocates the filtered channel vector based on the source group length. Eliminates step-by-step reallocations on large playlists.
* fix: surface playlist cache load failures instead of silent empty fallback
Replaces silent error swallowing with real error logging (distinguishing missing files from corruption) while preserving the empty fallback behavior.
* perf: remove redundant first drain loop in get_remote_content_as_file
Removes a dead, redundant loop. The stream body is now consumed only once, allowing the idle timeout to protect the transfer correctly.
* perf: back off instead of busy-spinning on empty client-stream chunks
Introduces a short Sleep backoff (Poll::Pending) when a provider sends continuous empty keep-alive chunks. Prevents the CPU from spinning hot.
* perf: make library orphan cleanup linear instead of O(n^2)
Reduces the complexity of cleaning up orphaned entries from O(n^2) to linear O(n). Loads the metadata library only once and pre-computes partitions.
* perf: indexed batched merge for series expansion instead of O(n^2) scans
Replaces expensive O(n^2) scans during series expansion with index-based batch processing. Builds temporary lookup indexes and merges groups linearly.
* perf: pre-size group flatten buffers to reduce reallocation churn
Pre-allocates target merge vectors and category indexes to eliminate repeated memory reallocations when flattening large target playlists.
* perf: stream custom provider playlist endpoint instead of materializing it
Switches from full in-memory materialization to lazy conversion and streaming of JSON/binary responses. Massively reduces the memory footprint.
* refactor: centralize InputType batch/family checks behind enum helpers
Moves scattered matches! checks for M3u/Xtream types into centralized enum helpers (is_batch(), etc.) to prevent logic drift.
* refactor: centralize XMLTV tag/attribute literals into named constants
Replaces hardcoded inline strings in the XMLTV parser with named constants (EPG_TAG_TITLE, etc.) as a single source of truth.
* refactor: derive GeoIpUpdateError Display/Error via thiserror
Replaces manual Display and Error implementations with the thiserror macro, allowing new error variants to self-document their formatting.
* refactor: attach per-cluster facts to XtreamCluster instead of scattered matches
Centralizes redundant API actions and collection name mappings directly onto the XtreamCluster struct instead of using scattered match blocks.
* refactor: centralize PlaylistItemType video/series classification
Introduces is_video() / is_series() on the enum to unify duplicate matches! checks across filters, probes, and tracking modules.
* feat: add per-stage summary logs to VOD/series resolve queueing
Adds a concise debug summary per processing stage (total counters and elapsed time) to make hot-path diagnostics easier without raising the log level.
* refactor: generate ItemField get/set from a single direct-field list
Uses a callback macro to synchronously generate both getter and setter blocks for directly-bound fields (Name, Url, etc.) from a single master list.
* refactor: derive input-type routing from a single capability descriptor
Bundles InputType behaviors (backends, connection rules) into a single capabilities() descriptor to prevent bugs when adding new variants.
* refactor: derive output-format routing from a single capability descriptor
Centralizes output format features (filter, EPG, and cache support) into a single TargetCapabilities descriptor instead of spreading logic across no-op match arms.
2026-06-15 14:09:31 +02:00
euzu 6c95116c20 ci: bump version v3.3.53 2026-06-12 21:41:06 +00:00
euzuandGitHub 8c3ab50271 Fixed webui path for authentication (#776)
Fix: Web UI now supports mounting under custom path prefixes with correct routing
2026-06-12 23:39:20 +02:00
euzu 3083fc5f30 ci: bump version v3.3.52 2026-06-09 15:33:24 +00:00
euzu c70f1fc3e9 Group editor table fixed 2026-06-09 17:29:57 +02:00
euzuandGitHub c2ff914506 Feature/custom video stream disable (#775)
* custom Video stream disable with configurable http status code
2026-06-09 16:53:09 +02:00
euzu 52e9952572 ci: bump version v3.3.51 2026-06-08 17:30:56 +00:00
euzuandGitHub 41d716efb6 Feature/disk usage (#774)
* Added DiskUsage stats and Alert
- Fixed web_auth_disabled  bug
2026-06-08 19:29:45 +02:00
euzu 94ea3b1982 ci: bump version v3.3.50 2026-06-08 09:57:51 +00:00
euzuandGitHub c1f0063e07 Feature/show local time (#773)
* Fixed sanitizing url scheme batch and provder
* local date in Stream history
* Fixed EPG programme time display to render in local timezone for improved readability.
* Improved stream history date range filtering to accurately use local date boundaries.
* Enhanced credential sanitization for stream URLs to properly mask sensitive information.
* Fix EPG path selection for mixed Xtream/M3U targets
* Fix EPG selection and complete Xtream series_info for input/custom requests
* Add configurable interner GC tuning
2026-06-08 11:55:51 +02:00