ЕП
Size: a a a
ЕП
T
Z
ReplyButtonFilter
, команды, и т. п.).ReplyButton
sFilter
, в который будет отфильтровывать все варианты кнопок, используемых ботописцем, и его добавление в обработчик ожидания корректного ответа. Однако в нём отпадает необходимость, если использовать предложенный тобою порядок.ReplyButtonsFilter
можно развернуть: сделать его на основе BoundFilter и мидлварь на постпроцессе меседжей, собирающий все replybutton texts в этот фильтр. Например: handler(state=any_state, is_reply_buttons_text=False
Как думаешь, стоит ли заморачиваться и будут ли им пользоваться?Т
ReplyButton
sFilter
, в который будет отфильтровывать все варианты кнопок, используемых ботописцем, и его добавление в обработчик ожидания корректного ответа. Однако в нём отпадает необходимость, если использовать предложенный тобою порядок.ReplyButtonsFilter
можно развернуть: сделать его на основе BoundFilter и мидлварь на постпроцессе меседжей, собирающий все replybutton texts в этот фильтр. Например: handler(state=any_state, is_reply_buttons_text=False
Как думаешь, стоит ли заморачиваться и будут ли им пользоваться?ReplyButtons
, то есть фильтр на какую-то коллекцию кнопок, а не на один вариант. Смутно представляю применение такому фильтру...)Update
- один хэндлер». Я изначально размечаю хэндлеры как точки входа для обработки, например:# обработка реплай-кнопки «Назад»
handle_back_reply_button
# обработка инлайн-кнопки «OK»
handle_ok_inline_button
# обработка введённого имени
handle_name_message
И когда хэндлеры размечены и зарегистрированы, можно вписать в их тела саму логику. У меня это делается через делегирование задачи операционным исполнителям, но сейчас не об этом. Хотя для понимания картинки показать стоит:async def handle_start_command(update, bot, fsm_context):
await execute_hello(update, bot)
await execute_main_menu(update, bot, fsm_context)
и возвращаясь назад, к вопросу об отлавливании множества кнопок, хочу спросить зачем? Разве не удобнее ловить что-то конкретное, и явно его кидать дальше по цепи? Это напоминает мне ньюбайскую схему с одним хэндлером на тип Message
, и кучей if/elif
в теле. Хэндлер должен обрабатывать одну задачу, и реагировать на определенную сущность. Обратная логика приведет к анархии в связях, нам пришлют один вариант из десяти ожидаемых, и мы кинем его дальше в толпу if/elif
чтобы осуществить хоть какой-то роутингCF
G
CF
(
posts_cb = CallbackData('post', 'id', 'action')
(
q
q
(
(
q
q
(
(
(
q
q