guix-config/files/bin/chill-player.hy
2025-01-02 13:01:35 +08:00

24 lines
933 B
Hy
Executable file

#!/usr/bin/env hy
(import json)
(import requests)
(import subprocess)
(import argparse)
(defn live-play [live-id]
(while True
(for [item (.json (requests.get f"https://stream.chillhop.com/live/{live-id}"))]
(print f"Now playing: {(:title item)} - {(:artists item)} - {(:fileId item)}")
(subprocess.run f"mpv --no-video https://stream.chillhop.com/mp3/{(:fileId item)}"
:shell True
:capture_output True))))
(setv parser (argparse.ArgumentParser))
(parser.add_argument "-s" :action "store" :dest "station" :metavar "station" :required False)
(setv args (parser.parse_args))
(when args.station (live-play args.station))
(let [presets (:presets (.json (requests.get "https://stream.chillhop.com/presets")))]
(print "Now streaming...")
(for [item presets]
(print f"Name: {(:name item)} station Id: {(:stationId item)}"))
(live-play (input "Input station ID: ")))