Skip to content

Release: Per-channel .m3u and better auto-removal settings.#741

Open
dialmaster wants to merge 6 commits into
mainfrom
dev
Open

Release: Per-channel .m3u and better auto-removal settings.#741
dialmaster wants to merge 6 commits into
mainfrom
dev

Conversation

@dialmaster

Copy link
Copy Markdown
Collaborator

No description provided.

Post-release merge back to dev
New opt-in channel setting that writes a "<Channel Name>.m3u" playlist
at the top of the channel folder, oldest or newest first. Jellyfin and
Emby pick it up automatically.

Regenerates after downloads, deletions, settings changes,
enable/disable, and the nightly rescan. Entries are checked against
disk, writes go temp-file-then-rename, and the file is deleted when
nothing is playable. Stray .m3u/.m3u.tmp files no longer block empty
channel dir cleanup.

Also fixes subfolder moves not updating stored audio file paths, which
could leave playlist entries pointing at missing files.

Refs: #357
New advisories against axios, brace-expansion, and js-yaml (root) and
axios and react-router (client) started failing CI's security audit.
Lockfile-only bumps within existing semver ranges via npm audit fix.
…level-m3u

feat: add per-channel .m3u playlist generation
Nightly cleanup can now delete videos that were watched on a media
server (with optional waits for time since last watch and video age),
plus a keep-recent setting that shields the N newest downloads from
every rule. Never-synced videos count as unwatched, and the watched
rule is skipped when watch status sync is off.

Also reworked the settings UI into OR-separated rule cards with a
plain-language summary, since the old flat layout hid how the rules
combine.

Refs: #316
…oval-settings

feat: add watched and keep-recent auto-removal
@dialmaster dialmaster changed the title Release Release: Per-channel .m3u and better auto-removal settings. Jul 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📊 Test Coverage Report

Backend Coverage

Type Coverage Status
Lines 87.94% 🟢
Statements 87.81% 🟢
Functions 88.09% 🟢
Branches 80.73% 🟢

Frontend Coverage

Type Coverage Status
Lines 87.05% 🟢
Statements 85.55% 🟢
Functions 78.03% 🟡
Branches 79.46% 🟡

Coverage Requirements

  • Minimum threshold: 70% line coverage
  • Backend: ✅ Passes
  • Frontend: ✅ Passes

Coverage report generated for commit 951190c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant