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, 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),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user