i-AIOG-13: Add explanation and explanation_entities to the Poll object

This commit is contained in:
Alex Root Junior 2020-04-25 17:30:44 +03:00
parent b42ea0f2ce
commit 7e3f83ebfe

View file

@ -2,7 +2,9 @@ import typing
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):
@ -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):