Commit Graph
598 Commits
Author SHA1 Message Date
euzuandGitHub 0e4e01409c Feature/failover (#924)
* feature stream failover
2026-10-16 21:10:07 +02:00
euzu 86d19f955c ci: bump version v3.3.155 2026-10-16 08:43:12 +00:00
euzu 189bab6d71 ci: bump version v3.3.154 2026-10-14 18:38:00 +00:00
euzu 33352621bd ci: bump version v3.3.153 2026-10-14 06:53:04 +00:00
euzuandGitHub 824828f6c7 fix hls: stale stream rows, panel blanking and re-entry window jumps (#918)
* fix hls: stale stream rows, panel blanking and re-entry window jumps
* fix session: release grace-expired slot once, match rows by token
* rusttls vulnerability fixed
* fix testkit: keep scenario run id across bootstrap retries
2026-10-14 08:51:46 +02:00
euzu 41b66ce70a ci: bump version v3.3.152 2026-10-13 20:32:50 +00:00
euzu 588b954eeb ci: bump version v3.3.151 2026-10-13 19:01:05 +00:00
euzu 8ca57ad8d8 ci: bump version v3.3.150 2026-10-12 20:44:20 +00:00
euzu 0d6b40e212 ci: bump version v3.3.149 2026-10-12 19:44:42 +00:00
euzu 084d68e74d ci: bump version v3.3.148 2026-10-12 19:07:08 +00:00
euzuandGitHub b6bab647df feat(watch): group added/removed contexts per watch entry (#912)
* feat(watch): group added/removed contexts per watch entry

- watch entries: regex string or {pattern, on:
[channels|group_added|group_removed]}
- one playlist.watch.changed per refresh with WatchChange list;
playlist.groups.changed aliased
- Telegram/ntfy message length limits
- web UI: Mapping and Watch sub pages, new Mapping icon
- ClusterFlags on create_bitset!, bitflags removed

BREAKING CHANGE: playlist.watch.changed templates must use the new
watch.* fields

* feat(watch): group added/removed contexts per watch entry

- watch entries: regex string or {pattern, on:
[channels|group_added|group_removed]}
- one playlist.watch.changed per refresh with WatchChange list;
playlist.groups.changed aliased
- Telegram/ntfy message length limits
- web UI: Mapping and Watch sub pages, new Mapping icon
- ClusterFlags on create_bitset!, bitflags removed

BREAKING CHANGE: playlist.watch.changed templates must use the new
watch.* fields
2026-10-12 21:05:55 +02:00
euzu 45c10edd3d ci: bump version v3.3.147 2026-10-12 14:36:37 +00:00
euzu d9482aeca1 ci: bump version v3.3.146 2026-10-12 07:54:15 +00:00
euzu e6032679ac ci: bump version v3.3.145 2026-10-09 23:15:32 +00:00
euzu d158b152d2 ci: bump version v3.3.144 2026-10-09 15:43:05 +00:00
d35875e3d1 fix hls close revision file at reader deadline (#907)
* fix hls close revision file at reader deadline

Move the progressive revision reader onto its own task and feed the
response stream through a bounded channel. At the deadline the watchdog
aborts the reader, so the file handle and revision pin are released
even if a stalled client never polls the stream again.

Each open revision file now holds its own pin, so GC cannot retire a
revision while a handle is open, including one held by an in-flight
blocking read.

* fix hls close revision file at reader deadline

Move the progressive revision reader onto its own task and feed the
response stream through a bounded channel. At the deadline the watchdog
aborts the reader, so the file handle and revision pin are released
even if a stalled client never polls the stream again.

Each open revision file now holds its own pin, so GC cannot retire a
revision while a handle is open, including one held by an in-flight
blocking read.

---------

Co-authored-by: euzu <euzu@proton.me>
2026-10-09 17:41:39 +02:00
euzu 7cfd9ac3a9 ci: bump version v3.3.143 2026-10-08 11:29:50 +00:00
euzuandGitHub 62aea2a2fe persist table layouts and unify column metadata (#906)
* **New Features**
  * Customize table columns by showing, hiding, and reordering them, with keyboard or pointer controls.
  * Save layouts per account, restore defaults, and resolve conflicts when preferences change elsewhere. On installations without web authentication, settings are shared.
  * CSV tables now support saved layouts for recognized table structures.
* **Bug Fixes**
  * Improved pagination bounds and page-size validation.
  * Settings requests now return clearer errors for oversized or unreadable request bodies, and recheck access after waiting for settings to become available.
* **Documentation**
  * Added guidance for table customization and the settings API.
2026-10-08 13:28:41 +02:00
euzu e5313faa38 ci: bump version v3.3.142 2026-10-07 16:42:29 +00:00
euzu ac0dad8342 ci: bump version v3.3.141 2026-10-07 13:42:46 +00:00
euzu aa687e6e3f ci: bump version v3.3.140 2026-10-06 17:29:10 +00:00
euzu 509e2cfeee ci: bump version v3.3.139 2026-10-06 05:56:43 +00:00
euzu 7511f719f1 ci: bump version v3.3.138 2026-10-05 17:56:23 +00:00
euzu 9183ca0846 ci: bump version v3.3.137 2026-10-05 10:20:26 +00:00
euzu 9cebb510ef ci: bump version v3.3.136 2026-10-04 14:04:05 +00:00
euzuandGitHub 91f6c57159 Fix/merge live and vod recording (#876)
feat(dvr)!: unify live and VOD/series recording into one recoverable DVR

Merge fix/merge_live_and_vod_recording into develop.

- One recording queue for scheduled live captures and VOD/series transfers,
  with a shared transition graph, provider-slot scheduling, resumable HTTP
  transfers (strong ETag / Last-Modified validation) and ffmpeg live capture.
- Crash-recoverable persistence: B+Tree repository with a journal-first
  recovery history; one file can be shared by several library entries.
- Admission checks quota and disk on request, at transfer start (real size)
  and before an entry attaches to a finished file; idempotent requests.
- REST is command-only; state reaches clients via owner-filtered WebSocket
  snapshots.
- Deleting a recording removes the file once no entry holds it; removing an
  entry keeps a finished file and cleans up orphaned partials.
- User ids derive from the configured username (web:/api:); the identity
  registry is gone.
- Spanish locale added; ru/ar completed; locale parity test.

BREAKING CHANGE: `video.download` is now `video.recording` (nested
`recording` keys move up, `download_priority`/`recording_priority` become
`priority`); old configs fail to load with a migration hint.
BREAKING CHANGE: `/api/v1/file/download*` and `/file/record` are removed in
favour of `/api/v1/recording/*`.
BREAKING CHANGE: `download.*` and `recording.write` permissions are replaced
by `recording.read|create|manage|delete`; tokens from before the change must
re-authenticate.
BREAKING CHANGE: the old recording queue does not migrate; existing
`identity_registry.json` is ignored.
2026-10-04 16:02:55 +02:00
euzu b4290e8724 ci: bump version v3.3.135 2026-10-03 16:09:21 +00:00
euzuandGitHub 3b656f56b5 fix(hls): return upstream status for HLS resources (#896)
* fix(hls): return upstream status for HLS resources

- no TS fallback for failed segments, init and keys
- bounded capacity wait on pinned account (manifest 5s, media 2s)
- reject waiting requests after session end or account switch
- per-origin provider cookie jar, read at send time
- opt-in flussonic_hls_audio_tracks input option

* fix(hls): return upstream status for HLS resources

- no TS fallback for failed segments, init and keys
- bounded capacity wait on pinned account (manifest 5s, media 2s)
- reject waiting requests after session end or account switch
- per-origin provider cookie jar, read at send time
- opt-in flussonic_hls_audio_tracks input option

* fix(hls): return upstream status for HLS resources

- no TS fallback for failed segments, init and keys
- bounded capacity wait on pinned account (manifest 5s, media 2s)
- reject waiting requests after session end or account switch
- per-origin provider cookie jar, read at send time
- opt-in flussonic_hls_audio_tracks input option
2026-10-03 18:07:59 +02:00
euzu e85361736c ci: bump version v3.3.134 2026-10-02 18:17:45 +00:00
euzu 154206ed74 ci: bump version v3.3.133 2026-10-01 16:56:29 +00:00
euzu 559d18a373 ci: bump version v3.3.132 2026-10-01 12:47:36 +00:00
euzu 93b1603412 ci: bump version v3.3.131 2026-10-01 06:19:04 +00:00
euzu 6f9687c890 ci: bump version v3.3.130 2026-09-30 23:24:33 +00:00
euzu c09c06f663 ci: bump version v3.3.129 2026-09-30 15:31:19 +00:00
euzu 02fba44fd4 ci: bump version v3.3.128 2026-09-30 08:44:20 +00:00
euzu 59e0f242ab ci: bump version v3.3.127 2026-09-30 07:03:47 +00:00
euzu 67515b120e ci: bump version v3.3.126 2026-09-27 08:25:35 +00:00
euzu de577f6773 ci: bump version v3.3.125 2026-09-27 07:43:45 +00:00
euzu 11efe7a24e ci: bump version v3.3.124 2026-09-26 16:57:25 +00:00
euzu 3e1bb60551 ci: bump version v3.3.123 2026-09-26 15:05:04 +00:00
725917f12b Fix/policy trusted destinations (#883)
* fixing resource url problem

* fix(resources): classify resource destinations per hop and keep the proxy in the fetch path
A resource URL is classified (public / non-public / local) before it reaches a client, and every
redirect hop is classified and fetched again: non-public hops connect directly, public hops go
through the configured proxy, local hops are refused. Adds the public no-redirect resource client,
a process-wide destination memo, and regression tests for the redirect and Web UI paths.

* fix(resources): classify resource destinations per hop and keep the proxy in the fetch path
A resource URL is classified (public / non-public / local) before it reaches a client, and every
redirect hop is classified and fetched again: non-public hops connect directly, public hops go
through the configured proxy, local hops are refused. Adds the public no-redirect resource client,
a process-wide destination memo, and regression tests for the redirect and Web UI paths.

---------

Co-authored-by: euzu <euzu@proton.me>
2026-09-26 17:03:09 +02:00
euzu cfc78fd64a ci: bump version v3.3.122 2026-09-25 06:23:11 +00:00
euzuandGitHub 2c07d52b93 Fixed max user connection screen when grace granted (#880)
* **Bug Fixes**
  * Improved live-stream session handling during instant grace periods, including when a session has not yet been created.
  * Corrected connection-limit and eviction tracking so active streams remain eligible for eviction even when their session record is unavailable.
  * Improved reliability when switching between live channels under connection limits.
* **Improvements**
  * Updated staged M3U overlays for Xtream providers: staged groups determine selected categories and channels, while unmatched categories remain available. Provider categories with no usable staged channels are retained.
* **Documentation**
  * Clarified how staged Xtream and M3U playlists affect provider categories and channels.
2026-09-25 08:22:11 +02:00
euzu 0d60a54d3e ci: bump version v3.3.121 2026-09-24 16:11:17 +00:00
euzu 688806da01 ci: bump version v3.3.120 2026-09-24 15:38:40 +00:00
Juanjo PresaandGitHub 0d4f113c54 feat: add TMDB Trending target curation (#872)
- add target-wide TMDB Trending discovery for movie/TV and day/week, bounded by an optional `limit` (default 100, range 1–500) of unique remote references before local matching
- compose concrete Trakt and TMDB sources under one target curation policy while retaining legacy `output[].trakt` compatibility
- match only positive TMDB IDs of the same media kind and preserve existing catalog identities, series closure, and Xtream alias behavior
- require every active selector to complete before target IDs, writers, caches, or watches can change
- preserve the YAML-owned block through Source Editor operations and add TMDB setup/failure documentation and application Credits attribution
- validate complete decoded pages under independent request, selector, and shared target-batch budgets, using a configured TMDB-only HTTP profile with certificate/hostname verification and no redirects or replays
2026-09-24 17:36:34 +02:00
euzu 06e2b35009 ci: bump version v3.3.119 2026-09-23 22:52:04 +00:00
euzu e6ceddec9a ci: bump version v3.3.118 2026-09-23 20:47:10 +00:00
euzu 211e305650 ci: bump version v3.3.117 2026-09-22 14:53:13 +00:00
euzu 2297b3700a ci: bump version v3.3.116 2026-09-22 13:04:15 +00:00