diff --git a/discord/client.py b/discord/client.py index 399cc7b45..56c1a7e4d 100644 --- a/discord/client.py +++ b/discord/client.py @@ -66,7 +66,6 @@ class Client: A number of options can be passed to the :class:`Client`. - .. _deque: https://docs.python.org/3.4/library/collections.html#collections.deque .. _event loop: https://docs.python.org/3/library/asyncio-eventloops.html .. _connector: http://aiohttp.readthedocs.org/en/stable/client_reference.html#connectors .. _ProxyConnector: http://aiohttp.readthedocs.org/en/stable/client_reference.html#proxyconnector @@ -74,7 +73,7 @@ class Client: Parameters ---------- max_messages : Optional[int] - The maximum number of messages to store in :attr:`messages`. + The maximum number of messages to store in the internal message cache. This defaults to 5000. Passing in `None` or a value less than 100 will use the default instead of the passed in value. loop : Optional[event loop] @@ -183,16 +182,6 @@ class Client: """List[:class:`abc.PrivateChannel`]: The private channels that the connected client is participating on.""" return self._connection.private_channels - @property - def messages(self): - """A deque_ of :class:`Message` that the client has received from all - guilds and private messages. - - The number of messages stored in this deque is controlled by the - ``max_messages`` parameter. - """ - return self._connection.messages - @property def voice_clients(self): """List[:class:`VoiceClient`]: Represents a list of voice connections.""" diff --git a/discord/state.py b/discord/state.py index 9487371df..aaa3aa547 100644 --- a/discord/state.py +++ b/discord/state.py @@ -91,7 +91,7 @@ class ConnectionState: self._private_channels = {} # extra dict to look up private channels by user id self._private_channels_by_user = {} - self.messages = deque(maxlen=self.max_messages) + self._messages = deque(maxlen=self.max_messages) def process_listeners(self, listener_type, argument, result): removed = [] @@ -209,7 +209,7 @@ class ConnectionState: self._private_channels_by_user.pop(channel.recipient.id, None) def _get_message(self, msg_id): - return utils.find(lambda m: m.id == msg_id, self.messages) + return utils.find(lambda m: m.id == msg_id, self._messages) def _add_guild_from_data(self, guild): guild = Guild(data=guild, state=self) @@ -310,21 +310,21 @@ class ConnectionState: channel = self.get_channel(int(data['channel_id'])) message = Message(channel=channel, data=data, state=self) self.dispatch('message', message) - self.messages.append(message) + self._messages.append(message) def parse_message_delete(self, data): message_id = int(data['id']) found = self._get_message(message_id) if found is not None: self.dispatch('message_delete', found) - self.messages.remove(found) + self._messages.remove(found) def parse_message_delete_bulk(self, data): message_ids = set(map(int, data.get('ids', []))) - to_be_deleted = list(filter(lambda m: m.id in message_ids, self.messages)) + to_be_deleted = list(filter(lambda m: m.id in message_ids, self._messages)) for msg in to_be_deleted: self.dispatch('message_delete', msg) - self.messages.remove(msg) + self._messages.remove(msg) def parse_message_update(self, data): message = self._get_message(int(data['id'])) @@ -630,7 +630,7 @@ class ConnectionState: return # do a cleanup of the messages cache - self.messages = deque((msg for msg in self.messages if msg.guild != guild), maxlen=self.max_messages) + self._messages = deque((msg for msg in self._messages if msg.guild != guild), maxlen=self.max_messages) self._remove_guild(guild) self.dispatch('guild_remove', guild) diff --git a/docs/migrating.rst b/docs/migrating.rst index 6389863a9..1b76a5181 100644 --- a/docs/migrating.rst +++ b/docs/migrating.rst @@ -195,6 +195,8 @@ A list of these changes is enumerated below. +---------------------------------------+------------------------------------------------------------------------------+ | ``Client.wait_until_login`` | Removed | +---------------------------------------+------------------------------------------------------------------------------+ +| ``Client.messages`` | Removed | ++---------------------------------------+------------------------------------------------------------------------------+ | ``Client.wait_until_ready`` | No change | +---------------------------------------+------------------------------------------------------------------------------+