aboutsummaryrefslogtreecommitdiff
path: root/discord/state.py
diff options
context:
space:
mode:
authorVexs <[email protected]>2019-03-23 21:46:05 -0500
committerRapptz <[email protected]>2019-04-06 19:18:06 -0400
commit9591b00dcfb79a18288211473006fe562518b307 (patch)
tree96074f457784f0cf0b5d03d287b34bcbd91d72ce /discord/state.py
parentRedesign asset retrieval in the library. (diff)
downloaddiscord.py-9591b00dcfb79a18288211473006fe562518b307.tar.xz
discord.py-9591b00dcfb79a18288211473006fe562518b307.zip
Redesign bulk delete events
Change `parse_message_delete_bulk` to not dispatch individual `message_delete` events, and instead `bulk_message_delete`. Also make `raw_bulk_message` delete and `raw_message_delete` have message objects attached. Fixes #1807
Diffstat (limited to 'discord/state.py')
-rw-r--r--discord/state.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/discord/state.py b/discord/state.py
index ebde9ec0..11c58612 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -366,21 +366,22 @@ class ConnectionState:
def parse_message_delete(self, data):
raw = RawMessageDeleteEvent(data)
- self.dispatch('raw_message_delete', raw)
-
found = self._get_message(raw.message_id)
+ raw.cached_message = found
+ self.dispatch('raw_message_delete', raw)
if found is not None:
self.dispatch('message_delete', found)
self._messages.remove(found)
def parse_message_delete_bulk(self, data):
raw = RawBulkMessageDeleteEvent(data)
+ found_messages = [message for message in self._messages if message.id in raw.message_ids]
+ raw.cached_messages = found_messages
self.dispatch('raw_bulk_message_delete', raw)
-
- to_be_deleted = [message for message in self._messages if message.id in raw.message_ids]
- for msg in to_be_deleted:
- self.dispatch('message_delete', msg)
- self._messages.remove(msg)
+ if found_messages:
+ self.dispatch('bulk_message_delete', found_messages)
+ for msg in found_messages:
+ self._messages.remove(msg)
def parse_message_update(self, data):
raw = RawMessageUpdateEvent(data)