Переливаются кнопки в телеграмм боте aiogram
Проблема собственно в шапке - при нажатии кнопки курсовая (на самом деле любой инлайн кнопки, но для примера возьмём эту кнопку) она переливается секунд 20 и потом перестает.
Вопрос в следующем: как сделать так чтобы кнопка выполнила свою функцию, но при этом не переливалась?
Код связанный с инлайн клавиатурой:
# курсовая
kurs_button = InlineKeyboardButton(
text='Курсовая',
callback_data='kurs_button'
)
# диплом
diplom_button = InlineKeyboardButton(
text='Диплом',
callback_data='dipl_button'
)
# реферат
ref_button = InlineKeyboardButton(
text='Реферат',
callback_data='ref_button'
)
# научная статья
science_button = InlineKeyboardButton(
text='Науч. статья',
callback_data='science_button'
)
service_kb = InlineKeyboardMarkup(inline_keyboard=[[kurs_button, diplom_button, ref_button, science_button], [cancel_button]])
Код связанный с самой кнопкой:
# вопрос про тему
@router.callback_query(lambda c: c.data == 'kurs_button', StateFilter(Universal.choice))
async def choose_kurs(callback_query: types.CallbackQuery, state: FSMContext):
global TOTAL
TOTAL = 1500
await callback_query.message.answer('Вы выбрали курсовую работу, пожалуйста ответьте на несколько вопросов, чтобы мы могли оценить вашу работу\n')
await fill_theme(callback_query, state)
async def fill_theme(callback_query: types.CallbackQuery, state: FSMContext):
await callback_query.message.answer('Напишите тему вашей курсовой.', reply_markup=cancel_kb)
await state.set_state(KursStates.theme) # установления состояния "Тема"
В принципе всё работает, но вот конкретно вот это переливание хотелось бы убрать.
Ответы (1 шт):
Клиент телеграмма ожидает подтверждения, что событие нажатия на кнопку было обработана ботам. Если подтверждения не происходит, кнопка продолжает "анимироваться" пока не будет получено какое ни будь новое событие от бота.
В общем, если открыть документацию: то можно прочитать, что await callback_query.answer()
можно отправить без параметров, что собственно и будет сигнализировать о том, что событие нажатия на кнопку было обработано.
@router.callback_query(lambda c: c.data == 'kurs_button', StateFilter(Universal.choice))
async def choose_kurs(callback_query: types.CallbackQuery, state: FSMContext):
global TOTAL
TOTAL = 1500
await callback_query.answer() # +++
await callback_query.message.answer('Вы выбрали курсовую работу, пожалуйста ответьте на несколько вопросов, чтобы мы могли оценить вашу работу\n')
await fill_theme(callback_query, state)