diff options
| author | Rapptz <[email protected]> | 2015-11-20 17:39:19 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2015-11-20 17:39:51 -0500 |
| commit | 5ca04ea08f3d64d4e2bfb1b86c7a8a01b2480f87 (patch) | |
| tree | 80501a19e4320067c808ab8d5c3a6ccc824461f8 | |
| parent | Allow sending raw file objects in memory with client.send_raw_file (diff) | |
| download | discord.py-5ca04ea08f3d64d4e2bfb1b86c7a8a01b2480f87.tar.xz discord.py-5ca04ea08f3d64d4e2bfb1b86c7a8a01b2480f87.zip | |
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.
| -rw-r--r-- | discord/client.py | 10 | ||||
| -rw-r--r-- | discord/member.py | 17 |
2 files changed, 18 insertions, 9 deletions
diff --git a/discord/client.py b/discord/client.py index 12bc6766..9d1ae27c 100644 --- a/discord/client.py +++ b/discord/client.py @@ -311,8 +311,11 @@ class ConnectionState(object): if server is not None: user_id = data['user']['id'] member = utils.find(lambda m: m.id == user_id, server.members) - if member in server.members: + try: server.members.remove(member) + except ValueError: + return + else: self.dispatch('member_remove', member) def handle_guild_member_update(self, data): @@ -364,8 +367,11 @@ class ConnectionState(object): self.dispatch('server_unavailable', server) return - if server in self.servers: + try: self.servers.remove(server) + except ValueError: + return + else: self.dispatch('server_remove', server) def handle_guild_role_create(self, data): diff --git a/discord/member.py b/discord/member.py index 794f6729..b8597e8e 100644 --- a/discord/member.py +++ b/discord/member.py @@ -95,11 +95,14 @@ class Member(User): if old_channel is None and self.voice_channel is not None: # we joined a channel self.voice_channel.voice_members.append(self) - elif old_channel is not None and self.voice_channel is None: - if self in old_channel.voice_members: - # we left a channel + elif old_channel is not None: + try: + # we either left a channel or we switched channels old_channel.voice_members.remove(self) - elif old_channel is not None and self.voice_channel is not None: - if self in old_channel.voice_members: - old_channel.voice_members.remove(self) - self.voice_channel.voice_members.append(self) + except ValueError: + pass + finally: + # we switched channels + if self.voice_channel is not None: + self.voice_channel.voice_members.append(self) + |