From a2d7e6357ea7d9ffcd361580b5d48eefeb1e69cb Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 11 Feb 2020 18:52:54 +0400 Subject: Implemented basic state handling and bot views. --- keyboards.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 keyboards.py (limited to 'keyboards.py') diff --git a/keyboards.py b/keyboards.py new file mode 100644 index 0000000..5966d90 --- /dev/null +++ b/keyboards.py @@ -0,0 +1,69 @@ +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 = "Топ-10" + RULES = "Правила" + ADMIN = "/admin" + + @classmethod + def get_keyboard(cls, telegram_id=None): + return [ + [cls.CHOOSE_TASK], + [cls.TOP_10, cls.RULES], + ] + + +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): + tasks = backend_api.get_tasks() + titles_keyboard = [[cls.CANCEL]] + 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]] -- cgit v1.2.3