Browse Source

Use try-except instead of checking for membership.

Basically, a lot of the checks revolving "if x in y" could be written
more efficiently by doing the task anyway and ignoring the exception
a la the EAFP guideline.
pull/35/merge
Rapptz 10 years ago
parent
commit
5ca04ea08f
  1. 10
      discord/client.py
  2. 17
      discord/member.py

10
discord/client.py

@ -311,8 +311,11 @@ class ConnectionState(object):
if server is not None: if server is not None:
user_id = data['user']['id'] user_id = data['user']['id']
member = utils.find(lambda m: m.id == user_id, server.members) member = utils.find(lambda m: m.id == user_id, server.members)
if member in server.members: try:
server.members.remove(member) server.members.remove(member)
except ValueError:
return
else:
self.dispatch('member_remove', member) self.dispatch('member_remove', member)
def handle_guild_member_update(self, data): def handle_guild_member_update(self, data):
@ -364,8 +367,11 @@ class ConnectionState(object):
self.dispatch('server_unavailable', server) self.dispatch('server_unavailable', server)
return return
if server in self.servers: try:
self.servers.remove(server) self.servers.remove(server)
except ValueError:
return
else:
self.dispatch('server_remove', server) self.dispatch('server_remove', server)
def handle_guild_role_create(self, data): def handle_guild_role_create(self, data):

17
discord/member.py

@ -95,11 +95,14 @@ class Member(User):
if old_channel is None and self.voice_channel is not None: if old_channel is None and self.voice_channel is not None:
# we joined a channel # we joined a channel
self.voice_channel.voice_members.append(self) self.voice_channel.voice_members.append(self)
elif old_channel is not None and self.voice_channel is None: elif old_channel is not None:
if self in old_channel.voice_members: try:
# we left a channel # we either left a channel or we switched channels
old_channel.voice_members.remove(self) old_channel.voice_members.remove(self)
elif old_channel is not None and self.voice_channel is not None: except ValueError:
if self in old_channel.voice_members: pass
old_channel.voice_members.remove(self) finally:
self.voice_channel.voice_members.append(self) # we switched channels
if self.voice_channel is not None:
self.voice_channel.voice_members.append(self)

Loading…
Cancel
Save