mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
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:
parent
5f05dfc664
commit
46e033e6da
4 changed files with 200 additions and 6 deletions
37
aiogram/utils/chat_member.py
Normal file
37
aiogram/utils/chat_member.py
Normal 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue