Создание хендлеров#
Хендлеры - основной инструмент для обработки событий. По своей сути это функции, которые выполняются при опредленных условиях. Этими условиями являются правила.
Лейблинг#
Лейблинг - процесс указания хендлера и его параметров. Для лейблинга достаточно вызвать декоратор-лейблер, соответствующий типу события.
@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')
...
Подробнее о правилах можно узнать здесь.