Format with black
This commit is contained in:
@@ -161,7 +161,9 @@ class ObjectConverter(IDConverter[discord.Object]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.Object:
|
||||
match = self._get_id_match(argument) or re.match(r"<(?:@(?:!|&)?|#)([0-9]{15,20})>$", argument)
|
||||
match = self._get_id_match(argument) or re.match(
|
||||
r"<(?:@(?:!|&)?|#)([0-9]{15,20})>$", argument
|
||||
)
|
||||
|
||||
if match is None:
|
||||
raise ObjectNotFound(argument)
|
||||
@@ -198,10 +200,14 @@ class MemberConverter(IDConverter[discord.Member]):
|
||||
if len(argument) > 5 and argument[-5] == "#":
|
||||
username, _, discriminator = argument.rpartition("#")
|
||||
members = await guild.query_members(username, limit=100, cache=cache)
|
||||
return discord.utils.get(members, name=username, discriminator=discriminator)
|
||||
return discord.utils.get(
|
||||
members, name=username, discriminator=discriminator
|
||||
)
|
||||
else:
|
||||
members = await guild.query_members(argument, limit=100, cache=cache)
|
||||
return discord.utils.find(lambda m: m.name == argument or m.nick == argument, members)
|
||||
return discord.utils.find(
|
||||
lambda m: m.name == argument or m.nick == argument, members
|
||||
)
|
||||
|
||||
async def query_member_by_id(self, bot, guild, user_id):
|
||||
ws = bot._get_websocket(shard_id=guild.shard_id)
|
||||
@@ -226,7 +232,9 @@ class MemberConverter(IDConverter[discord.Member]):
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.Member:
|
||||
bot = ctx.bot
|
||||
match = self._get_id_match(argument) or re.match(r"<@!?([0-9]{15,20})>$", argument)
|
||||
match = self._get_id_match(argument) or re.match(
|
||||
r"<@!?([0-9]{15,20})>$", argument
|
||||
)
|
||||
guild = ctx.guild
|
||||
result = None
|
||||
user_id = None
|
||||
@@ -239,7 +247,9 @@ class MemberConverter(IDConverter[discord.Member]):
|
||||
else:
|
||||
user_id = int(match.group(1))
|
||||
if guild:
|
||||
result = guild.get_member(user_id) or _utils_get(ctx.message.mentions, id=user_id)
|
||||
result = guild.get_member(user_id) or _utils_get(
|
||||
ctx.message.mentions, id=user_id
|
||||
)
|
||||
else:
|
||||
result = _get_from_guilds(bot, "get_member", user_id)
|
||||
|
||||
@@ -279,13 +289,17 @@ class UserConverter(IDConverter[discord.User]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.User:
|
||||
match = self._get_id_match(argument) or re.match(r"<@!?([0-9]{15,20})>$", argument)
|
||||
match = self._get_id_match(argument) or re.match(
|
||||
r"<@!?([0-9]{15,20})>$", argument
|
||||
)
|
||||
result = None
|
||||
state = ctx._state
|
||||
|
||||
if match is not None:
|
||||
user_id = int(match.group(1))
|
||||
result = ctx.bot.get_user(user_id) or _utils_get(ctx.message.mentions, id=user_id)
|
||||
result = ctx.bot.get_user(user_id) or _utils_get(
|
||||
ctx.message.mentions, id=user_id
|
||||
)
|
||||
if result is None:
|
||||
try:
|
||||
result = await ctx.bot.fetch_user(user_id)
|
||||
@@ -333,7 +347,9 @@ class PartialMessageConverter(Converter[discord.PartialMessage]):
|
||||
|
||||
@staticmethod
|
||||
def _get_id_matches(ctx, argument):
|
||||
id_regex = re.compile(r"(?:(?P<channel_id>[0-9]{15,20})-)?(?P<message_id>[0-9]{15,20})$")
|
||||
id_regex = re.compile(
|
||||
r"(?:(?P<channel_id>[0-9]{15,20})-)?(?P<message_id>[0-9]{15,20})$"
|
||||
)
|
||||
link_regex = re.compile(
|
||||
r"https?://(?:(ptb|canary|www)\.)?discord(?:app)?\.com/channels/"
|
||||
r"(?P<guild_id>[0-9]{15,20}|@me)"
|
||||
@@ -355,7 +371,9 @@ class PartialMessageConverter(Converter[discord.PartialMessage]):
|
||||
return guild_id, message_id, channel_id
|
||||
|
||||
@staticmethod
|
||||
def _resolve_channel(ctx, guild_id, channel_id) -> Optional[PartialMessageableChannel]:
|
||||
def _resolve_channel(
|
||||
ctx, guild_id, channel_id
|
||||
) -> Optional[PartialMessageableChannel]:
|
||||
if guild_id is not None:
|
||||
guild = ctx.bot.get_guild(guild_id)
|
||||
if guild is not None and channel_id is not None:
|
||||
@@ -389,7 +407,9 @@ class MessageConverter(IDConverter[discord.Message]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.Message:
|
||||
guild_id, message_id, channel_id = PartialMessageConverter._get_id_matches(ctx, argument)
|
||||
guild_id, message_id, channel_id = PartialMessageConverter._get_id_matches(
|
||||
ctx, argument
|
||||
)
|
||||
message = ctx.bot._connection._get_message(message_id)
|
||||
if message:
|
||||
return message
|
||||
@@ -420,13 +440,19 @@ class GuildChannelConverter(IDConverter[discord.abc.GuildChannel]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.abc.GuildChannel:
|
||||
return self._resolve_channel(ctx, argument, "channels", discord.abc.GuildChannel)
|
||||
return self._resolve_channel(
|
||||
ctx, argument, "channels", discord.abc.GuildChannel
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _resolve_channel(ctx: Context, argument: str, attribute: str, type: Type[CT]) -> CT:
|
||||
def _resolve_channel(
|
||||
ctx: Context, argument: str, attribute: str, type: Type[CT]
|
||||
) -> CT:
|
||||
bot = ctx.bot
|
||||
|
||||
match = IDConverter._get_id_match(argument) or re.match(r"<#([0-9]{15,20})>$", argument)
|
||||
match = IDConverter._get_id_match(argument) or re.match(
|
||||
r"<#([0-9]{15,20})>$", argument
|
||||
)
|
||||
result = None
|
||||
guild = ctx.guild
|
||||
|
||||
@@ -454,10 +480,14 @@ class GuildChannelConverter(IDConverter[discord.abc.GuildChannel]):
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def _resolve_thread(ctx: Context, argument: str, attribute: str, type: Type[TT]) -> TT:
|
||||
def _resolve_thread(
|
||||
ctx: Context, argument: str, attribute: str, type: Type[TT]
|
||||
) -> TT:
|
||||
bot = ctx.bot
|
||||
|
||||
match = IDConverter._get_id_match(argument) or re.match(r"<#([0-9]{15,20})>$", argument)
|
||||
match = IDConverter._get_id_match(argument) or re.match(
|
||||
r"<#([0-9]{15,20})>$", argument
|
||||
)
|
||||
result = None
|
||||
guild = ctx.guild
|
||||
|
||||
@@ -494,7 +524,9 @@ class TextChannelConverter(IDConverter[discord.TextChannel]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.TextChannel:
|
||||
return GuildChannelConverter._resolve_channel(ctx, argument, "text_channels", discord.TextChannel)
|
||||
return GuildChannelConverter._resolve_channel(
|
||||
ctx, argument, "text_channels", discord.TextChannel
|
||||
)
|
||||
|
||||
|
||||
class VoiceChannelConverter(IDConverter[discord.VoiceChannel]):
|
||||
@@ -514,7 +546,9 @@ class VoiceChannelConverter(IDConverter[discord.VoiceChannel]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.VoiceChannel:
|
||||
return GuildChannelConverter._resolve_channel(ctx, argument, "voice_channels", discord.VoiceChannel)
|
||||
return GuildChannelConverter._resolve_channel(
|
||||
ctx, argument, "voice_channels", discord.VoiceChannel
|
||||
)
|
||||
|
||||
|
||||
class StageChannelConverter(IDConverter[discord.StageChannel]):
|
||||
@@ -533,7 +567,9 @@ class StageChannelConverter(IDConverter[discord.StageChannel]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.StageChannel:
|
||||
return GuildChannelConverter._resolve_channel(ctx, argument, "stage_channels", discord.StageChannel)
|
||||
return GuildChannelConverter._resolve_channel(
|
||||
ctx, argument, "stage_channels", discord.StageChannel
|
||||
)
|
||||
|
||||
|
||||
class CategoryChannelConverter(IDConverter[discord.CategoryChannel]):
|
||||
@@ -553,7 +589,9 @@ class CategoryChannelConverter(IDConverter[discord.CategoryChannel]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.CategoryChannel:
|
||||
return GuildChannelConverter._resolve_channel(ctx, argument, "categories", discord.CategoryChannel)
|
||||
return GuildChannelConverter._resolve_channel(
|
||||
ctx, argument, "categories", discord.CategoryChannel
|
||||
)
|
||||
|
||||
|
||||
class StoreChannelConverter(IDConverter[discord.StoreChannel]):
|
||||
@@ -572,7 +610,9 @@ class StoreChannelConverter(IDConverter[discord.StoreChannel]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.StoreChannel:
|
||||
return GuildChannelConverter._resolve_channel(ctx, argument, "channels", discord.StoreChannel)
|
||||
return GuildChannelConverter._resolve_channel(
|
||||
ctx, argument, "channels", discord.StoreChannel
|
||||
)
|
||||
|
||||
|
||||
class ThreadConverter(IDConverter[discord.Thread]):
|
||||
@@ -590,7 +630,9 @@ class ThreadConverter(IDConverter[discord.Thread]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.Thread:
|
||||
return GuildChannelConverter._resolve_thread(ctx, argument, "threads", discord.Thread)
|
||||
return GuildChannelConverter._resolve_thread(
|
||||
ctx, argument, "threads", discord.Thread
|
||||
)
|
||||
|
||||
|
||||
class ColourConverter(Converter[discord.Colour]):
|
||||
@@ -619,7 +661,9 @@ class ColourConverter(Converter[discord.Colour]):
|
||||
Added support for ``rgb`` function and 3-digit hex shortcuts
|
||||
"""
|
||||
|
||||
RGB_REGEX = re.compile(r"rgb\s*\((?P<r>[0-9]{1,3}%?)\s*,\s*(?P<g>[0-9]{1,3}%?)\s*,\s*(?P<b>[0-9]{1,3}%?)\s*\)")
|
||||
RGB_REGEX = re.compile(
|
||||
r"rgb\s*\((?P<r>[0-9]{1,3}%?)\s*,\s*(?P<g>[0-9]{1,3}%?)\s*,\s*(?P<b>[0-9]{1,3}%?)\s*\)"
|
||||
)
|
||||
|
||||
def parse_hex_number(self, argument):
|
||||
arg = "".join(i * 2 for i in argument) if len(argument) == 3 else argument
|
||||
@@ -700,7 +744,9 @@ class RoleConverter(IDConverter[discord.Role]):
|
||||
if not guild:
|
||||
raise NoPrivateMessage()
|
||||
|
||||
match = self._get_id_match(argument) or re.match(r"<@&([0-9]{15,20})>$", argument)
|
||||
match = self._get_id_match(argument) or re.match(
|
||||
r"<@&([0-9]{15,20})>$", argument
|
||||
)
|
||||
if match:
|
||||
result = guild.get_role(int(match.group(1)))
|
||||
else:
|
||||
@@ -779,7 +825,9 @@ class EmojiConverter(IDConverter[discord.Emoji]):
|
||||
"""
|
||||
|
||||
async def convert(self, ctx: Context, argument: str) -> discord.Emoji:
|
||||
match = self._get_id_match(argument) or re.match(r"<a?:[a-zA-Z0-9\_]{1,32}:([0-9]{15,20})>$", argument)
|
||||
match = self._get_id_match(argument) or re.match(
|
||||
r"<a?:[a-zA-Z0-9\_]{1,32}:([0-9]{15,20})>$", argument
|
||||
)
|
||||
result = None
|
||||
bot = ctx.bot
|
||||
guild = ctx.guild
|
||||
@@ -821,7 +869,10 @@ class PartialEmojiConverter(Converter[discord.PartialEmoji]):
|
||||
emoji_id = int(match.group(3))
|
||||
|
||||
return discord.PartialEmoji.with_state(
|
||||
ctx.bot._connection, animated=emoji_animated, name=emoji_name, id=emoji_id
|
||||
ctx.bot._connection,
|
||||
animated=emoji_animated,
|
||||
name=emoji_name,
|
||||
id=emoji_id,
|
||||
)
|
||||
|
||||
raise PartialEmojiConversionFailure(argument)
|
||||
@@ -906,7 +957,11 @@ class clean_content(Converter[str]):
|
||||
|
||||
def resolve_member(id: int) -> str:
|
||||
m = _utils_get(msg.mentions, id=id) or ctx.guild.get_member(id)
|
||||
return f"@{m.display_name if self.use_nicknames else m.name}" if m else "@deleted-user"
|
||||
return (
|
||||
f"@{m.display_name if self.use_nicknames else m.name}"
|
||||
if m
|
||||
else "@deleted-user"
|
||||
)
|
||||
|
||||
def resolve_role(id: int) -> str:
|
||||
r = _utils_get(msg.role_mentions, id=id) or ctx.guild.get_role(id)
|
||||
@@ -996,7 +1051,11 @@ class Greedy(List[T]):
|
||||
origin = getattr(converter, "__origin__", None)
|
||||
args = getattr(converter, "__args__", ())
|
||||
|
||||
if not (callable(converter) or isinstance(converter, Converter) or origin is not None):
|
||||
if not (
|
||||
callable(converter)
|
||||
or isinstance(converter, Converter)
|
||||
or origin is not None
|
||||
):
|
||||
raise TypeError("Greedy[...] expects a type or a Converter instance.")
|
||||
|
||||
if converter in (str, type(None)) or origin is Greedy:
|
||||
@@ -1044,7 +1103,13 @@ class Option(Generic[T, DT]): # type: ignore
|
||||
"name",
|
||||
)
|
||||
|
||||
def __init__(self, default: T = inspect.Parameter.empty, *, description: DT, name: str = discord.utils.MISSING) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
default: T = inspect.Parameter.empty,
|
||||
*,
|
||||
description: DT,
|
||||
name: str = discord.utils.MISSING,
|
||||
) -> None:
|
||||
self.description = description
|
||||
self.default = default
|
||||
self.name: str = name
|
||||
@@ -1052,7 +1117,12 @@ class Option(Generic[T, DT]): # type: ignore
|
||||
|
||||
if TYPE_CHECKING:
|
||||
# Terrible workaround for type checking reasons
|
||||
def Option(default: T = inspect.Parameter.empty, *, description: str, name: str = discord.utils.MISSING) -> T:
|
||||
def Option(
|
||||
default: T = inspect.Parameter.empty,
|
||||
*,
|
||||
description: str,
|
||||
name: str = discord.utils.MISSING,
|
||||
) -> T:
|
||||
...
|
||||
|
||||
|
||||
@@ -1107,7 +1177,9 @@ CONVERTER_MAPPING: Dict[Type[Any], Any] = {
|
||||
}
|
||||
|
||||
|
||||
async def _actual_conversion(ctx: Context, converter, argument: str, param: inspect.Parameter):
|
||||
async def _actual_conversion(
|
||||
ctx: Context, converter, argument: str, param: inspect.Parameter
|
||||
):
|
||||
if converter is bool:
|
||||
return _convert_to_bool(argument)
|
||||
|
||||
@@ -1116,7 +1188,9 @@ async def _actual_conversion(ctx: Context, converter, argument: str, param: insp
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
if module is not None and (module.startswith("discord.") and not module.endswith("converter")):
|
||||
if module is not None and (
|
||||
module.startswith("discord.") and not module.endswith("converter")
|
||||
):
|
||||
converter = CONVERTER_MAPPING.get(converter, converter)
|
||||
|
||||
try:
|
||||
@@ -1142,10 +1216,14 @@ async def _actual_conversion(ctx: Context, converter, argument: str, param: insp
|
||||
except AttributeError:
|
||||
name = converter.__class__.__name__
|
||||
|
||||
raise BadArgument(f'Converting to "{name}" failed for parameter "{param.name}".') from exc
|
||||
raise BadArgument(
|
||||
f'Converting to "{name}" failed for parameter "{param.name}".'
|
||||
) from exc
|
||||
|
||||
|
||||
async def run_converters(ctx: Context, converter, argument: str, param: inspect.Parameter):
|
||||
async def run_converters(
|
||||
ctx: Context, converter, argument: str, param: inspect.Parameter
|
||||
):
|
||||
"""|coro|
|
||||
|
||||
Runs converters for a given converter, argument, and parameter.
|
||||
|
Reference in New Issue
Block a user