Package: maxapi.filters¶
maxapi.filters
¶
BaseFilter
¶
Базовый класс для фильтров.
Определяет интерфейс фильтрации событий. Потомки должны переопределять метод call.
Methods:
| Name | Description |
|---|---|
__call__ |
Асинхронная проверка события на соответствие фильтру. |
filter_attrs(obj, *filters)
¶
Применяет один или несколько фильтров MagicFilter к объекту.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obj
|
object
|
Объект, к которому применяются фильтры (например, event или message). |
required |
*filters
|
MagicFilter
|
Один или несколько выражений MagicFilter. |
()
|
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True, если все фильтры возвращают True, иначе False. |
Source code in maxapi/filters/__init__.py
callback_payload
¶
CallbackPayload
¶
Bases: BaseModel
Базовый класс для сериализации/десериализации callback payload.
Атрибуты
prefix (str): Префикс для payload (используется при pack/unpack) (по умолчанию название класса). separator (str): Разделитель между значениями (по умолчанию '|').
__init_subclass__(**kwargs)
¶
Автоматически проставляет prefix и separator при наследовании.
pack()
¶
Собирает данные payload в строку для передачи в callback payload.
Raises:
| Type | Description |
|---|---|
ValueError
|
Если в значении встречается разделитель или payload слишком длинный. |
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Сериализованный payload. |
Source code in maxapi/filters/callback_payload.py
unpack(data)
classmethod
¶
Десериализует payload из строки.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
str
|
Строка payload (из callback payload). |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
Некорректный prefix или количество аргументов. |
Returns:
| Name | Type | Description |
|---|---|---|
CallbackPayload |
'CallbackPayload'
|
Экземпляр payload с заполненными полями. |
Source code in maxapi/filters/callback_payload.py
attrs()
classmethod
¶
Возвращает список полей для сериализации/десериализации (исключая prefix и separator).
Returns:
| Type | Description |
|---|---|
List[str]
|
List[str]: Имена полей модели. |
Source code in maxapi/filters/callback_payload.py
filter(rule=None)
classmethod
¶
Создаёт PayloadFilter для фильтрации callback-ивентов по payload.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rule
|
Optional[MagicFilter]
|
Фильтр на payload. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
PayloadFilter |
PayloadFilter
|
Экземпляр фильтра для хэндлера. |
Source code in maxapi/filters/callback_payload.py
PayloadFilter(model, rule)
¶
Bases: BaseFilter
Фильтр для MessageCallback по payload.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Type[CallbackPayload]
|
Класс payload для распаковки. |
required |
rule
|
Optional[MagicFilter]
|
Фильтр (условие) для payload. |
required |
Source code in maxapi/filters/callback_payload.py
__call__(event)
async
¶
Проверяет event на MessageCallback и применяет фильтр к payload.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
event
|
UpdateUnion
|
Обновление/событие. |
required |
Returns:
| Type | Description |
|---|---|
Union[Dict[str, Any], bool]
|
dict | bool: dict с payload при совпадении, иначе False. |
Source code in maxapi/filters/callback_payload.py
command
¶
CommandsInfo(commands, info=None)
dataclass
¶
Датакласс информации о командах
Attributes:
| Name | Type | Description |
|---|---|---|
commands |
List[str]
|
Список команд |
info |
Optional[str]
|
Информация о их предназначениях |
Command(commands, prefix='/', check_case=False, ignore_symbol_at_sign=False, only_with_bot_username=False)
¶
Bases: BaseFilter
Фильтр сообщений на соответствие команде.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
commands
|
str | List[str]
|
Ожидаемая команда или список команд без префикса. |
required |
prefix
|
str
|
Префикс команды (по умолчанию '/'). |
'/'
|
check_case
|
bool
|
Учитывать регистр при сравнении (по умолчанию False). |
False
|
ignore_symbol_at_sign
|
bool
|
Учитывать символ "@" при отправке команды с упоминанием бота (по умолчанию False). |
False
|
only_with_bot_username
|
bool
|
Обязательно упоминать бота при отправке команды (по умолчанию False). |
False
|
Инициализация фильтра команд.
Source code in maxapi/filters/command.py
parse_command(text, bot_username)
¶
Извлекает команду из текста.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text
|
str
|
Текст сообщения. |
required |
bot_username
|
str
|
Имя пользователя бота. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Tuple[str, List[str]]: Кортеж из команды без префикса и списка аргументов, |
List[str]
|
либо ('', []) если команда не найдена или текст не соответствует формату. |
Source code in maxapi/filters/command.py
__call__(event)
async
¶
Проверяет, соответствует ли сообщение заданной(ым) команде(ам).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
event
|
MessageCreated
|
Событие сообщения. |
required |
Returns:
| Type | Description |
|---|---|
Union[Dict[str, List[str]], bool]
|
dict | bool: dict с аргументами команды при совпадении, иначе False. |
Source code in maxapi/filters/command.py
CommandStart(prefix='/', check_case=False, ignore_symbol_at_sign=False, only_with_bot_username=False)
¶
Bases: Command
Фильтр для команды /start.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
prefix
|
str
|
Префикс команды (по умолчанию '/'). |
'/'
|
check_case
|
bool
|
Учитывать регистр (по умолчанию False) |
False
|
ignore_symbol_at_sign
|
bool
|
Учитывать символ "@" при отправке команды с упоминанием бота (по умолчанию False). |
False
|
only_with_bot_username
|
bool
|
Обязательно упоминать бота при отправке команды (по умолчанию False).. |
False
|
Source code in maxapi/filters/command.py
filter
¶
BaseFilter
¶
Базовый класс для фильтров.
Определяет интерфейс фильтрации событий. Потомки должны переопределять метод call.
Methods:
| Name | Description |
|---|---|
__call__ |
Асинхронная проверка события на соответствие фильтру. |
handler
¶
Handler(*args, func_event, update_type, **kwargs)
¶
Обработчик события.
Связывает функцию-обработчик с типом события, состояниями и фильтрами.
Создаёт обработчик события.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*args
|
Any
|
Список фильтров (MagicFilter, State, Command, BaseFilter, BaseMiddleware). |
()
|
func_event
|
Callable
|
Функция-обработчик. |
required |
update_type
|
UpdateType
|
Тип обновления. |
required |
**kwargs
|
Any
|
Дополнительные параметры. |
{}
|
Source code in maxapi/filters/handler.py
middleware
¶
BaseMiddleware
¶
Базовый класс для мидлварей.
Используется для обработки события до и после вызова хендлера.
__call__(handler, event_object, data)
async
¶
Вызывает хендлер с переданным событием и данными.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
handler
|
Callable
|
Хендлер события. |
required |
event_object
|
Any
|
Событие. |
required |
data
|
dict
|
Дополнительные данные. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
Результат работы хендлера. |