#!/usr/bin/python # this version cannot tell if a stream is running or just ordinary music import os import sys import json from urllib.parse import quote from relaxxapi import relaxx try: import requests except: print ("you are missing the `requests` dependency, please do a `pip install requests`") from subprocess import Popen, PIPE os.chdir(os.path.dirname(os.path.realpath(sys.argv[0]))) pidfile = "/tmp/krebs.stream.pid" baseurl="http://lounge.mpd.shack/" url=baseurl+"include/controller-playlist.php?action=%s&value=%s&json=%s" url_file = os.environ.get("STREAM_DB", "../db/direct.db") urls = [] for line in open(url_file): urls.append(line.split()) #print urls mybin = sys.argv[0] cmd = sys.argv[1] if len(sys.argv) > 1 else "you-are-made-of-stupid" stream = sys.argv[2] if len(sys.argv) == 3 else "groove" pipe_silent = open("/dev/null","w") api = relaxx(baseurl) def urlForStream(stream): for url, s in urls: if s == stream: return url def streamForUrl(url): for u, s in urls: if u == url: return stream def startStream(stream_url): print(api.crossfade("5")) print(api.repeat("1")) print(api.clear()) print(api.add_song(stream_url)) print(api.play_first()) def start(stream): ret = api.playing() if ret: print("!! Stream `%s` already running !" % \ (ret)) else: startStream(urlForStream(stream)) print("** Starting `%s`."% stream) def stop(): ret = api.playing() if not ret: print("!! No Stream running!") else: print("** Stopping `%s`" % ret) api.stop() def slist(): for url, name in urls: print("%s : %s" % (name, url)) def shorthelp(): print("start|stop|restart|status|list [audio stream]") def longhelp(): print("Usage: %s" % mybin) shorthelp print(""" get all available streams with '/%(fil)s list' Examples: %(fil)s list %(fil)s start groove %(fil)s switch deepmix %(fil)s status %(fil)s stop""" % {'fil': mybin}) if cmd == "start": start(stream) elif cmd == "stop": stop() elif cmd == "switch" or cmd == "restart": stop() start(stream) elif cmd == "status": ret = api.playing() if not ret: print("** nothing running") # , e else: print("Now Playing: %s" % ret) elif cmd == "list": slist() elif cmd == "--help": longhelp() elif cmd == "-h": shorthelp() else: print("unknown command `%s`" % cmd) print("try `%s` --help" % os.path.basename(mybin))