mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-09-04 08:56:19 +00:00
Run black on all examples and require it for CI
This commit is contained in:
@ -33,6 +33,7 @@ async def userinfo(ctx: commands.Context, user: discord.User):
|
||||
avatar = user.display_avatar.url
|
||||
await ctx.send(f'User found: {user_id} -- {username}\n{avatar}')
|
||||
|
||||
|
||||
@userinfo.error
|
||||
async def userinfo_error(ctx: commands.Context, error: commands.CommandError):
|
||||
# if the conversion above fails for any reason, it will raise `commands.BadArgument`
|
||||
@ -40,6 +41,7 @@ async def userinfo_error(ctx: commands.Context, error: commands.CommandError):
|
||||
if isinstance(error, commands.BadArgument):
|
||||
return await ctx.send('Couldn\'t find that user.')
|
||||
|
||||
|
||||
# Custom Converter here
|
||||
class ChannelOrMemberConverter(commands.Converter):
|
||||
async def convert(self, ctx: commands.Context, argument: str):
|
||||
@ -75,16 +77,16 @@ class ChannelOrMemberConverter(commands.Converter):
|
||||
raise commands.BadArgument(f'No Member or TextChannel could be converted from "{argument}"')
|
||||
|
||||
|
||||
|
||||
@bot.command()
|
||||
async def notify(ctx: commands.Context, target: ChannelOrMemberConverter):
|
||||
# This command signature utilises the custom converter written above
|
||||
# What will happen during command invocation is that the `target` above will be passed to
|
||||
# the `argument` parameter of the `ChannelOrMemberConverter.convert` method and
|
||||
# the `argument` parameter of the `ChannelOrMemberConverter.convert` method and
|
||||
# the conversion will go through the process defined there.
|
||||
|
||||
await target.send(f'Hello, {target.name}!')
|
||||
|
||||
|
||||
@bot.command()
|
||||
async def ignore(ctx: commands.Context, target: typing.Union[discord.Member, discord.TextChannel]):
|
||||
# This command signature utilises the `typing.Union` typehint.
|
||||
@ -98,9 +100,10 @@ async def ignore(ctx: commands.Context, target: typing.Union[discord.Member, dis
|
||||
# To check the resulting type, `isinstance` is used
|
||||
if isinstance(target, discord.Member):
|
||||
await ctx.send(f'Member found: {target.mention}, adding them to the ignore list.')
|
||||
elif isinstance(target, discord.TextChannel): # this could be an `else` but for completeness' sake.
|
||||
elif isinstance(target, discord.TextChannel): # this could be an `else` but for completeness' sake.
|
||||
await ctx.send(f'Channel found: {target.mention}, adding it to the ignore list.')
|
||||
|
||||
|
||||
# Built-in type converters.
|
||||
@bot.command()
|
||||
async def multiply(ctx: commands.Context, number: int, maybe: bool):
|
||||
@ -112,4 +115,5 @@ async def multiply(ctx: commands.Context, number: int, maybe: bool):
|
||||
return await ctx.send(number * 2)
|
||||
await ctx.send(number * 5)
|
||||
|
||||
|
||||
bot.run('token')
|
||||
|
Reference in New Issue
Block a user