fix(bot): 🐛 Fix invalid replying_to_id message field.
This commit is contained in:
+17
-10
@@ -54,10 +54,14 @@ class Calls(base.Cog):
|
||||
|
||||
messages, message_contents, _ = await pipe.execute()
|
||||
|
||||
messages = [models.Message(**orjson.loads(msg)) for msg in messages]
|
||||
message_contents = [
|
||||
models.MessageContent(**orjson.loads(msg)) for msg in message_contents
|
||||
]
|
||||
messages = sorted(
|
||||
[models.Message(**orjson.loads(msg)) for msg in messages],
|
||||
key=lambda m: m.created_at,
|
||||
)
|
||||
message_contents = sorted(
|
||||
[models.MessageContent(**orjson.loads(msg)) for msg in message_contents],
|
||||
key=lambda m: m.created_at,
|
||||
)
|
||||
|
||||
await models.Message.bulk_create(messages, batch_size=500)
|
||||
await models.MessageContent.bulk_create(message_contents, batch_size=500)
|
||||
@@ -727,6 +731,8 @@ class Calls(base.Cog):
|
||||
webhook_message = None
|
||||
cleaned_content = formatting.clean(message, call_rss)
|
||||
|
||||
replying_to_id = None
|
||||
|
||||
if blocked_word:
|
||||
try:
|
||||
await self.bot.get_partial_messageable(channel_id).send(
|
||||
@@ -753,7 +759,12 @@ class Calls(base.Cog):
|
||||
embed = None
|
||||
|
||||
if message.reference:
|
||||
embed = await embeds.ReplyEmbed(message.reference, call_id=call.id)
|
||||
embed, replying_message = await embeds.ReplyEmbed(
|
||||
message.reference, call_id=call.id
|
||||
)
|
||||
|
||||
if replying_message is not None:
|
||||
replying_to_id = replying_message.id
|
||||
|
||||
webhook_message = await webhook.send(
|
||||
cleaned_content,
|
||||
@@ -779,11 +790,7 @@ class Calls(base.Cog):
|
||||
"propagation_channel_id": (
|
||||
other_channel.id if webhook_message else None
|
||||
),
|
||||
"replying_to_id": (
|
||||
message.reference.message_id
|
||||
if message.reference is not None
|
||||
else None
|
||||
),
|
||||
"replying_to_id": replying_to_id,
|
||||
"created_at": datetime.now(timezone.utc),
|
||||
}
|
||||
),
|
||||
|
||||
@@ -8,7 +8,7 @@ from payphone.core import constants, formatting
|
||||
|
||||
async def ReplyEmbed(
|
||||
reference: discord.MessageReference, call_id: int
|
||||
) -> discord.Embed | None:
|
||||
) -> (discord.Embed | None, models.Message | None):
|
||||
"""Generates the embed sent on calls to represent replies.
|
||||
|
||||
Args:
|
||||
@@ -16,7 +16,7 @@ async def ReplyEmbed(
|
||||
call_id (int): The ID of the call the message was sent in.
|
||||
|
||||
Returns:
|
||||
discord.Embed | None: The generated embed.
|
||||
(discord.Embed | None, models.Message | None): The generated embed and the replied message.
|
||||
"""
|
||||
|
||||
message = (
|
||||
@@ -30,7 +30,7 @@ async def ReplyEmbed(
|
||||
)
|
||||
|
||||
if message is None:
|
||||
return None
|
||||
return None, None
|
||||
|
||||
is_this_channel = message.id == reference.message_id
|
||||
|
||||
@@ -63,4 +63,4 @@ async def ReplyEmbed(
|
||||
),
|
||||
)
|
||||
|
||||
return embed
|
||||
return embed, message
|
||||
|
||||
Reference in New Issue
Block a user