client can now set secret other than 'test'
This commit is contained in:
parent
c21b5095ee
commit
1193580403
7 changed files with 17 additions and 808 deletions
|
@ -1,4 +1,6 @@
|
|||
import asyncio
|
||||
import string
|
||||
import secrets
|
||||
from traceback import print_exc
|
||||
from json import load
|
||||
import logging
|
||||
|
@ -17,7 +19,7 @@ sources: dict[str, Source] = {}
|
|||
|
||||
|
||||
currentLock = asyncio.Semaphore(0)
|
||||
state = {"current": None, "queue": [], "room": None, "server": ""}
|
||||
state = {"current": None, "queue": [], "recent": [], "room": None, "server": "", "secret": ""}
|
||||
|
||||
|
||||
@sio.on("skip")
|
||||
|
@ -29,6 +31,7 @@ async def handle_skip():
|
|||
@sio.on("state")
|
||||
async def handle_state(data):
|
||||
state["queue"] = [Entry(**entry) for entry in data["queue"]]
|
||||
state["recent"] = [Entry(**entry) for entry in data["recent"]]
|
||||
|
||||
|
||||
@sio.on("connect")
|
||||
|
@ -37,8 +40,9 @@ async def handle_connect():
|
|||
await sio.emit(
|
||||
"register-client",
|
||||
{
|
||||
"secret": "test",
|
||||
"secret": state["secret"],
|
||||
"queue": [entry.to_dict() for entry in state["queue"]],
|
||||
"recent": [entry.to_dict() for entry in state["recent"]],
|
||||
"room": state["room"],
|
||||
},
|
||||
)
|
||||
|
@ -109,6 +113,7 @@ async def aiomain():
|
|||
parser = ArgumentParser()
|
||||
|
||||
parser.add_argument("--room", "-r")
|
||||
parser.add_argument("--secret", "-s")
|
||||
parser.add_argument("--config-file", "-C", default="syng-client.json")
|
||||
parser.add_argument("server")
|
||||
|
||||
|
@ -120,6 +125,12 @@ async def aiomain():
|
|||
if args.room:
|
||||
state["room"] = args.room
|
||||
|
||||
if args.secret:
|
||||
state["secret"] = args.secret
|
||||
else:
|
||||
state["secret"] = ''.join(secrets.choice(string.ascii_letters + string.digits) for _ in range(8))
|
||||
print(f"Generated secret: {state['secret']}")
|
||||
|
||||
state["server"] = args.server
|
||||
|
||||
await sio.connect(args.server)
|
||||
|
|
|
@ -203,7 +203,8 @@ async def handle_register_client(sid, data: dict[str, Any]):
|
|||
else:
|
||||
logger.info("Registerd new client %s", room)
|
||||
initial_entries = [Entry(**entry) for entry in data["queue"]]
|
||||
clients[room] = State(data["secret"], {}, [], Queue(initial_entries), [], sid)
|
||||
initial_recent = [Entry(**entry) for entry in data["recent"]]
|
||||
clients[room] = State(data["secret"], {}, [], Queue(initial_entries), initial_recent, sid)
|
||||
sio.enter_room(sid, room)
|
||||
await sio.emit("client-registered", {"success": True, "room": room}, room=sid)
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB |
|
@ -1,15 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Vite App</title>
|
||||
<script type="module" crossorigin src="/assets/index.533d2b73.js"></script>
|
||||
<link rel="stylesheet" href="/assets/index.d713a926.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -67,9 +67,9 @@ class SyngShell(aiocmd.PromptToolkitCmd):
|
|||
async def do_admin(self, data):
|
||||
await sio.emit("register-admin", {"secret": data})
|
||||
|
||||
async def do_connect(self, room):
|
||||
async def do_connect(self, server, room):
|
||||
state["room"] = room
|
||||
await sio.connect("http://127.0.0.1:8080")
|
||||
await sio.connect(server)
|
||||
|
||||
async def do_skip(self):
|
||||
await sio.emit("skip")
|
||||
|
|
Loading…
Add table
Reference in a new issue