Вы можете удалять сообщения от бота вызывая функцию
bot.delete_message в вашем коде:
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id - 1)
chat_id указывает в какой чат отправлено сообщение, а
message_id - идентификатор удаляемого сообщения.
Вот пример кода, который реализует поведение, описанное выше:
import telebot
from telebot import types
bot = telebot.TeleBot("YOUR_BOT_TOKEN_HERE")
@bot.message_handler(commands=["start"])
def start(message):
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Проверка")
btn2 = types.KeyboardButton("Состояние системы")
markup.add(btn1, btn2)
bot.send_message(chat_id=message.chat.id, text="Приветствую, выберите нужный для вас раздел:", reply_markup=markup)
@bot.message_handler(func=lambda message: message.text == "Проверка")
def option_1(message):
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id - 1)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Вернутся")
btn2 = types.KeyboardButton("Лимончик")
btn3 = types.KeyboardButton("Груша")
markup.add(btn1, btn2, btn3)
bot.send_message(chat_id=message.chat.id, text="Был выбран раздел Проверка:", reply_markup=markup)
@bot.message_handler(func=lambda message: message.text == "Состояние системы")
def option_2(message):
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id - 1)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Вернутся")
btn2 = types.KeyboardButton("Лимончик")
btn3 = types.KeyboardButton("Груша")
markup.add(btn1, btn2, btn3)
bot.send_message(chat_id=message.chat.id, text="Был выбран раздел Состояние системы:", reply_markup=markup)
@bot.message_handler(func=lambda message: message.text == "Вернутся")
def back(message):
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id - 1)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Проверка")
btn2 = types.KeyboardButton("Состояние системы")
markup.add(btn1, btn2)
bot.send_message(chat_id=message.chat.id, text="Выберите нужный для вас раздел:", reply_markup=markup)
@bot.message_handler(func=lambda message: message.text == "Лимончик")
def back(message):
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id - 1)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(chat_id=message.chat.id, text="Была выбрана система проверки Лимончик.", reply_markup=markup)
@bot.message_handler(func=lambda message: message.text == "Груша")
def back(message):
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
bot.delete_message(chat_id=message.chat.id, message_id=message.message_id - 1)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(chat_id=message.chat.id, text="Была выбрана система проверки Груша.", reply_markup=markup)
bot.polling()
В этом коде я использую
telebot.delete_message для удаления предыдущего сообщения перед отправкой нового.