Skip to content

Commit

Permalink
i-AIOG-13: Add explanation and explanation_entities to the Poll object
Browse files Browse the repository at this point in the history
  • Loading branch information
JrooTJunior committed Apr 25, 2020
1 parent b42ea0f commit 7e3f83e
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions aiogram/types/poll.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

from ..utils import helper
from . import base, fields
from .message_entity import MessageEntity
from .user import User
from ..utils.text_decorations import html_decoration, markdown_decoration


class PollOption(base.TelegramObject):
Expand Down Expand Up @@ -44,6 +46,31 @@ class Poll(base.TelegramObject):
type: base.String = fields.Field()
allows_multiple_answers: base.Boolean = fields.Field()
correct_option_id: base.Integer = fields.Field()
explanation: base.String = fields.Field()
explanation_entities: base.String = fields.ListField(base=MessageEntity)

def parse_entities(self, as_html=True):
text_decorator = html_decoration if as_html else markdown_decoration

return text_decorator.unparse(self.explanation or '', self.explanation_entities or [])

@property
def md_explanation(self) -> str:
"""
Explanation formatted as markdown.
:return: str
"""
return self.parse_entities(False)

@property
def html_explanation(self) -> str:
"""
Explanation formatted as HTML
:return: str
"""
return self.parse_entities()


class PollType(helper.Helper):
Expand Down

0 comments on commit 7e3f83e

Please sign in to comment.