Commit Graph

10 Commits

Author SHA1 Message Date
a2eaa03090 feat(favorites): per-favorite volume persistence (narrowed to favorited stations only); update Station and Favorites with Volume support and wiring in TUI
All checks were successful
CI / Test (push) Successful in 55s
Release / Create Release (push) Successful in 2m11s
CI / Build (push) Successful in 47s
2026-06-06 11:59:41 +01:00
67c7a93155 chore(release): prepare v2.1.0 UI polish release
All checks were successful
CI / Test (push) Successful in 56s
Release / Create Release (push) Successful in 2m25s
CI / Build (push) Successful in 43s
2026-06-06 11:20:50 +01:00
07586a8fc0 fix(commander): capture output via CombinedOutput instead of piping streams
Some checks failed
gobuild / build (push) Failing after 7s
- Remove os import and manual Stdin/Stdout/Stderr assignment from subExecute
- Replace cmd.Run() followed by cmd.CombinedOutput() with single CombinedOutput call
- Adjust volume bar height to exactly match metadata display and increase gap to 2 spaces
2026-06-05 23:34:09 +01:00
dd5121c2ae feat(ui): add vertical volume bar to playback view
Some checks failed
gobuild / build (push) Failing after 7s
Add Volume() to Player interface and mpvPlayer implementation to
expose current volume level. Poll volume periodically and render a
vertical bar next to the metadata display during playback. Update
UI state and tests to support the new volume indicator.
2026-06-05 23:18:30 +01:00
2b688569c7 feat: add mpv IPC player with playback controls and winamp-style UI
Some checks failed
gobuild / build (push) Failing after 6s
Implement mpv JSON IPC backend for non-blocking playback, streamed
metadata (media-title/icy-title), and runtime controls (pause, mute,
volume, next/prev). Extend Player interface and wire a two-stage TUI
that switches to a dedicated playback view with keyboard shortcuts and
a styled hint bar. Fallback to legacy player when mpv is unavailable.
2026-06-05 23:13:01 +01:00
e0f45bdd5e feat: add favorites management (CLI + TUI) and in-filter server search
Some checks failed
gobuild / build (push) Failing after 5s
- New `gostations fav` subcommand with `list`, `add`, `del` (supports index, URL, or search flags)
- TUI favorites toggle via `f` key; favorites auto-detected on load for "Your Favorites" title
- Pressing ENTER while filtering performs a server-side search and refreshes the list
- Default TUI now loads favorites if present, otherwise falls back to broad station lookup
- Added `sortedForDisplay` for stable fav list ordering and index-based deletion
- Tests for favorites title heuristic, sorted display, and fav del-by-index integration
2026-06-05 22:30:50 +01:00
3924aae93b feat(ui): custom substring/AND filter for station list
Some checks failed
gobuild / build (push) Failing after 3s
Replace default fuzzy filter with substring matching where multi-word
queries require all words to appear. Fix auto-filter typing to properly
batch returned commands instead of discarding them. Update tests to
drive command loops and verify exact substring matches.
2026-06-05 21:46:04 +01:00
444193a5d2 feat(ui): auto-filter on typing + refactor item struct with favorites
Some checks failed
gobuild / build (push) Failing after 3s
- Add auto-start filter when typing alphanumeric characters
- Refactor item struct to use explicit station field and isFavorite flag
- Show ★ prefix for favorites in list rendering
- Improve description formatting with bullet separators
- Include URL in FilterValue for better search
- Update help text and add corresponding test
2026-06-05 21:36:49 +01:00
ec5db53b8e feat(cli): default to bubbles TUI, add find/play subcmds + JSON favorites
Some checks failed
gobuild / build (push) Failing after 4s
- implement internal/ui with bubbles list + ★ fav markers, filter, enter stub
- add data/favorites (JSON roundtrip, Add/Remove, XDG), config tests
- wire subcommands: `find -j`, `play [url|search]`
- gate legacy wmenu behind --legacy; keep old flags for seeding
- fix inverted -short guards, format string, go.mod deps
- add unit tests for radio prune, player IsInstalled, ui keys, etc.
2026-06-05 21:23:11 +01:00
b378fec3b2 refactor: reorganize into internal packages, fix critical panics and error handling
Some checks failed
gobuild / build (push) Failing after 4s
Move browser, config, player, and radio logic into internal/{config,radio,player,ui,version}.
Add cached API host resolution, context-aware HTTP client, and nil/length guards to eliminate
RandomIP, nslookup, reverseLookup, and GetStations panics. Replace subExecute with clean
legacyPlayer using Run-only execution. Fix inverted -short test guards, unformatted config
error messages, and "Erorr" typo. Remove obsolete vendor/GOPATH logic from build scripts.
Update callers in stations.go and radiomenu.go to new paths; retain shims for transition.
2026-06-05 21:10:54 +01:00