Skip to content

Commit decad45

Browse files
authored
feat: make InlineKeyboardMarkup JsonDeserializable
feat: make InlineKeyboardMarkup JsonDeserializable, add de_json func to InlineKeyboardMarkup object
1 parent 630a9a5 commit decad45

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

telebot/types.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -941,10 +941,18 @@ def to_dict(self):
941941
return {'type': self.type}
942942

943943

944-
class InlineKeyboardMarkup(Dictionaryable, JsonSerializable):
944+
class InlineKeyboardMarkup(Dictionaryable, JsonSerializable, JsonDeserializable)):
945945
max_row_keys = 8
946+
947+
@classmethod
948+
def de_json(cls, json_string):
949+
if (json_string is None):
950+
return None
951+
obj = cls.check_json(json_string)
952+
keyboard = [[button for button in row] for row in obj['inline_keyboard']]
953+
return cls(keyboard)
946954

947-
def __init__(self, row_width=3):
955+
def __init__(self, keyboard=[] ,row_width=3):
948956
"""
949957
This object represents an inline keyboard that appears
950958
right next to the message it belongs to.
@@ -957,7 +965,7 @@ def __init__(self, row_width=3):
957965
row_width = self.max_row_keys
958966

959967
self.row_width = row_width
960-
self.keyboard = []
968+
self.keyboard = keyboard
961969

962970
def add(self, *args, row_width=None):
963971
"""

0 commit comments

Comments
 (0)