Задать вопрос
@ksiim

Как настроить универсальный хендлер в аиограм?

У меня есть база данных, записи в которую добавляются из самого бота. Далее из записей генерируются inline кнопки. Мне нужно каким-то образом сделать хэндлер, который бы улавливал и обрабатывал по одному образцу все callback_data из кнопок, которые генерируются из бд. Проблема в том, что нужно это сделать так, чтобы хэндлер улавливал и новые записи из бд, и переставал ловить те, которых уже нет. Примерно должно быть что-то такое:
@dp.callback_query_handler(text='??')
async def universal_for_buttons(callback: CallbackQuery):
    await callback.message.edit_text(f'*text*')
    await callback.message.edit_reply_markup(category(та, на которую сработал хэндлер)_keyboard)
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Вместо text в callback_query_handler() укажи функцию, которая принимает CallbackQuery и возвращает True, если надо обработать данный запрос, и False, если нужно поискать другой обработчик. Для ускорения можешь все коды запросов в БД пометить отдельным префиксом (например, пусть они начинаются с "db_"), чтобы сразу отсечь посторонние коды.
Просто погугли callback_query_handler, увидишь что-то типа lambda callback_query: True - это означает "принимать любые коды запроса". Но ведь можно True возвращать не всегда.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы