diff options
author | melt <[email protected]> | 2025-03-27 23:52:00 +0000 |
---|---|---|
committer | melt <[email protected]> | 2025-03-27 23:52:00 +0000 |
commit | 56294790fc7535b1871da98bc24a6cb028508ff9 (patch) | |
tree | deb0738dce698b325ce9b3fcba8eb67ac21bd751 /main.py | |
parent | 29bba5f2ab57135f18fa109ed774b5bb364c2645 (diff) | |
parent | 2bf504b887fe5a41335059102646a47c25a00e47 (diff) |
Merge branch 'patch-1' into 'master'
make ulist use the most recent *active* client See merge request soktdeer/SoktDeer-Helium!1
Diffstat (limited to 'main.py')
-rw-r--r-- | main.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/main.py b/main.py index 19035df..0556ffd 100644 --- a/main.py +++ b/main.py @@ -106,7 +106,7 @@ class util: if not re.fullmatch("[a-zA-Z0-9-_. ]{1,50}", client): client = "" ulist[username] = {"client": client, "status": ""} - client_data[conn_id] = {"username": username, "client": client, "websocket": websocket} + client_data[conn_id] = {"username": username, "client": client, "websocket": websocket, "connected": round(time.time())} data = db.acc.get(username) del data["secure"] return data @@ -115,15 +115,21 @@ class util: del client_data[conn_id] if username in ulist: rm_user = True + last_con_time = 0 + last_con_index = "" for i in client_data.copy(): if client_data[i]["username"] == username: rm_user = False + if client_data[i]["connected"] > last_con_time: + last_con_index = i if rm_user: del ulist[username] - broadcast(clients, json.dumps({ - "command": "ulist", - "ulist": ulist - })) + else: + ulist[username]["client"] = client_data[last_con_index]["client"] + broadcast(clients, json.dumps({ + "command": "ulist", + "ulist": ulist + })) async def forcekick(username): if username in ulist: |