|
@@ -1,14 +1,12 @@
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
import os
|
|
|
+import argparse
|
|
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
|
import xml.etree.cElementTree as etree
|
|
|
|
|
|
import yaml
|
|
|
|
|
|
-listen_address = '0.0.0.0'
|
|
|
-listen_port = 80
|
|
|
-
|
|
|
VTUNER_DNS = 'http://radioyamaha.vtuner.com'
|
|
|
VTUNER_INITURL = '/setupapp/Yamaha/asp/BrowseXML/loginXML.asp'
|
|
|
XMLHEADER = '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
|
|
@@ -83,8 +81,16 @@ class YCastServer(BaseHTTPRequestHandler):
|
|
|
|
|
|
|
|
|
get_stations()
|
|
|
-server = HTTPServer((listen_address, listen_port), YCastServer)
|
|
|
-print('YCast server listening on %s:%s' % (listen_address, listen_port))
|
|
|
+parser = argparse.ArgumentParser(description='vTuner API emulation')
|
|
|
+parser.add_argument('-l', action='store', dest='address', help='Listen address', default='0.0.0.0')
|
|
|
+parser.add_argument('-p', action='store', dest='port', type=int, help='Listen port', default=80)
|
|
|
+arguments = parser.parse_args()
|
|
|
+try:
|
|
|
+ server = HTTPServer((arguments.address, arguments.port), YCastServer)
|
|
|
+except PermissionError:
|
|
|
+ print("Error: No permission to create socket. Are you trying to use ports below 1024 without elevated rights?")
|
|
|
+ raise
|
|
|
+print('YCast server listening on %s:%s' % (arguments.address, arguments.port))
|
|
|
try:
|
|
|
server.serve_forever()
|
|
|
except KeyboardInterrupt:
|