def is_next_hidden(self, state, update: Update): length = len(DB.get_user_accessible_activities(state['u_id'], update.effective_chat.id)) - 1 page_count = ceil(length / self.IN_PAGE) if page_count <= int(state['p']): return True return False
def get_activity_buttons(self, state, update: Update): def get_keyboard_by_names(names): keyboard = list() i = 0 for name in names: button = { "name": name, "action": "select_activity", "callback": True } if i % 2 == 0: keyboard.append([button]) else: keyboard[i // 2].append(button) i += 1 return keyboard if state['q'] == "": activity_names = DB.get_user_accessible_activities( state['u_id'], update.effective_chat.id) names = [] counted = DB.count_user_activities(state['u_id']) for obj in counted: if obj['name'] in [x['name'] for x in activity_names]: names.append(obj['name']) for activity in activity_names: if activity['name'] not in names and activity['id'] != 0: names.append(activity['name']) else: names = [ obj['name'] for obj in DB.get_user_activity_by_query( update.effective_user.id, update.effective_chat.id, state['q']) ] if 'Ничего' in names: names.remove('Ничего') i = self.IN_PAGE * (int(state['page']) - 1) return get_keyboard_by_names(names[i:i + 4])
def is_next_hidden(self, state, update: Update): if state['q'] == "": length = len( DB.get_user_accessible_activities( state['u_id'], update.effective_chat.id)) - 1 else: names = [ obj['name'] for obj in DB.get_user_activity_by_query( update.effective_user.id, update.effective_chat.id, state['q']) ] if 'Ничего' in names: names.remove('Ничего') length = len(names) page_count = ceil(length / self.IN_PAGE) if page_count <= int(state['page']): return True return False
def get_activity_buttons(self, state, update: Update): def get_keyboard_by_names(names): keyboard = list() i = 0 for name in names: button = { "name": name, "action": "select_activity" } if i % 2 == 0: keyboard.append([button]) else: keyboard[i // 2].append(button) i += 1 return keyboard activity_names = DB.get_user_accessible_activities(state['u_id'], update.effective_chat.id) names = [] counted = DB.count_user_activities(state['u_id']) for obj in counted: if obj['name'] in [x['name'] for x in activity_names]: names.append(obj['name']) for activity in activity_names: if activity['name'] not in names and activity['id'] != 0: names.append(activity['name']) i = self.IN_PAGE * (int(state['p']) - 1) return get_keyboard_by_names(names[i:i + 4])