telegram.Poll

class telegram.Poll(id, question, options, total_voter_count, is_closed, is_anonymous, type, allows_multiple_answers, correct_option_id=None, explanation=None, explanation_entities=None, open_period=None, close_date=None, **_kwargs)

Bases: telegram.base.TelegramObject

This object contains information about a poll.

Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their id is equal.

id

Unique poll identifier.

Type

str

question

Poll question, 1-300 characters.

Type

str

options

List of poll options.

Type

List[PollOption]

total_voter_count

Total number of users that voted in the poll.

Type

int

is_closed

True, if the poll is closed.

Type

bool

is_anonymous

True, if the poll is anonymous.

Type

bool

type

Poll type, currently can be REGULAR or QUIZ.

Type

str

allows_multiple_answers

True, if the poll allows multiple answers.

Type

bool

correct_option_id

Optional. Identifier of the correct answer option.

Type

int

explanation

Optional. Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll.

Type

str

explanation_entities

Optional. Special entities like usernames, URLs, bot commands, etc. that appear in the explanation.

Type

List[telegram.MessageEntity]

open_period

Optional. Amount of time in seconds the poll will be active after creation.

Type

int

close_date

Optional. Point in time when the poll will be automatically closed.

Type

datetime.datetime

Parameters
  • id (str) – Unique poll identifier.

  • question (str) – Poll question, 1-300 characters.

  • options (List[PollOption]) – List of poll options.

  • is_closed (bool) – True, if the poll is closed.

  • is_anonymous (bool) – True, if the poll is anonymous.

  • type (str) – Poll type, currently can be REGULAR or QUIZ.

  • allows_multiple_answers (bool) – True, if the poll allows multiple answers.

  • correct_option_id (int, optional) – 0-based identifier of the correct answer option. Available only for polls in the quiz mode, which are closed, or was sent (not forwarded) by the bot or to the private chat with the bot.

  • explanation (str, optional) – Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters.

  • explanation_entities (List[telegram.MessageEntity], optional) – Special entities like usernames, URLs, bot commands, etc. that appear in the explanation.

  • open_period (int, optional) – Amount of time in seconds the poll will be active after creation.

  • close_date (datetime.datetime, optional) – Point in time (Unix timestamp) when the poll will be automatically closed. Converted to datetime.datetime.

MAX_OPTION_LENGTH: ClassVar[int] = 100

telegram.constants.MAX_POLL_OPTION_LENGTH

MAX_QUESTION_LENGTH: ClassVar[int] = 300

telegram.constants.MAX_POLL_QUESTION_LENGTH

QUIZ: ClassVar[str] = 'quiz'

telegram.constants.POLL_QUIZ

REGULAR: ClassVar[str] = 'regular'

telegram.constants.POLL_REGULAR

classmethod de_json(data, bot)

See telegram.TelegramObject.de_json().

parse_explanation_entities(types=None)

Returns a dict that maps telegram.MessageEntity to str. It contains entities from this polls explanation filtered by their type attribute as the key, and the text that each entity belongs to as the value of the dict.

Note

This method should always be used instead of the explanation_entities attribute, since it calculates the correct substring from the message text based on UTF-16 codepoints. See parse_explanation_entity for more info.

Parameters

types (List[str], optional) – List of MessageEntity types as strings. If the type attribute of an entity is contained in this list, it will be returned. Defaults to telegram.MessageEntity.ALL_TYPES.

Returns

A dictionary of entities mapped to the text that belongs to them, calculated based on UTF-16 codepoints.

Return type

Dict[telegram.MessageEntity, str]

parse_explanation_entity(entity)

Returns the text from a given telegram.MessageEntity.

Note

This method is present because Telegram calculates the offset and length in UTF-16 codepoint pairs, which some versions of Python don’t handle automatically. (That is, you can’t just slice Message.text with the offset and length.)

Parameters

entity (telegram.MessageEntity) – The entity to extract the text from. It must be an entity that belongs to this message.

Returns

The text of the given entity.

Return type

str

Raises

RuntimeError – If the poll has no explanation.

to_dict()

See telegram.TelegramObject.to_dict().