diff --git a/.butcher/enums/PaidMediaType.yml b/.butcher/enums/PaidMediaType.yml index 84d328cc..acbf8176 100644 --- a/.butcher/enums/PaidMediaType.yml +++ b/.butcher/enums/PaidMediaType.yml @@ -6,7 +6,7 @@ description: | multi_parse: format: rst attribute: type - regexp: '\*([a-z_]+)\*' + regexp: "'([a-z]+)'" entities: - PaidMediaPhoto - PaidMediaPreview diff --git a/aiogram/enums/paid_media_type.py b/aiogram/enums/paid_media_type.py index 352e14ac..930028f1 100644 --- a/aiogram/enums/paid_media_type.py +++ b/aiogram/enums/paid_media_type.py @@ -7,3 +7,7 @@ class PaidMediaType(str, Enum): Source: https://core.telegram.org/bots/api#paidmedia """ + + PHOTO = "photo" + PREVIEW = "preview" + VIDEO = "video" diff --git a/aiogram/types/paid_media_photo.py b/aiogram/types/paid_media_photo.py index 688d66ec..fed3747a 100644 --- a/aiogram/types/paid_media_photo.py +++ b/aiogram/types/paid_media_photo.py @@ -3,6 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any, List, Literal from .paid_media import PaidMedia +from ..enums import PaidMediaType if TYPE_CHECKING: from .photo_size import PhotoSize @@ -15,7 +16,7 @@ class PaidMediaPhoto(PaidMedia): Source: https://core.telegram.org/bots/api#paidmediaphoto """ - type: Literal["photo"] = "photo" + type: Literal[PaidMediaType.PHOTO] = PaidMediaType.PHOTO """Type of the paid media, always 'photo'""" photo: List[PhotoSize] """The photo""" @@ -27,7 +28,7 @@ class PaidMediaPhoto(PaidMedia): def __init__( __pydantic__self__, *, - type: Literal["photo"] = "photo", + type: Literal[PaidMediaType.PHOTO] = PaidMediaType.PHOTO, photo: List[PhotoSize], **__pydantic_kwargs: Any, ) -> None: diff --git a/aiogram/types/paid_media_preview.py b/aiogram/types/paid_media_preview.py index 7cedd5a2..cd7980d3 100644 --- a/aiogram/types/paid_media_preview.py +++ b/aiogram/types/paid_media_preview.py @@ -3,6 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any, Literal, Optional from .paid_media import PaidMedia +from ..enums import PaidMediaType class PaidMediaPreview(PaidMedia): @@ -12,7 +13,7 @@ class PaidMediaPreview(PaidMedia): Source: https://core.telegram.org/bots/api#paidmediapreview """ - type: Literal["preview"] = "preview" + type: Literal[PaidMediaType.PREVIEW] = PaidMediaType.PREVIEW """Type of the paid media, always 'preview'""" width: Optional[int] = None """*Optional*. Media width as defined by the sender""" @@ -28,7 +29,7 @@ class PaidMediaPreview(PaidMedia): def __init__( __pydantic__self__, *, - type: Literal["preview"] = "preview", + type: Literal[PaidMediaType.PREVIEW] = PaidMediaType.PREVIEW, width: Optional[int] = None, height: Optional[int] = None, duration: Optional[int] = None, diff --git a/aiogram/types/paid_media_video.py b/aiogram/types/paid_media_video.py index cc96ece9..b2511ea9 100644 --- a/aiogram/types/paid_media_video.py +++ b/aiogram/types/paid_media_video.py @@ -3,6 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any, Literal from .paid_media import PaidMedia +from ..enums import PaidMediaType if TYPE_CHECKING: from .video import Video @@ -15,7 +16,7 @@ class PaidMediaVideo(PaidMedia): Source: https://core.telegram.org/bots/api#paidmediavideo """ - type: Literal["video"] = "video" + type: Literal[PaidMediaType.VIDEO] = PaidMediaType.VIDEO """Type of the paid media, always 'video'""" video: Video """The video""" @@ -27,7 +28,7 @@ class PaidMediaVideo(PaidMedia): def __init__( __pydantic__self__, *, - type: Literal["video"] = "video", + type: Literal[PaidMediaType.VIDEO] = PaidMediaType.VIDEO, video: Video, **__pydantic_kwargs: Any, ) -> None: