aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/moderation/modlog.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot/exts/moderation/modlog.py')
-rw-r--r--bot/exts/moderation/modlog.py51
1 files changed, 3 insertions, 48 deletions
diff --git a/bot/exts/moderation/modlog.py b/bot/exts/moderation/modlog.py
index 2c94d1af8..47a21753c 100644
--- a/bot/exts/moderation/modlog.py
+++ b/bot/exts/moderation/modlog.py
@@ -3,7 +3,6 @@ import difflib
import itertools
import typing as t
from datetime import datetime, timezone
-from itertools import zip_longest
import discord
from dateutil.relativedelta import relativedelta
@@ -12,14 +11,12 @@ from discord import Colour, Message, Thread
from discord.abc import GuildChannel
from discord.ext.commands import Cog, Context
from discord.utils import escape_markdown, format_dt, snowflake_time
-from pydis_core.site_api import ResponseCodeError
-from sentry_sdk import add_breadcrumb
from bot.bot import Bot
-from bot.constants import Channels, Colours, Emojis, Event, Guild as GuildConstant, Icons, Roles, URLs
+from bot.constants import Channels, Colours, Emojis, Event, Guild as GuildConstant, Icons, Roles
from bot.log import get_logger
from bot.utils import time
-from bot.utils.messages import format_user
+from bot.utils.messages import format_user, upload_log
log = get_logger(__name__)
@@ -45,48 +42,6 @@ class ModLog(Cog, name="ModLog"):
self._cached_edits = []
- async def upload_log(
- self,
- messages: t.Iterable[discord.Message],
- actor_id: int,
- attachments: t.Iterable[t.List[str]] = None
- ) -> str:
- """Upload message logs to the database and return a URL to a page for viewing the logs."""
- if attachments is None:
- attachments = []
-
- deletedmessage_set = [
- {
- "id": message.id,
- "author": message.author.id,
- "channel_id": message.channel.id,
- "content": message.content.replace("\0", ""), # Null chars cause 400.
- "embeds": [embed.to_dict() for embed in message.embeds],
- "attachments": attachment,
- }
- for message, attachment in zip_longest(messages, attachments, fillvalue=[])
- ]
-
- try:
- response = await self.bot.api_client.post(
- "bot/deleted-messages",
- json={
- "actor": actor_id,
- "creation": datetime.now(timezone.utc).isoformat(),
- "deletedmessage_set": deletedmessage_set,
- }
- )
- except ResponseCodeError as e:
- add_breadcrumb(
- category="api_error",
- message=str(e),
- level="error",
- data=deletedmessage_set,
- )
- raise
-
- return f"{URLs.site_logs_view}/{response['id']}"
-
def ignore(self, event: Event, *items: int) -> None:
"""Add event to ignored events to suppress log emission."""
for item in items:
@@ -604,7 +559,7 @@ class ModLog(Cog, name="ModLog"):
remaining_chars = 4090 - len(response)
if len(content) > remaining_chars:
- botlog_url = await self.upload_log(messages=[message], actor_id=message.author.id)
+ botlog_url = await upload_log(messages=[message], actor_id=message.author.id)
ending = f"\n\nMessage truncated, [full message here]({botlog_url})."
truncation_point = remaining_chars - len(ending)
content = f"{content[:truncation_point]}...{ending}"