summaryrefslogtreecommitdiff
path: root/keyboards.py
diff options
context:
space:
mode:
authorAndrew Guschin <guschin@altlinux.org>2024-10-15 20:08:19 +0400
committerAndrew Guschin <guschin@altlinux.org>2024-10-15 20:08:19 +0400
commitdd177e3d2c4579bf435c1f583a1ceab3fb438791 (patch)
treec721d654b78d504e88449d2b51f78ceb2eea2c3c /keyboards.py
parent3562ed767dbddfbcac321c7006962e1283eb63af (diff)
move project files to src
Diffstat (limited to 'keyboards.py')
-rw-r--r--keyboards.py123
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],
- ]