diff options
| author | Andrew Guschin <guschin@altlinux.org> | 2024-10-15 20:08:19 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin@altlinux.org> | 2024-10-15 20:08:19 +0400 |
| commit | dd177e3d2c4579bf435c1f583a1ceab3fb438791 (patch) | |
| tree | c721d654b78d504e88449d2b51f78ceb2eea2c3c /keyboards.py | |
| parent | 3562ed767dbddfbcac321c7006962e1283eb63af (diff) | |
move project files to src
Diffstat (limited to 'keyboards.py')
| -rw-r--r-- | keyboards.py | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/keyboards.py b/keyboards.py deleted file mode 100644 index aa8d761..0000000 --- a/keyboards.py +++ /dev/null @@ -1,123 +0,0 @@ -import backend_api -from abc import ABC - - -class Keyboard(ABC): - @classmethod - def get_keyboard(cls, telegram_id=None): - pass - - -class MenuKeyboard(Keyboard): - CHOOSE_TASK = "Выбрать задание📚" - TOP_10 = "hidden Топ-10📊" - RULES = "Правилаℹ️" - ADMIN = "/admin" - HELP = "Связаться с Базальт СПО🐧" - - @classmethod - def get_keyboard(cls, telegram_id=None, solved=False): - if telegram_id is not None: - status_code, data = backend_api.get_profile(telegram_id) - if status_code == 200 and data["is_admin"]: - return [ - [cls.ADMIN], - [cls.CHOOSE_TASK], - [cls.TOP_10, cls.RULES], - [cls.HELP], - ] - - if solved: - return [ - [cls.RULES], - [cls.HELP], - ] - else: - return [ - [cls.CHOOSE_TASK], - [cls.RULES], - [cls.HELP], - ] - - -class BackToMenuKeyboard(Keyboard): - CANCEL = "Вернуться в меню↩️" - - @classmethod - def get_keyboard(cls, telegram_id=None): - return [[cls.CANCEL]] - - -class TasksKeyboard(Keyboard): - CANCEL = "Вернуться в меню↩️" - - @classmethod - def get_keyboard(cls, telegram_id=None): - status, tasks = backend_api.get_published_tasks() - titles_keyboard = [[cls.CANCEL]] - if status == 200: - titles = [] - for task in sorted(tasks, key=lambda t: t.get("title")): - titles.append([task.get("title")]) - titles_keyboard.extend(titles) - - return titles_keyboard - - -class PublishTasksKeyboard(Keyboard): - CANCEL = "Вернуться в меню↩️" - - @classmethod - def get_keyboard(cls, telegram_id=None): - status, tasks = backend_api.get_tasks() - titles_keyboard = [[cls.CANCEL]] - if status == 200: - titles_keyboard.extend([task.get("title")] for task in tasks) - - return titles_keyboard - - -class TaskChosenKeyboard(Keyboard): - TYPE_ANSWER = "Ввести ответ✏️" - CANCEL = "Назад↩️" - - @classmethod - def get_keyboard(cls, telegram_id=None): - return [ - # [cls.TYPE_ANSWER], - [cls.CANCEL], - ] - - -class ContinueKeyboard(Keyboard): - CONTINUE = "Продолжить➡️" - - @classmethod - def get_keyboard(cls, telegram_id=None): - return [[cls.CONTINUE]] - - -class AnsweringKeyboard(Keyboard): - CANCEL = "Отмена↩️" - - @classmethod - def get_keyboard(cls, telegram_id=None): - return [[cls.CANCEL]] - - -class AdminKeyboard(Keyboard): - CANCEL = "Вернуться в меню↩️" - PUBLISH_TASK = "Опубликовать задачу" - HIDE_TASK = "Скрыть задачу" - ANNOUNCE = "Сделать объявление" - MESSAGE_PLAYER = "Написать сообщение от имени бота" - - @classmethod - def get_keyboard(cls, telegram_id=None): - return [ - [cls.CANCEL], - [cls.PUBLISH_TASK], - [cls.HIDE_TASK], - [cls.ANNOUNCE], - [cls.MESSAGE_PLAYER], - ] |