From 808a05ff2dd37c63020d099827e4248b4e49059d Mon Sep 17 00:00:00 2001 From: Rapptz Date: Wed, 4 Jan 2017 05:16:59 -0500 Subject: Move global user cache to a WeakValueDictionary. --- discord/state.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'discord/state.py') diff --git a/discord/state.py b/discord/state.py index e839d5ab..1629b8db 100644 --- a/discord/state.py +++ b/discord/state.py @@ -42,6 +42,7 @@ import copy, enum, math import datetime import asyncio import logging +import weakref class ListenerType(enum.Enum): chunk = 0 @@ -66,8 +67,8 @@ class ConnectionState: self.user = None self.sequence = None self.session_id = None + self._users = weakref.WeakValueDictionary() self._calls = {} - self._users = {} self._emojis = {} self._guilds = {} self._voice_clients = {} @@ -133,6 +134,9 @@ class ConnectionState: self._users[user_id] = user = User(state=self, data=data) return user + def get_user(self, id): + return self._users.get(id) + def store_emoji(self, guild, data): emoji_id = int(data['id']) try: -- cgit v1.2.3