mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
send_poll fix with PollOptions
Now send_poll correctly operates with PollOptions passed as array of PollOption.
This commit is contained in:
parent
3d26a0ce0d
commit
53c98328c1
@ -1277,7 +1277,7 @@ def send_poll(
|
||||
payload = {
|
||||
'chat_id': str(chat_id),
|
||||
'question': question,
|
||||
'options': json.dumps(options)}
|
||||
'options': json.dumps(_convert_poll_options(options))}
|
||||
|
||||
if is_anonymous is not None:
|
||||
payload['is_anonymous'] = is_anonymous
|
||||
@ -1347,6 +1347,20 @@ def _convert_entites(entites):
|
||||
return entites
|
||||
|
||||
|
||||
def _convert_poll_options(poll_options):
|
||||
if poll_options is None:
|
||||
return None
|
||||
elif len(poll_options) == 0:
|
||||
return []
|
||||
elif isinstance(poll_options[0], str):
|
||||
# Compatibility mode with previous bug when only list of string was accepted as poll_options
|
||||
return poll_options
|
||||
elif isinstance(poll_options[0], types.JsonSerializable):
|
||||
return [option.text for option in poll_options]
|
||||
else:
|
||||
return poll_options
|
||||
|
||||
|
||||
def convert_input_media(media):
|
||||
if isinstance(media, types.InputMedia):
|
||||
return media.convert_input_media()
|
||||
|
@ -2527,7 +2527,8 @@ class InputMediaDocument(InputMedia):
|
||||
return ret
|
||||
|
||||
|
||||
class PollOption(JsonSerializable, JsonDeserializable):
|
||||
class PollOption(JsonDeserializable):
|
||||
#class PollOption(JsonSerializable, JsonDeserializable):
|
||||
@classmethod
|
||||
def de_json(cls, json_string):
|
||||
if (json_string is None): return None
|
||||
@ -2539,10 +2540,10 @@ class PollOption(JsonSerializable, JsonDeserializable):
|
||||
def __init__(self, text, voter_count = 0):
|
||||
self.text = text
|
||||
self.voter_count = voter_count
|
||||
|
||||
def to_json(self):
|
||||
# send_poll Option is a simple string: https://core.telegram.org/bots/api#sendpoll
|
||||
return json.dumps(self.text)
|
||||
# Converted in _convert_poll_options
|
||||
# def to_json(self):
|
||||
# # send_poll Option is a simple string: https://core.telegram.org/bots/api#sendpoll
|
||||
# return json.dumps(self.text)
|
||||
|
||||
|
||||
class Poll(JsonDeserializable):
|
||||
|
Loading…
Reference in New Issue
Block a user