aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar TizzySaurus <[email protected]>2021-08-11 16:51:28 +0100
committerGravatar Izan <[email protected]>2021-08-22 19:56:32 +0100
commit17f3750cbe53eeb740795d77c192b5822d086a4b (patch)
treeec489cdc9e1455d11f1f83723e498b16cbcc6195
parentRemove converters made redundant by dpy V1.6's UserConverter update (diff)
Update to new converters
-rw-r--r--bot/exts/fun/duck_pond.py3
-rw-r--r--bot/exts/moderation/infraction/_scheduler.py6
-rw-r--r--bot/exts/moderation/infraction/_utils.py18
-rw-r--r--bot/exts/moderation/infraction/infractions.py5
-rw-r--r--bot/exts/moderation/infraction/management.py16
-rw-r--r--bot/exts/recruitment/talentpool/_cog.py2
6 files changed, 21 insertions, 29 deletions
diff --git a/bot/exts/fun/duck_pond.py b/bot/exts/fun/duck_pond.py
index c78b9c141..a8d927353 100644
--- a/bot/exts/fun/duck_pond.py
+++ b/bot/exts/fun/duck_pond.py
@@ -8,6 +8,7 @@ from discord.ext.commands import Cog, Context, command
from bot import constants
from bot.bot import Bot
+from bot.converters import FetchedMember
from bot.utils.checks import has_any_role
from bot.utils.messages import count_unique_users_reaction, send_attachments
from bot.utils.webhooks import send_webhook
@@ -36,7 +37,7 @@ class DuckPond(Cog):
log.exception(f"Failed to fetch webhook with id `{self.webhook_id}`")
@staticmethod
- def is_staff(member: Union[User, Member]) -> bool:
+ def is_staff(member: FetchedMember) -> bool:
"""Check if a specific member or user is staff."""
if hasattr(member, "roles"):
for role in member.roles:
diff --git a/bot/exts/moderation/infraction/_scheduler.py b/bot/exts/moderation/infraction/_scheduler.py
index 8286d3635..89869820c 100644
--- a/bot/exts/moderation/infraction/_scheduler.py
+++ b/bot/exts/moderation/infraction/_scheduler.py
@@ -13,8 +13,8 @@ from bot import constants
from bot.api import ResponseCodeError
from bot.bot import Bot
from bot.constants import Colours
+from bot.converters import FetchedMember
from bot.exts.moderation.infraction import _utils
-from bot.exts.moderation.infraction._utils import UserSnowflake
from bot.exts.moderation.modlog import ModLog
from bot.utils import messages, scheduling, time
from bot.utils.channel import is_mod_channel
@@ -115,7 +115,7 @@ class InfractionScheduler:
self,
ctx: Context,
infraction: _utils.Infraction,
- user: UserSnowflake,
+ user: FetchedMember,
action_coro: t.Optional[t.Awaitable] = None,
user_reason: t.Optional[str] = None,
additional_info: str = "",
@@ -264,7 +264,7 @@ class InfractionScheduler:
self,
ctx: Context,
infr_type: str,
- user: UserSnowflake,
+ user: FetchedMember,
send_msg: bool = True
) -> None:
"""
diff --git a/bot/exts/moderation/infraction/_utils.py b/bot/exts/moderation/infraction/_utils.py
index e3fcda730..9c3f9d804 100644
--- a/bot/exts/moderation/infraction/_utils.py
+++ b/bot/exts/moderation/infraction/_utils.py
@@ -7,6 +7,7 @@ from discord.ext.commands import Context
from bot.api import ResponseCodeError
from bot.constants import Colours, Icons
+from bot.converters import FetchedMember
from bot.errors import InvalidInfractedUserError
log = logging.getLogger(__name__)
@@ -43,7 +44,7 @@ INFRACTION_DESCRIPTION_TEMPLATE = (
)
-async def post_user(ctx: Context, user: UserSnowflake) -> t.Optional[dict]:
+async def post_user(ctx: Context, user: FetchedMember) -> t.Optional[dict]:
"""
Create a new user in the database.
@@ -51,9 +52,6 @@ async def post_user(ctx: Context, user: UserSnowflake) -> t.Optional[dict]:
"""
log.trace(f"Attempting to add user {user.id} to the database.")
- if not isinstance(user, (discord.Member, discord.User)):
- log.debug("The user being added to the DB is not a Member or User object.")
-
payload = {
'discriminator': int(getattr(user, 'discriminator', 0)),
'id': user.id,
@@ -73,7 +71,7 @@ async def post_user(ctx: Context, user: UserSnowflake) -> t.Optional[dict]:
async def post_infraction(
ctx: Context,
- user: UserSnowflake,
+ user: FetchedMember,
infr_type: str,
reason: str,
expires_at: datetime = None,
@@ -81,7 +79,7 @@ async def post_infraction(
active: bool = True
) -> t.Optional[dict]:
"""Posts an infraction to the API."""
- if isinstance(user, (discord.Member, discord.User)) and user.bot:
+ if isinstance(user, FetchedMember) and user.bot:
log.trace(f"Posting of {infr_type} infraction for {user} to the API aborted. User is a bot.")
raise InvalidInfractedUserError(user)
@@ -116,7 +114,7 @@ async def post_infraction(
async def get_active_infraction(
ctx: Context,
- user: UserSnowflake,
+ user: FetchedMember,
infr_type: str,
send_msg: bool = True
) -> t.Optional[dict]:
@@ -151,7 +149,7 @@ async def get_active_infraction(
async def notify_infraction(
- user: UserObject,
+ user: FetchedMember,
infr_type: str,
expires_at: t.Optional[str] = None,
reason: t.Optional[str] = None,
@@ -187,7 +185,7 @@ async def notify_infraction(
async def notify_pardon(
- user: UserObject,
+ user: FetchedMember,
title: str,
content: str,
icon_url: str = Icons.user_verified
@@ -205,7 +203,7 @@ async def notify_pardon(
return await send_private_embed(user, embed)
-async def send_private_embed(user: UserObject, embed: discord.Embed) -> bool:
+async def send_private_embed(user: FetchedMember, embed: discord.Embed) -> bool:
"""
A helper method for sending an embed to a user's DMs.
diff --git a/bot/exts/moderation/infraction/infractions.py b/bot/exts/moderation/infraction/infractions.py
index f19323c7c..dfffb2b20 100644
--- a/bot/exts/moderation/infraction/infractions.py
+++ b/bot/exts/moderation/infraction/infractions.py
@@ -14,7 +14,6 @@ from bot.converters import Duration, Expiry, FetchedMember
from bot.decorators import respect_role_hierarchy
from bot.exts.moderation.infraction import _utils
from bot.exts.moderation.infraction._scheduler import InfractionScheduler
-from bot.exts.moderation.infraction._utils import UserSnowflake
from bot.utils.messages import format_user
log = logging.getLogger(__name__)
@@ -320,7 +319,7 @@ class Infractions(InfractionScheduler, commands.Cog):
async def apply_ban(
self,
ctx: Context,
- user: UserSnowflake,
+ user: FetchedMember,
reason: t.Optional[str],
purge_days: t.Optional[int] = 0,
**kwargs
@@ -376,7 +375,7 @@ class Infractions(InfractionScheduler, commands.Cog):
await bb_cog.apply_unwatch(ctx, user, bb_reason, send_message=False)
@respect_role_hierarchy(member_arg=2)
- async def apply_voice_ban(self, ctx: Context, user: UserSnowflake, reason: t.Optional[str], **kwargs) -> None:
+ async def apply_voice_ban(self, ctx: Context, user: FetchedMember, reason: t.Optional[str], **kwargs) -> None:
"""Apply a voice ban infraction with kwargs passed to `post_infraction`."""
if await _utils.get_active_infraction(ctx, user, "voice_ban"):
return
diff --git a/bot/exts/moderation/infraction/management.py b/bot/exts/moderation/infraction/management.py
index 3094159cd..d1437c635 100644
--- a/bot/exts/moderation/infraction/management.py
+++ b/bot/exts/moderation/infraction/management.py
@@ -12,7 +12,7 @@ from discord.utils import escape_markdown
from bot import constants
from bot.bot import Bot
-from bot.converters import Expiry, Infraction, Snowflake, UserMention, allowed_strings, proxy_user
+from bot.converters import Expiry, FetchedMember, Infraction, allowed_strings
from bot.exts.moderation.infraction.infractions import Infractions
from bot.exts.moderation.modlog import ModLog
from bot.pagination import LinePaginator
@@ -201,27 +201,21 @@ class ModManagement(commands.Cog):
# region: Search infractions
@infraction_group.group(name="search", aliases=('s',), invoke_without_command=True)
- async def infraction_search_group(self, ctx: Context, query: t.Union[UserMention, Snowflake, str]) -> None:
+ async def infraction_search_group(self, ctx: Context, query: t.Union[FetchedMember, str]) -> None:
"""Searches for infractions in the database."""
- if isinstance(query, int):
- await self.search_user(ctx, discord.Object(query))
+ if isinstance(query, FetchedMember):
+ await self.search_user(ctx, query)
else:
await self.search_reason(ctx, query)
@infraction_search_group.command(name="user", aliases=("member", "id"))
- async def search_user(self, ctx: Context, user: t.Union[discord.User, proxy_user]) -> None:
+ async def search_user(self, ctx: Context, user: FetchedMember) -> None:
"""Search for infractions by member."""
infraction_list = await self.bot.api_client.get(
'bot/infractions/expanded',
params={'user__id': str(user.id)}
)
- user = self.bot.get_user(user.id)
- if not user and infraction_list:
- # Use the user data retrieved from the DB for the username.
- user = infraction_list[0]["user"]
- user = escape_markdown(user["name"]) + f"#{user['discriminator']:04}"
-
embed = discord.Embed(
title=f"Infractions for {user} ({len(infraction_list)} total)",
colour=discord.Colour.orange()
diff --git a/bot/exts/recruitment/talentpool/_cog.py b/bot/exts/recruitment/talentpool/_cog.py
index 80bd48534..9b09c4f7b 100644
--- a/bot/exts/recruitment/talentpool/_cog.py
+++ b/bot/exts/recruitment/talentpool/_cog.py
@@ -417,7 +417,7 @@ class TalentPool(WatchChannel, Cog, name="Talentpool"):
await ctx.message.add_reaction(Emojis.check_mark)
@Cog.listener()
- async def on_member_ban(self, guild: Guild, user: Union[User, Member]) -> None:
+ async def on_member_ban(self, guild: Guild, user: Union[FetchedMember]) -> None:
"""Remove `user` from the talent pool after they are banned."""
await self.unwatch(user.id, "User was banned.")