# icyws A tiny ices2 input module. It does two things: * Runs a WebSocket server on port 8765 that broadcasts the current song as `Artist - Title` * When run with no arguments, picks a random song from a newline‑separated file list, prints its full path, extracts metadata, and tells the WebSocket server ## Usage ### Start the server ``` icyws serve --bind :8765 --allow-origin * ``` ### Pick a random track ``` ICYWS_TRACKLIST=tracks.txt icyws ``` This prints the selected file path to stdout and broadcasts the now‑playing info. ### Track list format A plain text file with one absolute file path per line. ### ices2 config ```xml playlist script ICYWS_TRACKLIST=/etc/ices2/playlist.txt /usr/local/bin/icyws ``` ### WebSocket endpoint Connect to: `/ws/radio` Receives: `Artist - Title` whenever a new song is selected ### Announcement endpoint (internal) If the websocket (serve mode) is live, picker mode POSTs to: ``` /announce ``` ### Build ``` go build -o icyws ```