From 9e81978fba7484d58ae665f7520ec095d9486ba7 Mon Sep 17 00:00:00 2001 From: "Nyeki.py" <84998222+Nekidev@users.noreply.github.com> Date: Sun, 20 Oct 2024 22:00:10 -0300 Subject: [PATCH] fix(bot): :bug: Message deletes not working. --- payphone/cogs/calls/cog.py | 28 ++++++++-------------------- payphone/cogs/calls/embeds.py | 2 -- payphone/db/models.py | 1 + 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/payphone/cogs/calls/cog.py b/payphone/cogs/calls/cog.py index f8ad535..4639462 100644 --- a/payphone/cogs/calls/cog.py +++ b/payphone/cogs/calls/cog.py @@ -887,21 +887,21 @@ class Calls(base.Cog): message_id = payload.message_id channel_id = payload.channel_id - is_on_call = await redis.sismember( - constants.CHANNELS_ONCALL_SET, str(channel_id) - ) + channel = await models.Channel.get(id=channel_id) - if not is_on_call: + if channel.call_id is None: return - message = await models.Message.get_or_none(id=message_id).select_related( - "propagation_channel" + message_json = await redis.hget( + constants.CALL_MESSAGES_TEMPLATE % channel.call_id, message_id ) - if message is None: + if message_json is None: return - other_channel = message.propagation_channel + message = models.Message(**orjson.loads(message_json)) + + other_channel = await models.Channel.get(id=message.propagation_channel_id) if other_channel.call_id != message.call_id: return @@ -916,18 +916,6 @@ class Calls(base.Cog): # This message was already deleted. pass - for replying_message in await models.Message.filter( - replying_to_id=message_id - ).exclude(propagation_channel_id=channel_id): - try: - await webhook.edit_message( - replying_message.propagation_id, embed=None - ) - - except errors.DiscordException: - # This message was deleted. - pass - @commands.Cog.listener() @commands.guild_only() @transactions.atomic() diff --git a/payphone/cogs/calls/embeds.py b/payphone/cogs/calls/embeds.py index 435eab9..0ed7936 100644 --- a/payphone/cogs/calls/embeds.py +++ b/payphone/cogs/calls/embeds.py @@ -33,8 +33,6 @@ async def ReplyEmbed( reference.message_id, ) - print(constants.CALL_MESSAGE_FROM_PROPAGATION_TEMPLATE % call_id) - if message_id is not None: unflushed_message = await redis.hget( constants.CALL_MESSAGES_TEMPLATE % call_id, message_id diff --git a/payphone/db/models.py b/payphone/db/models.py index e5ee9e3..1e7f308 100644 --- a/payphone/db/models.py +++ b/payphone/db/models.py @@ -211,6 +211,7 @@ class Message(models.Model): call: fields.ForeignKeyRelation["Call"] = fields.ForeignKeyField( "models.Call", related_name="messages", on_delete=fields.OnDelete.CASCADE ) + call_id: int channel: fields.ForeignKeyRelation["Channel"] = fields.ForeignKeyField( "models.Channel", related_name="messages", on_delete=fields.OnDelete.CASCADE )