File: mcp_server.html

package info (click to toggle)
python-bumble 0.0.220-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 9,280 kB
  • sloc: python: 71,701; java: 3,782; javascript: 823; xml: 203; sh: 172; makefile: 8
file content (83 lines) | stat: -rw-r--r-- 2,837 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<html data-bs-theme="dark">

<head>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
</head>

<body>
    <nav class="navbar navbar-dark bg-primary">
        <div class="container">
            <span class="navbar-brand mb-0 h1">Bumble LEA Media Control Client</span>
        </div>
    </nav>
    <br>

    <div class="container">

        <label class="form-label">Server Port</label>
        <div class="input-group mb-3">
            <input type="text" class="form-control" aria-label="Port Number" value="8989" id="port">
            <button class="btn btn-primary" type="button" onclick="connect()">Connect</button>
        </div>

        <button class="btn btn-primary" onclick="send_opcode(0x01)">Play</button>
        <button class="btn btn-primary" onclick="send_opcode(0x02)">Pause</button>
        <button class="btn btn-primary" onclick="send_opcode(0x03)">Fast Rewind</button>
        <button class="btn btn-primary" onclick="send_opcode(0x04)">Fast Forward</button>
        <button class="btn btn-primary" onclick="send_opcode(0x05)">Stop</button>

        </br></br>

        <button class="btn btn-primary" onclick="send_opcode(0x30)">Previous Track</button>
        <button class="btn btn-primary" onclick="send_opcode(0x31)">Next Track</button>

        <hr>

        <div id="socketStateContainer" class="bg-body-tertiary p-3 rounded-2">
            <h3>Log</h3>
            <code id="log" style="white-space: pre-line;"></code>
        </div>
    </div>


    <script>
        let portInput = document.getElementById("port")
        let log = document.getElementById("log")
        let socket

        function connect() {
            socket = new WebSocket(`ws://localhost:${portInput.value}`);
            socket.onopen = _ => {
                log.textContent += 'OPEN\n'
            }
            socket.onclose = _ => {
                log.textContent += 'CLOSED\n'
            }
            socket.onerror = (error) => {
                log.textContent += 'ERROR\n'
                console.log(`ERROR: ${error}`)
            }
            socket.onmessage = (event) => {
                log.textContent += `<-- ${event.data}\n`
            }
        }

        function send(message) {
            if (socket && socket.readyState == WebSocket.OPEN) {
                let jsonMessage = JSON.stringify(message)
                log.textContent += `--> ${jsonMessage}\n`
                socket.send(jsonMessage)
            } else {
                log.textContent += 'NOT CONNECTED\n'
            }
        }

        function send_opcode(opcode) {
            send({ 'opcode': opcode })
        }
    </script>
    </div>
</body>

</html>