[commands] Fix error in converters in a private message context.

I was referencing a member function that did not actually exist. So I
ported it over to a free function that could be used.
This commit is contained in:
Rapptz 2016-07-02 23:38:59 -04:00
parent 4d71b3fe7d
commit 1500001b04
2 changed files with 11 additions and 11 deletions

View File

@ -34,6 +34,14 @@ __all__ = [ 'Converter', 'MemberConverter', 'UserConverter',
'ChannelConverter', 'InviteConverter', 'RoleConverter',
'GameConverter', 'ColourConverter' ]
def _get_from_servers(bot, getter, argument):
result = None
for server in bot.servers:
result = getattr(server, getter)(argument)
if result:
return result
return result
class Converter:
"""The base class of custom converters that require the :class:`Context`
to be passed to be useful.
@ -72,13 +80,13 @@ class MemberConverter(Converter):
if server:
result = server.get_member_named(self.argument)
else:
result = self._get_from_servers(bot, 'get_member_named', self.argument)
result = _get_from_servers(bot, 'get_member_named', self.argument)
else:
user_id = match.group(1)
if server:
result = server.get_member(user_id)
else:
result = self._get_from_servers(bot, 'get_member', user_id)
result = _get_from_servers(bot, 'get_member', user_id)
if result is None:
raise BadArgument('Member "{}" not found'.format(self.argument))
@ -106,7 +114,7 @@ class ChannelConverter(Converter):
if server:
result = server.get_channel(channel_id)
else:
result = self._get_from_servers(bot, 'get_channel', channel_id)
result = _get_from_servers(bot, 'get_channel', channel_id)
if result is None:
raise BadArgument('Channel "{}" not found.'.format(self.argument))

View File

@ -158,14 +158,6 @@ class Command:
finally:
ctx.bot.dispatch('command_error', error, ctx)
def _get_from_servers(self, bot, getter, argument):
result = None
for server in bot.servers:
result = getattr(server, getter)(argument)
if result:
return result
return result
@asyncio.coroutine
def do_conversion(self, ctx, converter, argument):
if converter is bool: