Как изменить предыдущее сообщение в телеграмм боте
Всем привет, есть простенький код бота, суть проста, при каждом новом callback новое сообщение редактируется на старое. Когда мы переходим к функции empty_func у нас есть возможность выбрать другой тип пароля, т.е после того, как пользователь нажмет на эту кнопку, мы должны переводить его на начальную функцию command_info. Функция another_password_type отрабатывает, но она выводит новое сообщение, а хотелось бы, чтобы она просто меняла предыдущее сообщение. Я думаю это происходит по причине того, что функция another_password_type(callback) пытается вызвать функцию, которая имеет аргумент message. Я так понимаю callback дружит только с callback? Все остальные функции отрабатывают как нужно.
@dp.message(Command('info'))
async def command_info(message: Message) -> None:
builder = InlineKeyboardBuilder()
button_1 = InlineKeyboardButton(text='Слабый пароль', callback_data='weak_1')
button_2 = InlineKeyboardButton(text='Средний пароль', callback_data='average')
button_3 = InlineKeyboardButton(text='Сложный', callback_data='diff')
builder.add(button_1, button_2, button_3)
builder.adjust(2)
text = 'Выбери какой пароль необходимо сгенерировать'
await message.answer(text=text, reply_markup=builder.as_markup())
@dp.callback_query(Text('weak_1'))
async def empty_func(callback: CallbackQuery) -> None:
builder = InlineKeyboardBuilder()
button_1 = InlineKeyboardButton(text='Тыкни', callback_data='click')
button_2 = InlineKeyboardButton(text='Изменить тип пароля', callback_data='another')
builder.add(button_1, button_2)
text = 'Хоп, сообщение поменялось'
await callback.message.edit_text(text=text, reply_markup=builder.as_markup())
@dp.callback_query(Text('average'))
async def empty_func_2(callback: CallbackQuery) -> None:
builder = InlineKeyboardBuilder()
button_1 = InlineKeyboardButton(text='Тыкни_2', callback_data='click_2')
builder.add(button_1)
text = 'Хоп, сообщение поменялось_2'
await callback.message.edit_text(text=text, reply_markup=builder.as_markup())
@dp.callback_query(Text('click_2'))
async def click_2(callback: CallbackQuery) -> None:
await empty_func(callback)
@dp.callback_query(Text('another'))
async def another_password_type(callback: CallbackQuery) -> None:
await command_info(callback.message)