fix(aurora): fixed a whole bunch of pydantic errors
Some checks failed
Actions / Build Documentation (MkDocs) (pull_request) Successful in 28s
Actions / Lint Code (Ruff & Pylint) (pull_request) Failing after 42s

This commit is contained in:
SeaswimmerTheFsh 2024-05-04 17:09:22 -04:00
parent 6147c8c6d5
commit d13ad88f16
Signed by: cswimr
GPG key ID: 5D671B5D03D65A7F
4 changed files with 11 additions and 27 deletions

View file

@ -1,7 +1,6 @@
from datetime import datetime, timedelta
from typing import Any, Dict, List, Optional, Union
from async_property import async_cached_property
from discord import Forbidden, HTTPException, InvalidData, NotFound
from pydantic import BaseModel
from redbot.core.bot import Red
@ -39,19 +38,16 @@ class Moderation(AuroraBaseModel):
def type(self) -> str:
return self.moderation_type
@async_cached_property
async def moderator(self) -> "PartialUser":
async def get_moderator(self) -> "PartialUser":
return await PartialUser.from_id(self.bot, self.moderator_id)
@async_cached_property
async def target(self) -> Union["PartialUser", "PartialChannel"]:
async def get_target(self) -> Union["PartialUser", "PartialChannel"]:
if self.target_type == "user":
return await PartialUser.from_id(self.bot, self.target_id)
else:
return await PartialChannel.from_id(self.bot, self.target_id)
@async_cached_property
async def resolved_by_user(self) -> Optional["PartialUser"]:
async def get_resolved_by(self) -> Optional["PartialUser"]:
if self.resolved_by:
return await PartialUser.from_id(self.bot, self.resolved_by)
return None

View file

@ -1,6 +1,6 @@
# pylint: disable=cyclic-import
from datetime import datetime, timedelta
from typing import Optional, Union
from typing import Union
from discord import (Color, Embed, Guild, Interaction, InteractionMessage,
Member, Role, User)
@ -8,7 +8,7 @@ from redbot.core import commands
from redbot.core.utils.chat_formatting import (bold, box, error,
humanize_timedelta, warning)
from aurora.models import Moderation, PartialChannel, PartialUser
from aurora.models import Moderation
from aurora.utilities.config import config
from aurora.utilities.utils import (fetch_channel_dict, fetch_user_dict,
get_bool_emoji, get_next_case_number,
@ -104,19 +104,19 @@ async def log_factory(
"""This function creates a log embed from set parameters, meant for moderation logging.
Args:
interaction (Interaction): The interaction object.
case_dict (dict): The case dictionary.
interaction (discord.Interaction): The interaction object.
moderation (aurora.models.Moderation): The moderation object.
resolved (bool, optional): Whether the case is resolved or not. Defaults to False.
"""
target: Union[PartialUser, PartialChannel] = await moderation.target
moderator: PartialUser = await moderation.moderator
target = await moderation.get_target()
moderator = await moderation.get_moderator()
if resolved:
embed = Embed(
title=f"📕 Case #{moderation.id:,} Resolved",
color=await interaction.client.get_embed_color(interaction.channel),
)
resolved_by: Optional[PartialUser] = await moderation.resolved_by_user
resolved_by = await moderation.get_resolved_by()
embed.description = f"**Type:** {str.title(moderation.moderation_type)}\n**Target:** {target.name} ({target.id})\n**Moderator:** {moderator.name} ({moderator.id})\n**Timestamp:** <t:{moderation.timestamp}> | <t:{moderation.timestamp}:R>"
if moderation.duration is not None: