import http.server
import json
import ssl
from urllib.parse import urlparse

from drm.keyos_proxy import LAProxy_RequestHandler

with open('config.json') as f:
    config = json.load(f)

PORT = int(config['PLAYER_KEYOSPROXY_PORT'])


class MyHandler(LAProxy_RequestHandler, http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        parsed = urlparse(self.path)

        # FairPlay certificate endpoint (from keyos proxy)
        if parsed.path == '/fps/certificate':
            return LAProxy_RequestHandler.do_GET(self)

        # Static file serving
        super(LAProxy_RequestHandler, self).do_GET()

    def do_POST(self):
        # License proxy endpoint (from keyos proxy)
        return LAProxy_RequestHandler.do_POST(self)




server_address = ('0.0.0.0', PORT)
httpd = http.server.HTTPServer(server_address, MyHandler)

ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ctx.load_cert_chain('cert.pem', 'key.pem')
httpd.socket = ctx.wrap_socket(httpd.socket, server_side=True)

DOMAIN = config.get('DOMAIN', 'localhost')
print(f"Serving on https://{DOMAIN}:{PORT}")
httpd.serve_forever()
