TGBotReffBook

Форк
0
/
keybords.py 
82 строки · 4.0 Кб
1
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
2

3
from app.data.keyspace import Separators
4
from app.data.urls import SCHEDULE_URL
5

6

7
class InitialKeyboard:
8
    getScheduleTxt = 'schedule'
9
    searchGroupTxt = 'search_grp'
10
    searchTeacherTxt = 'search_teacher'
11
    searchPlaceTxt = 'search_place'
12
    toMenuTxt = 'menu'
13

14
    """Админские кнопки"""
15
    clearCache = "clear_cache"
16
    userCountBtn = "user_count"
17
    writeToUsers = "write_to_users"
18

19
    @staticmethod
20
    def getKeyboard():
21
        getScheduleBtn = InlineKeyboardButton('Найти расписание', callback_data=InitialKeyboard.getScheduleTxt)
22
        searchGroupBtn = InlineKeyboardButton('Поиск по группе', callback_data=InitialKeyboard.searchGroupTxt)
23
        searchTeacherBtn = InlineKeyboardButton('Поиск по преподавателю',
24
                                                callback_data=InitialKeyboard.searchTeacherTxt)
25
        searchPlaceBtn = InlineKeyboardButton('Поиск по аудитории',
26
                                              callback_data=InitialKeyboard.searchPlaceTxt)
27
        return InlineKeyboardMarkup(row_width=1).row(getScheduleBtn).row(searchGroupBtn).row(searchTeacherBtn).row(
28
            searchPlaceBtn)
29

30
    @staticmethod
31
    def getAdminKeyboard():
32
        getCacheBtn = InlineKeyboardButton('Очистить кэш', callback_data=InitialKeyboard.clearCache)
33
        getUserCountBtn = InlineKeyboardButton('Количество пользователей в бд',
34
                                               callback_data=InitialKeyboard.userCountBtn)
35
        writeToUsers = InlineKeyboardButton('Написать всем пользователям',
36
                                            callback_data=InitialKeyboard.writeToUsers)
37
        return InlineKeyboardMarkup(row_width=1).row(getCacheBtn).row(getUserCountBtn).row(writeToUsers)
38

39
    @staticmethod
40
    def getToMenuKeyboard():
41
        toMenuBtn = InlineKeyboardButton('Меню', callback_data=InitialKeyboard.toMenuTxt)
42
        return InlineKeyboardMarkup(row_width=1).row(toMenuBtn)
43

44

45
class ModifyKeyboard:
46
    @staticmethod
47
    def addCacheGroupButton(markup: InlineKeyboardMarkup, main_data: int, group_name: str, key_word: str,
48
                            text: str = "Группа"):
49
        getCachedScheduleBtn = InlineKeyboardButton(text + f' {group_name}',
50
                                                    callback_data=key_word + Separators.KEY_DATA
51
                                                                  + group_name + Separators.DATA_META + str(main_data))
52
        markup.add(getCachedScheduleBtn)
53

54
    @staticmethod
55
    def addCacheTeacherButton(markup: InlineKeyboardMarkup, main_data: int, teacher_name: str, key_word: str,
56
                              text: str = "Преподаватель"):
57
        getCachedScheduleBtn = InlineKeyboardButton(text + f' {teacher_name}',
58
                                                    callback_data=key_word + Separators.KEY_DATA + str(main_data))
59
        markup.add(getCachedScheduleBtn)
60

61
    @staticmethod
62
    def addPolyLinkGroupButton(markup: InlineKeyboardMarkup):
63
        getUrlScheduleBtn = InlineKeyboardButton("Сайт с расписанием", url=SCHEDULE_URL)
64
        markup.add(getUrlScheduleBtn)
65

66

67
class ScheduleKeyboard:
68
    @staticmethod
69
    def createKeyboardRows(rows: dict, key_word: str, rows_count: int = 1):
70
        rows_markup = InlineKeyboardMarkup(row_width=rows_count)
71
        for row_key in rows.keys():
72
            btn = InlineKeyboardButton(rows[row_key], callback_data=key_word + Separators.KEY_DATA + str(row_key))
73
            rows_markup.insert(btn)
74
        return rows_markup
75

76
    @staticmethod
77
    def createKeyboardListRows(rows: list, key_word: str):
78
        rows_markup = InlineKeyboardMarkup(row_width=1)
79
        for row in rows:
80
            btn = InlineKeyboardButton(row, callback_data=key_word + Separators.KEY_DATA + str(row))
81
            rows_markup.add(btn)
82
        return rows_markup
83

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.