2. Webhooks

2.1. Overview

2.2. Using handle_update()

Функция handle_update()- самая главная функция в библиотеке pywood. Ее задача- обработать переданный ей объект обновления.

Функция имеет следующий вид:

handle_update(update, states, state_getter, state_attrs=None)

2.2.1. importing

Функция handle_update() находиться в модуле __init__ библиотеки pywood, поэтому вы должны импортировать ее так:

2.2.2. Arguments

2.2.2.1. update argument

2.2.2.2. states argument

2.2.2.3. state_getter argument

state_getter должен представлять собой функцию, принимающую update.
Данная функция обязана возвратить (один из трех вариантов):

  • строку, являющуюся названием текущего состояния
  • класс текущего состояния
  • кортеж из двух элементов, первый из которых- строка, являющаяся названием текущего состояния, второй- данные, которые будут добавлены в виде аттрибута state_data к экземпляру объекта состояния

Рассмотрим эти три варианта.

2.2.2.3.1. Функция возвращает строку
2.2.2.3.2. Функция возвращает класс
2.2.2.3.3. Функция возвращает кортеж

Note

Обратите внимание, что в примере выше метод handle() имеет аргумент data. В него будут переданы данные переданные в функцию handle_update() виде аргумента data.

В методе handle() мы также обращаемся к аттрибуту self.state_data, который содержит второй элемент кортежа, который возвращает функция get_curr_state()

В дополнение к этому, объект класса State будет также иметь аттрибуты, определенные аргументом state_attrs функции handle_update()

2.2.2.4. state_attrs argument

картинка

Warning

Запрещено добавлять аттрибут с именем state_data, т.к. он будет заменен

2.3. Using Bot.handle_update() method