75 lines
2.7 KiB
Python
75 lines
2.7 KiB
Python
import discord
|
|
from discord.ext import commands
|
|
|
|
from jarvis.db.types import Setting
|
|
from jarvis.utils import build_embed
|
|
from jarvis.utils.field import Field
|
|
|
|
|
|
class ModlogMessageCog(commands.Cog):
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
|
|
@commands.Cog.listener()
|
|
async def on_message_edit(
|
|
self, before: discord.Message, after: discord.Message
|
|
):
|
|
if not before.author.bot:
|
|
modlog = Setting.get(guild=after.guild.id, setting="modlog")
|
|
if modlog:
|
|
if before.content == after.content or before.content is None:
|
|
return
|
|
channel = before.guild.get_channel(modlog.value)
|
|
fields = [
|
|
Field(
|
|
"Original Message",
|
|
before.content if before.content else "N/A",
|
|
False,
|
|
),
|
|
Field(
|
|
"New Message",
|
|
after.content if after.content else "N/A",
|
|
False,
|
|
),
|
|
]
|
|
embed = build_embed(
|
|
title="Message Edited",
|
|
description=f"{before.author.mention} edited a message",
|
|
fields=fields,
|
|
color="#fc9e3f",
|
|
timestamp=after.edited_at,
|
|
url=after.jump_url,
|
|
)
|
|
embed.set_author(
|
|
name=before.author.name,
|
|
icon_url=before.author.avatar_url,
|
|
url=after.jump_url,
|
|
)
|
|
embed.set_footer(
|
|
text=f"{before.author.name}#{before.author.discriminator}"
|
|
+ f" | {before.author.id}"
|
|
)
|
|
await channel.send(embed=embed)
|
|
|
|
@commands.Cog.listener()
|
|
async def on_message_delete(self, message: discord.Message):
|
|
modlog = Setting.get(guild=message.guild.id, setting="modlog")
|
|
if modlog:
|
|
fields = [Field("Original Message", message.content, False)]
|
|
channel = message.guild.get_channel(modlog.value)
|
|
embed = build_embed(
|
|
title="Message Deleted",
|
|
description=f"{message.author.mention}'s message was deleted",
|
|
fields=fields,
|
|
color="#fc9e3f",
|
|
)
|
|
embed.set_author(
|
|
name=message.author.name,
|
|
icon_url=message.author.avatar_url,
|
|
url=message.jump_url,
|
|
)
|
|
embed.set_footer(
|
|
text=f"{message.author.name}#{message.author.discriminator}"
|
|
+ f" | {message.author.id}"
|
|
)
|
|
await channel.send(embed=embed)
|