Add chat member tools (#1527)

* feat: add ChatMemberAdapter

* chore: apply formatter

* docs: added changelog

* docs: rm redundant import

* feat: add pre-defined groups
This commit is contained in:
Oleg A 2024-07-06 20:34:07 +03:00 committed by GitHub
parent 5f05dfc664
commit 46e033e6da
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 200 additions and 6 deletions

View file

@ -0,0 +1,37 @@
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)