From 1f175607290a6dca3061d61dfa5d71d27cdbf26a Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Sat, 4 Feb 2023 22:06:04 +0000 Subject: [PATCH] improve load handling --- backend/server.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/server.py b/backend/server.py index 5382f0f..0d2d7b1 100644 --- a/backend/server.py +++ b/backend/server.py @@ -85,8 +85,9 @@ def bang_handler(func): return wrapper_func def advertise_lobbies(): - sio.emit('lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in games if not g.started and len(g.players) < 10 and not g.is_hidden]) - sio.emit('spectate_lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in games if g.started and not g.is_hidden and len(g.players) > 0]) + open_lobbies = [g for g in games if and 0 < len(g.players) < 10 and not g.is_hidden][-10:] + sio.emit('lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in open_lobbies if not g.started]) + sio.emit('spectate_lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in open_lobbies if g.started]) Metrics.send_metric('lobbies', points=[sum(not g.is_replay for g in games)]) Metrics.send_metric('online_players', points=[online_players]) @@ -244,7 +245,7 @@ def disconnect(sid): def create_room(sid, room_name): if (p := sio.get_session(sid)).game is None: while any((g.name == room_name for g in games)): - room_name += f'_{random.randint(0,100)}' + room_name += f'_{random.randint(0, 10000)}' sio.leave_room(sid, 'lobby') sio.enter_room(sid, room_name) g = Game(room_name)