46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
from datetime import datetime
|
|
from datetime import timedelta
|
|
|
|
import discord
|
|
from discord.utils import find
|
|
|
|
from jarvis.utils import build_embed
|
|
from jarvis.utils.field import Field
|
|
|
|
|
|
def modlog_embed(
|
|
member: discord.Member,
|
|
admin: discord.Member,
|
|
log: discord.AuditLogEntry,
|
|
title: str,
|
|
desc: str,
|
|
) -> discord.Embed:
|
|
fields = [
|
|
Field(
|
|
name="Moderator",
|
|
value=f"{admin.mention} ({admin.name}" + f"#{admin.discriminator})",
|
|
),
|
|
]
|
|
if log.reason:
|
|
fields.append(Field(name="Reason", value=log.reason, inline=False))
|
|
embed = build_embed(
|
|
title=title,
|
|
description=desc,
|
|
color="#fc9e3f",
|
|
fields=fields,
|
|
timestamp=log.created_at,
|
|
)
|
|
embed.set_author(
|
|
name=f"{member.name}",
|
|
icon_url=member.avatar_url,
|
|
)
|
|
embed.set_footer(text=f"{member.name}#{member.discriminator} | {member.id}")
|
|
return embed
|
|
|
|
|
|
def get_latest_log(auditlog, target):
|
|
before = datetime.utcnow() - timedelta(seconds=10)
|
|
return find(
|
|
lambda x: x.target.id == target.id and x.created_at > before,
|
|
auditlog,
|
|
)
|