@@ -47,15 +47,17 @@ async def broadcast(payload: dict) -> None:
47
47
class Client :
48
48
def __init__ (self , websocket : WebSocket , user_data ) -> None :
49
49
self .websocket = websocket
50
- self .username , self .hex_code , self . admin = user_data ["username" ], user_data ["hex" ], False
50
+ self .username , self .hex_code = user_data ["username" ], user_data ["hex" ]
51
51
52
- self ._callback = None
52
+ # Attributes
53
+ self .admin , self .bot = False , user_data ["bot" ]
53
54
54
55
# Attach to client list
56
+ self ._callback = None
55
57
app .state .clients [self .username ] = self
56
58
57
59
def serialize (self ) -> dict [str , str | bool ]:
58
- return {"name" : self .username , "hex" : self .hex_code , "admin" : self .admin }
60
+ return {"name" : self .username , "hex" : self .hex_code , "admin" : self .admin , "bot" : self . bot }
59
61
60
62
def cleanup (self ) -> None :
61
63
del app .state .clients [self .username ]
@@ -100,6 +102,7 @@ async def receive(self) -> typing.Any:
100
102
class ClientJoinModel (BaseModel ):
101
103
username : str = Field (..., min_length = 3 , max_length = 30 )
102
104
hex : str = Field (..., min_length = 6 , max_length = 6 , pattern = "^[0-9A-Fa-f]{6}$" )
105
+ bot : bool = False
103
106
104
107
@app .post ("/api/join" )
105
108
async def route_index (client : ClientJoinModel ) -> JSONResponse :
0 commit comments