feat: delay show rotation during live recording window

Decouple the like-window boundary (Wed 10pm ET) from when the system
rotates to a new show. NTR_SHOW_ROTATION_DELAY_HOURS=2 keeps the
previous week's show visible during the ~2 hour recording, then creates
the new show at midnight.

Made-with: Cursor
This commit is contained in:
cottongin
2026-04-01 21:29:42 -04:00
parent a328684af0
commit 82049ab47f
7 changed files with 102 additions and 5 deletions

View File

@@ -399,6 +399,25 @@ All timestamps in API responses are UTC. The boundary shifts by 1 hour across DS
| EST (Nov -- Mar) | Wed 22:00 | Thu 03:00 |
| EDT (Mar -- Nov) | Wed 22:00 | Thu 02:00 |
### Show Rotation Delay
By default, the "current" show rotates immediately at the like-window boundary (Wednesday 22:00 ET). Set `NTR_SHOW_ROTATION_DELAY_HOURS` to postpone when the new show becomes current. During the delay the previous week's show remains visible in `/playlist`, `/health`, and the dashboard.
| Variable | Default | Description |
|----------|---------|-------------|
| `NTR_SHOW_ROTATION_DELAY_HOURS` | `0` | Hours to wait after the like-window boundary before rotating to a new show |
With `NTR_SHOW_ROTATION_DELAY_HOURS=2` (recommended for the live recording window):
| Time (ET) | "Current" show | Notes |
|-----------|----------------|-------|
| Wed 21:59 | This week | Like window still open |
| Wed 22:00 | **Still this week** | Like window closed; recording in progress |
| Wed 23:59 | **Still this week** | Gap continues |
| Thu 00:00 | Next week | New show created; likes since Wed 22:00 collected |
Likes made during the gap are not lost -- they fall into the new show's like window and are collected once the rotation occurs.
---
## WebSocket