Система варнов для Telegram бота на Python

Добрый день (вечер или утро)! Хотел бы узнать как с помощью sqlite3 python - сделать систему варнов для Telegram бота.

@dp.message_handler(commands=['warn', 'варн'], commands_prefix='!/.')
async def warnUser(message: types.Message):
    if message.chat.type in ['group', 'supergroup']:
        try:
            list_admins = await message.chat.get_administrators()
            from_user = message['from']['id']

            list_admins_2 = []
            for admin in list_admins:
                list_admins_2.append(admin['user']['id'])


            for admin in list_admins:
                if int(admin) == int(from_user):
                    if not message.reply_to_message:
                        await message.answer("Отправь эту команду ответом на сообщение нарушителя.")
                    else:
                        tg_id = message['reply_to_message']['from']['id']
                        first_name = message['reply_to_message']['from']['first_name']
                

                        connect = sqlite3.connect('warn_list.db')
                        cursor = connect.cursor()

                        cursor.execute("""CREATE TABLE IF NOT EXISTS warn_list(
                            id INTEGER
                        )""")

                        connect.commit()
                        people_id = message.chat.id
                        cursor.execute(f"SELECT id FROM warn_list WHERE id = {people_id}")
                        data = cursor.fetchone()

                        if data is None:
                          user_id = [message.reply_to_message.from_user.id]
                          cursor.execute("INSERT INTO warn_list VALUES(?);", user_id)
                          connect.commit()
                        else:
                          pass
                
        if from_user not in list_admins_2:
            await message.answer("Эту команду могут использовать только админы чата.")
            
    except TypeError:
        pass
else:
    await message.answer('Эта команда предназначена для использования в групповых чатах, а не в личных сообщениях!')

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

Автор решения: MyZik
@dp.message_handler(commands=['warn', 'варн'], commands_prefix='!/.')
async def warnUser(message: types.Message):
    if message.chat.type in ['group', 'supergroup']:
        try:
            list_admins = await message.chat.get_administrators()
            from_user = message['from']['id']

            list_admins_2 = []
            for admin in list_admins:
                list_admins_2.append(admin['user']['id'])


            for admin in list_admins:
                if int(admin) == int(from_user):
                    if not message.reply_to_message:
                        await message.answer("Отправь эту команду ответом на сообщение нарушителя.")
                    else:
                        tg_id = message['reply_to_message']['from']['id']
                        first_name = message['reply_to_message']['from']['first_name']
                

                        connect = sqlite3.connect('warn_list.db')
                        cursor = connect.cursor()

                        cursor.execute("""CREATE TABLE IF NOT EXISTS warn_list(
                            id INTEGER
                        )""")

                        connect.commit()
                        people_id = message.chat.id
                        cursor.execute(f"SELECT id FROM warn_list WHERE id = {people_id}")
                        data = cursor.rowcount()

                        if data < 3:
                          user_id = [message.reply_to_message.from_user.id]
                          cursor.execute("INSERT INTO warn_list VALUES(?);", user_id)
                          connect.commit()
                        else:
                          # Здесь выбирайте сами - давать мут или бан
                          # Затем можно удалить все варны пользователя
                          cursor.execute(f"DELETE FROM warn_list WHERE id = {people_id}")
                          connect.commit()
                
        if from_user not in list_admins_2:
            await message.answer("Эту команду могут использовать только админы чата.")
            
    except TypeError:
        pass
else:
    await message.answer('Эта команда предназначена для использования в групповых чатах, а не в личных сообщениях!')
→ Ссылка