fix(bot): 🐛 Fix invalid replying_to_id message field.

This commit is contained in:
Nyeki.py
2024-10-18 19:51:24 -03:00
parent e7b553662d
commit faef6e7a0f
2 changed files with 21 additions and 14 deletions
+17 -10
View File
@@ -54,10 +54,14 @@ class Calls(base.Cog):
messages, message_contents, _ = await pipe.execute() messages, message_contents, _ = await pipe.execute()
messages = [models.Message(**orjson.loads(msg)) for msg in messages] messages = sorted(
message_contents = [ [models.Message(**orjson.loads(msg)) for msg in messages],
models.MessageContent(**orjson.loads(msg)) for msg in message_contents 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.Message.bulk_create(messages, batch_size=500)
await models.MessageContent.bulk_create(message_contents, batch_size=500) await models.MessageContent.bulk_create(message_contents, batch_size=500)
@@ -727,6 +731,8 @@ class Calls(base.Cog):
webhook_message = None webhook_message = None
cleaned_content = formatting.clean(message, call_rss) cleaned_content = formatting.clean(message, call_rss)
replying_to_id = None
if blocked_word: if blocked_word:
try: try:
await self.bot.get_partial_messageable(channel_id).send( await self.bot.get_partial_messageable(channel_id).send(
@@ -753,7 +759,12 @@ class Calls(base.Cog):
embed = None embed = None
if message.reference: 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( webhook_message = await webhook.send(
cleaned_content, cleaned_content,
@@ -779,11 +790,7 @@ class Calls(base.Cog):
"propagation_channel_id": ( "propagation_channel_id": (
other_channel.id if webhook_message else None other_channel.id if webhook_message else None
), ),
"replying_to_id": ( "replying_to_id": replying_to_id,
message.reference.message_id
if message.reference is not None
else None
),
"created_at": datetime.now(timezone.utc), "created_at": datetime.now(timezone.utc),
} }
), ),
+4 -4
View File
@@ -8,7 +8,7 @@ from payphone.core import constants, formatting
async def ReplyEmbed( async def ReplyEmbed(
reference: discord.MessageReference, call_id: int reference: discord.MessageReference, call_id: int
) -> discord.Embed | None: ) -> (discord.Embed | None, models.Message | None):
"""Generates the embed sent on calls to represent replies. """Generates the embed sent on calls to represent replies.
Args: Args:
@@ -16,7 +16,7 @@ async def ReplyEmbed(
call_id (int): The ID of the call the message was sent in. call_id (int): The ID of the call the message was sent in.
Returns: Returns:
discord.Embed | None: The generated embed. (discord.Embed | None, models.Message | None): The generated embed and the replied message.
""" """
message = ( message = (
@@ -30,7 +30,7 @@ async def ReplyEmbed(
) )
if message is None: if message is None:
return None return None, None
is_this_channel = message.id == reference.message_id is_this_channel = message.id == reference.message_id
@@ -63,4 +63,4 @@ async def ReplyEmbed(
), ),
) )
return embed return embed, message