Skip to content

Commit

Permalink
Fix Keyboards
Browse files Browse the repository at this point in the history
  • Loading branch information
torrua committed Nov 20, 2024
1 parent 45c5854 commit 00d29b6
Showing 1 changed file with 20 additions and 21 deletions.
41 changes: 20 additions & 21 deletions app/bot/telegram/keyboards.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
action_predy_send_card,
)


class WordKeyboard:
def __init__(self, word):
self.word = word
self.items = self._get_items()

def get_items(self):
def _get_items(self):
if self.word.type.parentable:
return self.word.parents
return self.word.complexes
Expand All @@ -36,7 +36,7 @@ def _keyboard_navi(self, index_start: int):
:return:
"""

total_num = len(self.get_items())
total_num = len(self.items)
delimiter = self._get_delimiter(total_num)
if total_num <= delimiter:
return None
Expand Down Expand Up @@ -95,7 +95,7 @@ def _keyboard_show(self):
"""
:return:
"""
total_num = len(self.get_items())
total_num = len(self.items)
number = f" ({total_num})" if total_num > 1 else ""
text_cpx_show = f"Show {self.get_title()}{number}"
cbd_predy_kb_cpx_show = {
Expand Down Expand Up @@ -128,9 +128,8 @@ def _keyboard_data(self, slice_start: int):
:param slice_start:
:return:
"""
items = self.get_items()
slice_end = self.get_slice_end(slice_start, len(items))
current_item_set = items[slice_start:slice_end]
slice_end = self.get_slice_end(slice_start, len(self.items))
current_item_set = self.items[slice_start:slice_end]

kb_items = [
{
Expand All @@ -147,34 +146,34 @@ def _keyboard_data(self, slice_start: int):
]
return Keyboa(items=kb_items, alignment=True, items_in_row=4)()

def _keyboard_complete(self, slice_start: int):
kb_data = self._keyboard_data(slice_start)
kb_navi = self._keyboard_navi(slice_start)
kb_hide = self._keyboard_hide()
kb_combo = (kb_hide, kb_data, kb_navi, kb_close())
return Keyboa.combine(kb_combo)

def get_slice_end(self, slice_start: int, total_num: int) -> int:
current_delimiter = self._get_delimiter(total_num)
last_allowed_item = slice_start + current_delimiter
slice_end = min(last_allowed_item, total_num)
return slice_end

def keyboard_cpx(self, show_list: bool = False, slice_start: int = 0):
"""
:param show_list:
:param slice_start:
:return:
"""

if self.get_items():
if not self.items:
return kb_close()

if not show_list:
return self._keyboard_show()

return self._keyboard_complete(slice_start)

def _keyboard_complete(self, slice_start: int):
kb_data = self._keyboard_data(slice_start)
kb_navi = self._keyboard_navi(slice_start)
kb_hide = self._keyboard_hide()
kb_combo = (kb_hide, kb_data, kb_navi, kb_close())
return Keyboa.combine(kb_combo)

def get_slice_end(self, slice_start: int, total_num: int) -> int:
current_delimiter = self._get_delimiter(total_num)
last_allowed_item = slice_start + current_delimiter
slice_end = min(last_allowed_item, total_num)
return slice_end


def kb_close():
"""
Expand Down

0 comments on commit 00d29b6

Please sign in to comment.