From a51c98de0f8399715f390d823b73f88b29d37b59 Mon Sep 17 00:00:00 2001 From: Luna Date: Sat, 26 Jun 2021 00:11:10 -0300 Subject: [PATCH] gateway: deduplicate ready.users array --- litecord/gateway/websocket.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/litecord/gateway/websocket.py b/litecord/gateway/websocket.py index d9b70a1..cb64e2c 100644 --- a/litecord/gateway/websocket.py +++ b/litecord/gateway/websocket.py @@ -73,22 +73,21 @@ def _complete_users_list(base_ready, user_ready) -> dict: """Use the data we were already preparing to send in READY to construct the users array, saving on I/O cost.""" - # TODO deduplication - users_list = [] + users_to_send = {} for guild in base_ready["guilds"]: if guild["unavailable"]: continue for member in guild["members"]: - users_list.append(member["user"]) + users_to_send[member["user"]["id"]] = member["user"] for private_channel in base_ready["private_channels"]: for recipient in private_channel["recipients"]: - users_list.append(recipient) + users_to_send[recipient["id"]] = recipient ready = {**base_ready, **user_ready} - ready["users"] = users_list + ready["users"] = [value for value in users_to_send.values()] return ready