diff --git a/helpers/alice.py b/helpers/alice.py index 0dd3487..18674da 100644 --- a/helpers/alice.py +++ b/helpers/alice.py @@ -1,9 +1,32 @@ import logging +from typing import Optional from daemons.bot import bot from helpers.mongo import mongo +def try_parse(message: str) -> Optional[int]: + letters = { + "ноль": 0, + "один": 1, + "два": 2, + "три": 3, + "четыре": 4, + "пять": 5, + "шесть": 6, + "семь": 7, + "восемь": 8, + "девять": 9 + } + final = 0 + for word in message.split(): + try: + final = final * 10 + letters[word] + except KeyError: + return None + return final + + class Processor: def __init__(self, data: dict): self.data = data @@ -22,7 +45,7 @@ class Processor: logging.info("user %s is saying\"%s\"", self.user_id, self.message) if "что ты умеешь" in self.message or "помощь" in self.message: return { - "text": "Я буду тебе подсказывать расписание занятий из РУЗа. Чтобы подключить меня к своему расписанию, зайди в бота, нажми на кнопку \"Подключение Алисы\" и назови мне код из сообщения." + "text": "Я буду тебе подсказывать расписание занятий из РУЗа. Чтобы подключить меня к своему расписанию, зайди в бота, нажми на кнопку \"Подключение Алисы\" и назови мне код из сообщения по одной цифре." } if self.data['session']['new']: if self.user_id is None: @@ -31,7 +54,7 @@ class Processor: user = mongo.users_collection.find_one({"yandex_id": self.user_id}) if user is None: return { - "text": "Привет! Я буду тебе подсказывать расписание занятий из РУЗа. Чтобы подключить меня к своему расписанию, зайди в бота, нажми на кнопку \"Подключение Алисы\" и назови мне код из сообщения." + "text": "Привет! Я буду тебе подсказывать расписание занятий из РУЗа. Чтобы подключить меня к своему расписанию, зайди в бота, нажми на кнопку \"Подключение Алисы\" и назови мне код из сообщения по одной цифре." } else: lesson = self.get_lesson_for_user(user['hse_id']) @@ -45,9 +68,9 @@ class Processor: "end_session": True } else: - hse_id = self.message.replace(' ', '') + hse_id = try_parse(self.message) try: - user = mongo.users_collection.find_one({"hse_id": int(hse_id)}) + user = mongo.users_collection.find_one({"hse_id": hse_id}) except ValueError: return { "text": "Извини, не могу разобрать код, назови его еще раз"