diff --git a/aiogram/types/__init__.py b/aiogram/types/__init__.py index e4e27e1a..35461bb9 100644 --- a/aiogram/types/__init__.py +++ b/aiogram/types/__init__.py @@ -45,7 +45,7 @@ from .passport_element_error import PassportElementError, PassportElementErrorDa PassportElementErrorSelfie from .passport_file import PassportFile from .photo_size import PhotoSize -from .poll import PollOption, Poll, PollAnswer +from .poll import PollOption, Poll, PollAnswer, PollType from .pre_checkout_query import PreCheckoutQuery from .reply_keyboard import KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove, KeyboardButtonPollType from .response_parameters import ResponseParameters @@ -150,6 +150,7 @@ __all__ = ( 'Poll', 'PollAnswer', 'PollOption', + 'PollType', 'PreCheckoutQuery', 'ReplyKeyboardMarkup', 'ReplyKeyboardRemove', diff --git a/aiogram/types/poll.py b/aiogram/types/poll.py index e5a485d4..86b41d7e 100644 --- a/aiogram/types/poll.py +++ b/aiogram/types/poll.py @@ -1,7 +1,7 @@ import typing -from . import base -from . import fields +from ..utils import helper +from . import base, fields from .user import User @@ -11,6 +11,7 @@ class PollOption(base.TelegramObject): https://core.telegram.org/bots/api#polloption """ + text: base.String = fields.Field() voter_count: base.Integer = fields.Field() @@ -21,6 +22,7 @@ class PollAnswer(base.TelegramObject): https://core.telegram.org/bots/api#pollanswer """ + poll_id: base.String = fields.Field() user: User = fields.Field(base=User) option_ids: typing.List[base.Integer] = fields.ListField() @@ -32,6 +34,7 @@ class Poll(base.TelegramObject): https://core.telegram.org/bots/api#poll """ + id: base.String = fields.Field() question: base.String = fields.Field() options: typing.List[PollOption] = fields.ListField(base=PollOption) @@ -41,3 +44,10 @@ class Poll(base.TelegramObject): type: base.String = fields.Field() allows_multiple_answers: base.Boolean = fields.Field() correct_option_id: base.Integer = fields.Field() + + +class PollType(helper.Helper): + mode = helper.HelperMode.snake_case + + REGULAR = helper.Item() + QUIZ = helper.Item() diff --git a/aiogram/types/reply_keyboard.py b/aiogram/types/reply_keyboard.py index 6aa4ad24..ced20417 100644 --- a/aiogram/types/reply_keyboard.py +++ b/aiogram/types/reply_keyboard.py @@ -12,7 +12,7 @@ class KeyboardButtonPollType(base.TelegramObject): """ type: base.String = fields.Field() - def __init__(self, type: base.String): + def __init__(self, type: typing.Optional[base.String] = None): super(KeyboardButtonPollType, self).__init__(type=type)