#!python
import json
import socket
from datetime import datetime
from flask import Flask
from flask import render_template
app = Flask(__name__)

SOCK_RECV_SIZE = 10240

def get_state():
    """Create a connection to the dabmux stats server
    and ask for the state

    returns: state"""

    sock = socket.socket()
    sock.connect(("localhost", 12720))

    version = json.loads(sock.recv(SOCK_RECV_SIZE))

    if not version['service'].startswith("ODR-DabMux"):
        return "Wrong version: '{}'\n".format(version['service'])

    sock.send("state\n")
    state_data = json.loads(sock.recv(SOCK_RECV_SIZE))
    sock.close()

    return state_data

@app.route('/')
def index_state():
    state_json = get_state()

    inputs = [{'name':name, 'state':state_json[name]['state']} for name in state_json]

    now = str(datetime.now())

    return render_template("index.html",
            inputs=inputs,
            name="test mux",
            date=now)

if __name__ == '__main__':
    app.run(debug=True)