Как отредактировать сообщение бота?

Нужно отредактировать сообщение именно БОТА. Если писать

bot.edit_message_text(chat_id=message.chat.id, message_id=message.message_id, text='text')
то выводит ошибку:
2021-04-30 10:48:56,767 (init.py:489 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message can't be edited"
Потому что это сообщение юзера, а мне нужно сообщение бота. Вот код самой функции:

@bot.message_handler(commands=['hack'])
def hack(message):
    try:
        mes = split(r' ', message.text, maxsplit=1)
        bot.send_message(message.chat.id, 'ВЗЛОМ ' + str(mes[1]))
        bot.send_message(message.chat.id, '1%')
        for i in range(2, 101):
            bot.edit_message_text(chat_id=message.chat.id, message_id=message.message_id, text=str(i) + '%')
        bot.send_message(message.chat.id, 'УСПЕШНО ВЗЛОМАНО ' + str(mes[1]) + """. ВАМ ДОСТУПНЫ ПРАВА 
        АДМИНИСТРАТОРА/МОДЕРАТОРА""")
    except IndexError:
        bot.send_message(message.chat.id, """Что бы симулировать влом чего-то, вам нужно ввести обьект для взлома после 
команды.""")
Она должна симулировать процесс взлома Object при вводе команды /hack Object

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


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

Автор решения: Kuchizu

Вот код чтобы редактировать только что отправленное сообщение бота:

msg = bot.send_message(message.chat.id, 'Text')
time.sleep(1)
bot.edit_message_text(chat_id = message.chat.id, message_id = msg.message_id, text = 'Edited text')
time.sleep(1)
bot.edit_message_text(chat_id = message.chat.id, message_id = msg.message_id, text = 'Edited one more time')

В вашем случае будет:

@bot.message_handler(commands=['hack'])
def hack(message):
    try:
        mes = split(r' ', message.text, maxsplit=1)
        bot.send_message(message.chat.id, 'ВЗЛОМ ' + str(mes[1]))
        msg = bot.send_message(message.chat.id, '1%')
        for i in range(2, 101):
            bot.edit_message_text(chat_id=message.chat.id, message_id=msg.message_id, text=str(i) + '%')
        bot.send_message(message.chat.id, 'УСПЕШНО ВЗЛОМАНО ' + str(mes[1]) + """. ВАМ ДОСТУПНЫ ПРАВА 
        АДМИНИСТРАТОРА/МОДЕРАТОРА""")
    except IndexError:
        bot.send_message(message.chat.id, """Что бы симулировать влом чего-то, вам нужно ввести обьект для взлома после 
команды.""")

P.S Редактировать сообщения так часто телеграм не позволит, ставьте задержку.

→ Ссылка