aboutsummaryrefslogtreecommitdiff
path: root/discord/client.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2015-11-28 19:17:50 -0500
committerRapptz <[email protected]>2015-11-28 19:17:50 -0500
commite10b6c767ba52e5068eba1e68c8364b781f40f03 (patch)
treeb320aad86406fdc26625dc3aa8de4f0b7a2229eb /discord/client.py
parentAdd new_member.py example to showcase messaging new members. (diff)
downloaddiscord.py-e10b6c767ba52e5068eba1e68c8364b781f40f03.tar.xz
discord.py-e10b6c767ba52e5068eba1e68c8364b781f40f03.zip
Move server parsing code from Client to Server.
Diffstat (limited to 'discord/client.py')
-rw-r--r--discord/client.py46
1 files changed, 2 insertions, 44 deletions
diff --git a/discord/client.py b/discord/client.py
index 73dc26fc..b984b5af 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -146,50 +146,8 @@ class ConnectionState(object):
def _get_server(self, guild_id):
return utils.find(lambda g: g.id == guild_id, self.servers)
- def _update_voice_state(self, server, data):
- user_id = data.get('user_id')
- member = utils.find(lambda m: m.id == user_id, server.members)
- if member is not None:
- ch_id = data.get('channel_id')
- channel = utils.find(lambda c: c.id == ch_id, server.channels)
- member.update_voice_state(voice_channel=channel, **data)
- return member
-
def _add_server(self, guild):
- guild['roles'] = [Role(everyone=(guild['id'] == role['id']), **role) for role in guild['roles']]
- members = guild['members']
- owner = guild['owner_id']
- for i, member in enumerate(members):
- roles = member['roles']
- for j, roleid in enumerate(roles):
- role = utils.find(lambda r: r.id == roleid, guild['roles'])
- if role is not None:
- roles[j] = role
- members[i] = Member(**member)
-
- # found the member that owns the server
- if members[i].id == owner:
- owner = members[i]
-
- for presence in guild['presences']:
- user_id = presence['user']['id']
- member = utils.find(lambda m: m.id == user_id, members)
- if member is not None:
- member.status = presence['status']
- member.game_id = presence['game_id']
-
-
- server = Server(owner=owner, **guild)
-
- # give all the members their proper server
- for member in server.members:
- member.server = server
-
- channels = [Channel(server=server, **channel)
- for channel in guild['channels']]
- server.channels = channels
- for obj in guild.get('voice_states', []):
- self._update_voice_state(server, obj)
+ server = Server(**guild)
self.servers.append(server)
def handle_ready(self, data):
@@ -393,7 +351,7 @@ class ConnectionState(object):
def handle_voice_state_update(self, data):
server = self._get_server(data.get('guild_id'))
if server is not None:
- updated_member = self._update_voice_state(server, data)
+ updated_member = server._update_voice_state(data)
self.dispatch('voice_state_update', updated_member)
def handle_typing_start(self, data):