v0.2.2 — Live Channels
·
155 commits
to master
since this release
Live Channels — auto-updating channels. Mark a channel "live" and Programmarr re-checks it against your library on a schedule and patches it in place as the library grows — no redeploy.
Highlights
- Live toggle per channel + an orange "live" badge. Off by default; enable in Settings → Live Channels.
- Franchise auto-match — a
title_containsrule pulls in every matching film in release order (e.g.Bad Boys→ all four) and auto-adds new sequels. Word-boundary matching (Itmatches "It Follows", not "Little Women"), with a live author-time preview and per-title exclude list. - In-place updates reuse the existing Tunarr channel (same number + id), so Plex's Live TV / DVR mapping is never disturbed — no deleting, no re-adding. Verified: a live Batman channel grew 162 → 254 programs with its channel id unchanged.
- Change-detection diffs against current Tunarr programming and patches only on a real change — idempotent no-ops, no guide churn, no state file (survives restarts).
- Background scheduler (in-process asyncio loop), re-reads config live so enable/pause/interval changes apply without a restart.
- Dashboard → Auto-Updates card: on/paused state, live count, last-cycle changes, Pause/Resume, and a "Check now" button. New
/api/recipes/*endpoints.
Also in this release
create.pyresolution logic extracted into a shared, importablechannel_engine.py(no behavior change to deploys).- Manual deploys and the scheduler share a lock so they never touch Tunarr at once.
- Fixed: channel editor "bounce" — Save could re-open the modal and double-fire the saved notification.
- Added a favicon.
Full notes in CHANGELOG.md.