aboutsummaryrefslogtreecommitdiff
path: root/githooks
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-06 13:20:52 -0500
committerCraig Jennings <c@cjennings.net>2026-07-06 13:20:52 -0500
commitc60c8edf2e0e4dcdaab451d630b05d7df583bad6 (patch)
treeb1b88aee50663119986e19d1ae29d928e536ca77 /githooks
parentba1c418428f9d09f57736d66e61ae28974a91117 (diff)
downloaddotemacs-c60c8edf2e0e4dcdaab451d630b05d7df583bad6.tar.gz
dotemacs-c60c8edf2e0e4dcdaab451d630b05d7df583bad6.zip
feat(music): radio-browser search client + emitter (phase 1)
I built the first phase of the radio-browser lookup: the pure pieces and the network client behind the search command, with no UI yet. It lives in modules/music-config.el, alongside the existing radio-station creator. The client is url.el plus json-parse-string, trying a pinned host and falling back to one from /json/servers. The pure layer parses a response into station plists, and a non-JSON body signals a clear user-error rather than a stack trace. It picks a station's stream URL (url_resolved, then url), emits the .m3u in the existing radio format with the radio-browser UUID, formats the completion annotation (codec, bitrate, country, votes, tags), and disambiguates a colliding filename by UUID. Names are newline-stripped so an odd one can't inject extra m3u lines. The pure pieces are unit-tested (14). The network client is smoke-tested against the live API.
Diffstat (limited to 'githooks')
0 files changed, 0 insertions, 0 deletions