aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/state.py26
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)