Compare commits
1 Commits
4dd3f43ae3
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d014a14cbe
|
54
README.md
54
README.md
@@ -11,7 +11,7 @@ API.
|
||||
|
||||
```bash
|
||||
pip install -e ".[dev]"
|
||||
export NTR_ADMIN_TOKEN="your-secret-here"
|
||||
cp .env.example .env # edit with your settings
|
||||
ntr-fetcher
|
||||
```
|
||||
|
||||
@@ -36,12 +36,16 @@ Full documentation: [`docs/api.md`](docs/api.md)
|
||||
|
||||
| Endpoint | Method | Auth | Description |
|
||||
|----------|--------|------|-------------|
|
||||
| `/` | GET | -- | Public index page |
|
||||
| `/health` | GET | -- | Service health check |
|
||||
| `/playlist` | GET | -- | Current week's playlist |
|
||||
| `/playlist/{position}` | GET | -- | Single track by position (1-indexed) |
|
||||
| `/shows` | GET | -- | List all shows (paginated) |
|
||||
| `/shows/by-episode/{episode_number}` | GET | -- | Look up show by episode number |
|
||||
| `/shows/{show_id}` | GET | -- | Specific show by internal ID |
|
||||
| `/public/playlist` | GET | -- | Current week's playlist (unannounced tracks censored) |
|
||||
| `/public/shows` | GET | -- | List all shows (paginated) |
|
||||
| `/public/shows/{show_id}` | GET | -- | Past show with full tracklist |
|
||||
| `/playlist` | GET | Bearer | Current week's full playlist |
|
||||
| `/playlist/{position}` | GET | Bearer | Single track by position (1-indexed) |
|
||||
| `/shows` | GET | Bearer | List all shows (paginated) |
|
||||
| `/shows/by-episode/{episode_number}` | GET | Bearer | Look up show by episode number |
|
||||
| `/shows/{show_id}` | GET | Bearer | Specific show by internal ID |
|
||||
| `/login` | GET/POST | -- | Login page |
|
||||
| `/logout` | GET | Session | Clear session |
|
||||
| `/dashboard` | GET | Session | Live playlist dashboard |
|
||||
@@ -50,10 +54,16 @@ Full documentation: [`docs/api.md`](docs/api.md)
|
||||
| `/admin/tracks/{track_id}` | DELETE | Bearer | Remove track from current show |
|
||||
| `/admin/tracks/{track_id}/position` | PUT | Bearer | Move track to new position |
|
||||
| `/admin/announce` | POST | Bearer/Session | Announce track to IRC |
|
||||
| `/admin/announced` | POST | Bearer/Session | Toggle track announced state |
|
||||
| `/admin/ping` | POST | Bearer/Session | Send IRC message via connected bots |
|
||||
| `/ws/announce` | WS | Bearer | Bot WebSocket for announcements |
|
||||
| `/ws/public` | WS | -- | Public WebSocket for live track reveals |
|
||||
|
||||
## Configuration
|
||||
|
||||
Environment variables (prefix `NTR_`):
|
||||
All settings are read from environment variables (prefix `NTR_`). A `.env`
|
||||
file in the project root is loaded automatically. See
|
||||
[`.env.example`](.env.example) for a template with all available variables.
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
@@ -65,13 +75,35 @@ Environment variables (prefix `NTR_`):
|
||||
| `NTR_SOUNDCLOUD_USER` | `nicktherat` | SoundCloud username to track |
|
||||
| `NTR_SHOW_DAY` | `2` | Day of week for show (0=Mon, 2=Wed) |
|
||||
| `NTR_SHOW_HOUR` | `22` | Hour (Eastern Time) when the show starts |
|
||||
| `NTR_SHOW_ROTATION_DELAY_HOURS` | `0` | Hours to wait after the show boundary before rotating to the next episode (recommended `2` for live recording window) |
|
||||
| `NTR_PING_TARGET` | *(empty)* | Default nick/target for the dashboard ping feature |
|
||||
| `NTR_PING_MESSAGE` | *(empty)* | Default message for the dashboard ping feature |
|
||||
|
||||
## Public Index Page
|
||||
|
||||
The root URL (`/`) serves a public-facing page showing the current show's
|
||||
playlist. Unannounced tracks are hidden behind silhouette cards until the
|
||||
admin announces them from the dashboard. Reveals happen in real time over
|
||||
WebSocket (`/ws/public`), so listeners following along see tracks appear
|
||||
as they are played.
|
||||
|
||||
Past episodes are browsable from the same page with their full tracklists
|
||||
visible.
|
||||
|
||||
## Dashboard
|
||||
|
||||
An optional web dashboard for announcing tracks to IRC during live shows.
|
||||
Nick opens the dashboard, sees the current and previous week's playlist, and
|
||||
clicks "Announce" next to a track to push it to the configured IRC channel
|
||||
via connected bot plugins.
|
||||
An optional web dashboard for managing tracks during live shows. Features:
|
||||
|
||||
- **Tabbed show interface** -- switch between the current and previous week's
|
||||
playlists in one view.
|
||||
- **Announce button** -- push a track to IRC via connected bot plugins. Also
|
||||
reveals the track on the public index page in real time.
|
||||
- **Announced checkbox** -- persistent per-track flag, auto-checked on
|
||||
announce. Can be toggled manually.
|
||||
- **Copy to clipboard** -- one-click copy of a formatted track line.
|
||||
- **Send IRC Message** -- ping a nick or channel with a custom message through
|
||||
all connected bots. Default target and message are configurable via
|
||||
`NTR_PING_TARGET` / `NTR_PING_MESSAGE`.
|
||||
|
||||
Enable by setting these environment variables:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user