discord.py | Как импортировать из БД айди канала, чтобы в последующем отправлять логи в этот канал

Я сделал базу данных на SQLite3, в которую записываются айди сервера и айди канала, в который должны отправляться логи. Если быть проще, я хочу чтобы юзер мог самостоятельно выбрать канал для отправки всех логов, и после этого бот отправлял логи в указанный юзером канал.

С кодом я очень сильно намудрил, ибо получился сплошной мусор, но команду для выбора канала я сделал:

   @app_commands.command(name="логи", description="устанавливает канал для отправки логов")
   @app_commands.check(is_owner)
   async def logs(self, interaction: discord.Interaction):
        connection = sqlite3.connect("./cogs/main.db")
        cursor = connection.cursor()
        cursor.execute("UPDATE Guilds SET channel_id = ? WHERE guild_id = ?", (interaction.channel.id, interaction.guild.id))
        connection.commit()
        connection.close()
        logs = discord.Embed(title="Готово!", description=f"Теперь логи привязаны к каналу - {interaction.channel.mention}", color=discord.Color.purple())
        logs.set_footer(text=f"Команду отправил {interaction.user}", icon_url=interaction.user.avatar)
        await interaction.response.defer()
        await interaction.followup.send(embed=logs)

Отсюда бот берет информацию в какой канал юзер просит отправлять логи, но теперь мне нужно чтобы бот отправлял в указанный канал эти самые логи.

Для начала я хотел попробовать чтобы бот отправлял удаленные сообщения в указанный юзером канал, но очень сильно намудрил:

@commands.Cog.listener()
    async def on_message_delete(self, message, interaction: discord.Interaction, channel: discord.TextChannel):
        if message.author.bot:
            return
        connection = sqlite3.connect("./cogs/main.db")
        cursor = connection.cursor()
        cursor.execute("SELECT * FROM Guilds WHERE guild_id = ?", (channel.guild.id,))
        result = cursor.fetchone()
        if result:
            channel_id = result[1]
            if channel_id:
                await discord.TextChannel == channel_id
        message_deleted_msg = discord.Embed(title=f"Было удалено сообщение в канале {message.channel.mention}", description=f"**Участник:** {message.author.mention} | {message.author}/{message.author.id}\n\n**Содержимое:**\n{message.content}", color=discord.Color.dark_purple())
        message_deleted_msg.add_field(name=f"**Дата/время:**", value=f"{message.created_at.replace(tzinfo=timezone.utc).strftime('%Y-%m-%d / %H:%M:%S')}")
        message_deleted_msg.set_footer(text=f"ВНИМАНИЕ: Время удаления указывается в UTC+0")
        await channel_id.send(embed=message_deleted_msg)

Как можно исправить это горе-код?


Ответы (0 шт):