Создание хендлеров#

Хендлеры - основной инструмент для обработки событий. По своей сути это функции, которые выполняются при опредленных условиях. Этими условиями являются правила.

Лейблинг#

Лейблинг - процесс указания хендлера и его параметров. Для лейблинга достаточно вызвать декоратор-лейблер, соответствующий типу события.

@bot.on.message_new()
def handler(msg):
    print(msg.text)

Хендлеры бывают блокирующими и не блокирующими. Блокирующие хендлеры так же называются эндпоинтами. Если выполняются условия блокирующего хендлера, то последующие хендлеры не проверяются/вызываются. По умолчанию все хендлеры являются не блокирующими.
Чтобы задать тип лейблера, используйте параметр endpoint:

@bot.on.message_new(endpoint=True)
...

Tip

Вид хендлеров по умолчанию можно изменить при создании экземпляра bot:
bot = Bot(config, endpoint_default=True)

Так же можно изменить порядок проверки хендлеров, передав лейблеру параметр level. По умолчанию он равен 0.

@bot.on.message_new(level=1)
def handler1(msg):
    print('triggered handler1!')


@bot.on.message_new()
def handler2(msg):
    print('triggered handler2!')

# triggered handler2!
# triggered handler1!

Применение правил#

В качестве позиционных аргументов лейблер принимает правила.

@bot.on.message_new(TextRule(text='/test', lower=False))
...

Так же некоторые правила прописаны в лейблере как именованные аргументы.

@bot.on.message_new(text='/test')
...

Подробнее о правилах можно узнать здесь.