Skip to content

Commit 7a47e86

Browse files
committed
fix: genesis embed failure due to undefined log_url
1 parent aefac23 commit 7a47e86

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

core/clients.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import discord
77
from aiohttp import ClientResponse, ClientResponseError
8-
from discord import DMChannel, Member, Message, TextChannel
8+
from discord import DMChannel, Member, Message, TextChannel, User
99
from discord.ext import commands
1010
from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorCollection
1111
from pymongo.errors import ConfigurationError
@@ -598,7 +598,7 @@ async def get_log_link(self, channel_id: Union[str, int]) -> str:
598598
prefix = ""
599599
return f"{self.bot.config['log_url'].strip('/')}{'/' + prefix if prefix else ''}/{doc['key']}"
600600

601-
async def create_log_entry(self, recipient: Member, channel: TextChannel, creator: Member) -> str:
601+
async def create_log_entry(self, recipient: Member | User, channel: TextChannel, creator: Member) -> str:
602602
key = secrets.token_hex(6)
603603

604604
dm_channel = await recipient.create_dm()

core/thread.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939

4040
logger = getLogger(__name__)
4141

42-
4342
class Thread:
4443
"""Represents a discord Modmail thread"""
4544

@@ -179,6 +178,15 @@ def cancelled(self, flag: bool):
179178
for i in self.wait_tasks:
180179
i.cancel()
181180

181+
@property
182+
def log_url(self) -> str:
183+
prefix = self.bot.config["log_url_prefix"].strip("/")
184+
if prefix == "NONE":
185+
prefix = ""
186+
return (
187+
f"{self.bot.config['log_url'].strip('/')}{'/' + prefix if prefix else ''}/{self.log_key}"
188+
)
189+
182190
async def snooze(self, moderator: discord.User|discord.Member=None, command_used=None, snooze_for=None, ignored_message_ids: set[int]=None ):
183191
"""
184192
Save channel/category/position/messages to DB, mark as snoozed.
@@ -903,6 +911,7 @@ async def setup(self, *, creator=None, category=None, initial_message=None):
903911
self._channel = channel
904912

905913
try:
914+
assert recipient is not None
906915
log_key, log_data = await asyncio.gather(
907916
self.bot.api.create_log_entry(recipient, channel, creator or recipient),
908917
self.bot.api.get_user_logs(recipient.id),
@@ -926,7 +935,7 @@ async def setup(self, *, creator=None, category=None, initial_message=None):
926935
mention = self.bot.config["mention"]
927936

928937
async def send_genesis_message():
929-
info_embed = self._format_info_embed(recipient, log_url, log_count, self.bot.main_color)
938+
info_embed = self._format_info_embed(recipient, self.log_url, log_count, self.bot.main_color)
930939
try:
931940
if mention_msg:
932941
msg = await channel.send((mention + " " + mention_msg), embed=info_embed)
@@ -1052,7 +1061,7 @@ async def activate_auto_triggers():
10521061
)
10531062
self.bot.dispatch("thread_ready", self, creator, category, initial_message)
10541063

1055-
def _format_info_embed(self, user, log_url, log_count, color):
1064+
def _format_info_embed(self, user, log_url: str, log_count, color):
10561065
"""Get information about a member of a server
10571066
supports users from the guild or not."""
10581067
member = self.bot.guild.get_member(user.id)
@@ -1215,12 +1224,7 @@ async def _close(
12151224
log_data = None
12161225

12171226
if isinstance(log_data, dict):
1218-
prefix = self.bot.config["log_url_prefix"].strip("/")
1219-
if prefix == "NONE":
1220-
prefix = ""
1221-
log_url = (
1222-
f"{self.bot.config['log_url'].strip('/')}{'/' + prefix if prefix else ''}/{log_data['_id']}"
1223-
)
1227+
log_url = self.log_url
12241228

12251229
if log_data["title"]:
12261230
sneak_peak = log_data["title"]

0 commit comments

Comments
 (0)