diff --git a/pyrogram/client/types/messages_and_media/poll.py b/pyrogram/client/types/messages_and_media/poll.py index 16cafedd..fffd690b 100644 --- a/pyrogram/client/types/messages_and_media/poll.py +++ b/pyrogram/client/types/messages_and_media/poll.py @@ -38,11 +38,20 @@ class Poll(Object, Update): options (List of :obj:`PollOption`): List of poll options. + total_voter_count (``int``): + Total number of users that voted in the poll. + is_closed (``bool``): True, if the poll is closed. - total_voters (``int``): - Total count of voters for this poll. + is_anonymous (``bool``, *optional*): + True, if the poll is anonymous + + type (``str``, *optional*): + Poll type, currently can be "regular" or "quiz". + + allows_multiple_answers (``bool``, *optional*): + True, if the poll allows multiple answers. chosen_option (``int``, *optional*): Index of your chosen option (0-9), None in case you haven't voted yet. @@ -55,8 +64,12 @@ class Poll(Object, Update): id: str, question: str, options: List[PollOption], + total_voter_count: int, is_closed: bool, - total_voters: int, + is_anonymous: bool = None, + type: str = None, + allows_multiple_answers: bool = None, + # correct_option_id: int, chosen_option: int = None ): super().__init__(client) @@ -64,15 +77,18 @@ class Poll(Object, Update): self.id = id self.question = question self.options = options + self.total_voter_count = total_voter_count self.is_closed = is_closed - self.total_voters = total_voters + self.is_anonymous = is_anonymous + self.type = type + self.allows_multiple_answers = allows_multiple_answers + # self.correct_option_id = correct_option_id self.chosen_option = chosen_option @staticmethod def _parse(client, media_poll: Union[types.MessageMediaPoll, types.UpdateMessagePoll]) -> "Poll": - poll = media_poll.poll - results = media_poll.results.results - total_voters = media_poll.results.total_voters + poll = media_poll.poll # type: types.Poll + results = media_poll.results.results # type: types.PollResults chosen_option = None options = [] @@ -99,8 +115,11 @@ class Poll(Object, Update): id=str(poll.id), question=poll.question, options=options, + total_voter_count=media_poll.results.total_voters, is_closed=poll.closed, - total_voters=total_voters, + is_anonymous=not poll.public_voters, + type="quiz" if poll.quiz else "regular", + allows_multiple_answers=poll.multiple_choice, chosen_option=chosen_option, client=client ) @@ -131,8 +150,8 @@ class Poll(Object, Update): id=str(update.poll_id), question="", options=options, + total_voter_count=update.results.total_voters, is_closed=False, - total_voters=update.results.total_voters, chosen_option=chosen_option, client=client )