Don't expose Client.messages
Not entirely sure why it was exposed in the first place. Most uses with it essentially boiled down to mis-usage when they meant to use the /messages endpoint (via Client.logs_from or Messageable.history) or complaining about the partial data woes that came from it.
This commit is contained in:
		| @@ -66,7 +66,6 @@ class Client: | |||||||
|  |  | ||||||
|     A number of options can be passed to the :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 |     .. _event loop: https://docs.python.org/3/library/asyncio-eventloops.html | ||||||
|     .. _connector: http://aiohttp.readthedocs.org/en/stable/client_reference.html#connectors |     .. _connector: http://aiohttp.readthedocs.org/en/stable/client_reference.html#connectors | ||||||
|     .. _ProxyConnector: http://aiohttp.readthedocs.org/en/stable/client_reference.html#proxyconnector |     .. _ProxyConnector: http://aiohttp.readthedocs.org/en/stable/client_reference.html#proxyconnector | ||||||
| @@ -74,7 +73,7 @@ class Client: | |||||||
|     Parameters |     Parameters | ||||||
|     ---------- |     ---------- | ||||||
|     max_messages : Optional[int] |     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 |         This defaults to 5000. Passing in `None` or a value less than 100 | ||||||
|         will use the default instead of the passed in value. |         will use the default instead of the passed in value. | ||||||
|     loop : Optional[event loop] |     loop : Optional[event loop] | ||||||
| @@ -183,16 +182,6 @@ class Client: | |||||||
|         """List[:class:`abc.PrivateChannel`]: The private channels that the connected client is participating on.""" |         """List[:class:`abc.PrivateChannel`]: The private channels that the connected client is participating on.""" | ||||||
|         return self._connection.private_channels |         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 |     @property | ||||||
|     def voice_clients(self): |     def voice_clients(self): | ||||||
|         """List[:class:`VoiceClient`]: Represents a list of voice connections.""" |         """List[:class:`VoiceClient`]: Represents a list of voice connections.""" | ||||||
|   | |||||||
| @@ -91,7 +91,7 @@ class ConnectionState: | |||||||
|         self._private_channels = {} |         self._private_channels = {} | ||||||
|         # extra dict to look up private channels by user id |         # extra dict to look up private channels by user id | ||||||
|         self._private_channels_by_user = {} |         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): |     def process_listeners(self, listener_type, argument, result): | ||||||
|         removed = [] |         removed = [] | ||||||
| @@ -209,7 +209,7 @@ class ConnectionState: | |||||||
|             self._private_channels_by_user.pop(channel.recipient.id, None) |             self._private_channels_by_user.pop(channel.recipient.id, None) | ||||||
|  |  | ||||||
|     def _get_message(self, msg_id): |     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): |     def _add_guild_from_data(self, guild): | ||||||
|         guild = Guild(data=guild, state=self) |         guild = Guild(data=guild, state=self) | ||||||
| @@ -310,21 +310,21 @@ class ConnectionState: | |||||||
|         channel = self.get_channel(int(data['channel_id'])) |         channel = self.get_channel(int(data['channel_id'])) | ||||||
|         message = Message(channel=channel, data=data, state=self) |         message = Message(channel=channel, data=data, state=self) | ||||||
|         self.dispatch('message', message) |         self.dispatch('message', message) | ||||||
|         self.messages.append(message) |         self._messages.append(message) | ||||||
|  |  | ||||||
|     def parse_message_delete(self, data): |     def parse_message_delete(self, data): | ||||||
|         message_id = int(data['id']) |         message_id = int(data['id']) | ||||||
|         found = self._get_message(message_id) |         found = self._get_message(message_id) | ||||||
|         if found is not None: |         if found is not None: | ||||||
|             self.dispatch('message_delete', found) |             self.dispatch('message_delete', found) | ||||||
|             self.messages.remove(found) |             self._messages.remove(found) | ||||||
|  |  | ||||||
|     def parse_message_delete_bulk(self, data): |     def parse_message_delete_bulk(self, data): | ||||||
|         message_ids = set(map(int, data.get('ids', []))) |         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: |         for msg in to_be_deleted: | ||||||
|             self.dispatch('message_delete', msg) |             self.dispatch('message_delete', msg) | ||||||
|             self.messages.remove(msg) |             self._messages.remove(msg) | ||||||
|  |  | ||||||
|     def parse_message_update(self, data): |     def parse_message_update(self, data): | ||||||
|         message = self._get_message(int(data['id'])) |         message = self._get_message(int(data['id'])) | ||||||
| @@ -630,7 +630,7 @@ class ConnectionState: | |||||||
|             return |             return | ||||||
|  |  | ||||||
|         # do a cleanup of the messages cache |         # 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._remove_guild(guild) | ||||||
|         self.dispatch('guild_remove', guild) |         self.dispatch('guild_remove', guild) | ||||||
|   | |||||||
| @@ -195,6 +195,8 @@ A list of these changes is enumerated below. | |||||||
| +---------------------------------------+------------------------------------------------------------------------------+ | +---------------------------------------+------------------------------------------------------------------------------+ | ||||||
| | ``Client.wait_until_login``           | Removed                                                                      | | | ``Client.wait_until_login``           | Removed                                                                      | | ||||||
| +---------------------------------------+------------------------------------------------------------------------------+ | +---------------------------------------+------------------------------------------------------------------------------+ | ||||||
|  | | ``Client.messages``                   | Removed                                                                      | | ||||||
|  | +---------------------------------------+------------------------------------------------------------------------------+ | ||||||
| | ``Client.wait_until_ready``           | No change                                                                    | | | ``Client.wait_until_ready``           | No change                                                                    | | ||||||
| +---------------------------------------+------------------------------------------------------------------------------+ | +---------------------------------------+------------------------------------------------------------------------------+ | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user