mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
* feat: add ChatMemberAdapter * chore: apply formatter * docs: added changelog * docs: rm redundant import * feat: add pre-defined groups
37 lines
912 B
Python
37 lines
912 B
Python
from typing import Tuple, Type, Union
|
|
|
|
from pydantic import Field, TypeAdapter
|
|
from typing_extensions import Annotated
|
|
|
|
from aiogram.types import (
|
|
ChatMember,
|
|
ChatMemberAdministrator,
|
|
ChatMemberBanned,
|
|
ChatMemberLeft,
|
|
ChatMemberMember,
|
|
ChatMemberOwner,
|
|
ChatMemberRestricted,
|
|
)
|
|
|
|
ChatMemberUnion = Union[
|
|
ChatMemberOwner,
|
|
ChatMemberAdministrator,
|
|
ChatMemberMember,
|
|
ChatMemberRestricted,
|
|
ChatMemberLeft,
|
|
ChatMemberBanned,
|
|
]
|
|
|
|
ChatMemberCollection = Tuple[Type[ChatMember], ...]
|
|
|
|
ChatMemberAdapter = TypeAdapter(
|
|
Annotated[
|
|
ChatMemberUnion,
|
|
Field(discriminator="status"),
|
|
]
|
|
)
|
|
|
|
ADMINS: ChatMemberCollection = (ChatMemberOwner, ChatMemberAdministrator)
|
|
USERS: ChatMemberCollection = (ChatMemberMember, ChatMemberRestricted)
|
|
MEMBERS: ChatMemberCollection = ADMINS + USERS
|
|
NOT_MEMBERS: ChatMemberCollection = (ChatMemberLeft, ChatMemberBanned)
|