diff options
Diffstat (limited to 'states.py')
| -rw-r--r-- | states.py | 22 |
1 files changed, 20 insertions, 2 deletions
@@ -11,8 +11,19 @@ import backend_api from telegram import Update, User, Bot +def save_state(func): + def wrapper(bot: Bot, update: Update, user_data: dict, *args, **kwargs): + print(user_data) + last_state = func(bot, update, user_data, *args, **kwargs) + backend_api.save_state(last_state, update.message.from_user.id, user_data) + return last_state + + return wrapper + + class States: @staticmethod + @save_state def wait_for_username(bot: Bot, update: Update, user_data: dict): update.message.reply_text( "По правилам квиза ты не можешь участвовать, если у тебя не указано " @@ -22,6 +33,7 @@ class States: return WAIT_FOR_USERNAME @staticmethod + @save_state def main_menu(bot: Bot, update: Update, user_data: dict): user_data["chosen_task"] = None @@ -34,6 +46,7 @@ class States: return MAIN_MENU @staticmethod + @save_state def choose_task(bot: Bot, update: Update, user_data: dict): user_data["chosen_task"] = None @@ -44,21 +57,24 @@ class States: return TASK_CHOOSING @staticmethod + @save_state def top_10(bot: Bot, update: Update, user_data: dict): update.message.reply_text("какая то хуйня") return MAIN_MENU @staticmethod + @save_state def rules(bot: Bot, update: Update, user_data: dict): update.message.reply_text("какая то хуйня") return MAIN_MENU @staticmethod + @save_state def show_task(bot: Bot, update: Update, user_data: dict): if "chosen_task" in user_data and user_data["chosen_task"] is not None: task_title = user_data["chosen_task"] else: - task_title = get_input(update, user_data) + task_title = update.message.text user_data["chosen_task"] = task_title status_code, task = backend_api.get_task(task_title) @@ -83,6 +99,7 @@ class States: return TASK_SHOWN @staticmethod + @save_state def type_answer(bot: Bot, update: Update, user_data: dict): update.message.reply_text( "Вводи свой ответ, я его проверю.", @@ -91,8 +108,9 @@ class States: return ANSWERING @staticmethod + @save_state def accept_answer(bot: Bot, update: Update, user_data: dict): - answer = get_input(update, user_data) + answer = update.message.text if answer == "хуй": update.message.reply_text( "Ты ввел правильный ответ! Возвращайся к другим задачам", |