diff options
| author | Rapptz <[email protected]> | 2016-03-06 14:41:31 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2016-03-06 14:41:31 -0500 |
| commit | 80587fc1e9b8056eb95fef8abee984154adca3aa (patch) | |
| tree | 194ae7ff6e92af7c5f607fd8d430f3148f2604f7 | |
| parent | Fix bug where large servers in GUILD_CREATE did not get chunked. (diff) | |
| download | discord.py-80587fc1e9b8056eb95fef8abee984154adca3aa.tar.xz discord.py-80587fc1e9b8056eb95fef8abee984154adca3aa.zip | |
Change parsing of READY to be eager again.
| -rw-r--r-- | discord/state.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/discord/state.py b/discord/state.py index e38fc89d..3913f214 100644 --- a/discord/state.py +++ b/discord/state.py @@ -133,20 +133,9 @@ class ConnectionState: yield self.receive_chunk(server.id) @asyncio.coroutine - def parse_ready(self, data): - self.user = User(**data['user']) - guilds = data.get('guilds') - - for guild in guilds: - self._add_server_from_data(guild) - - for pm in data.get('private_channels'): - self._add_private_channel(PrivateChannel(id=pm['id'], - user=User(**pm['recipient']))) - + def _fill_offline(self): # a chunk has a maximum of 1000 members. # we need to find out how many futures we're actually waiting for - large_servers = [s for s in self.servers if s.large] yield from self.chunker(large_servers) @@ -159,6 +148,19 @@ class ConnectionState: self.dispatch('ready') + def parse_ready(self, data): + self.user = User(**data['user']) + guilds = data.get('guilds') + + for guild in guilds: + self._add_server_from_data(guild) + + for pm in data.get('private_channels'): + self._add_private_channel(PrivateChannel(id=pm['id'], + user=User(**pm['recipient']))) + + utils.create_task(self._fill_offline(), loop=self.loop) + def parse_message_create(self, data): channel = self.get_channel(data.get('channel_id')) message = Message(channel=channel, **data) |