From 4deba689314dec2e18e56665d3b3b9fd09e67f3d Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Mon, 16 May 2022 12:33:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=B2=D0=B5=D1=82/=D0=BF=D0=BE=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- state_machine.py | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/state_machine.py b/state_machine.py index 999e9ee..25ac671 100644 --- a/state_machine.py +++ b/state_machine.py @@ -2,7 +2,8 @@ import speaker # Для разговоров import datetime # Для времени -from pyowm import OWM # использование OpenWeatherMap для получения данных о погоде (pip install pyowm) +from pyowm import OWM # Использование OpenWeatherMap для получения данных о погоде (pip install pyowm) +import random machine = None # Конечный автомат current_state = None # Текущее состояние @@ -24,7 +25,15 @@ def init(assistant_name): }, "Слушаю задание":{ "время": switchToTime, - "погода": switchToWeather + "погода": switchToWeather, + "привет": switchToHello, + "здравствуй": switchToHello, + "доброе утро": switchToHello, + "добрый день": switchToHello, + "добрый вечер": switchToHello, + "доброй ночи": switchToHello, + "пока": switchToBye, + "до встречи": switchToBye } } @@ -92,4 +101,35 @@ def switchToWeather(): speaker.speak(f"Сейчас на улице {temperature} градусов, скорость ветра {wind_speed} метров в секунду, давление {pressure} миллиметров ртутного столба") + return "Начало" + +# Переход на приветствие и на "Начало" +def switchToHello(): + helloWords = ["Привет", "Здравствуй", "Доброго времени суток"] + random_index = random.randint(0, len(helloWords)) + + # Если выпадает больше нуля - берем готовую + if (random_index > 0): + hi = helloWords[random_index-1] + else: + # Иначе генерируем время суток + now = datetime.datetime.now() + if (now.hour < 5 or now.hour > 21): + hi = "Доброй ночи" + elif (now.hour < 12): + hi = "Доброе утро" + elif (now.hour < 16): + hi = "Добрый день" + else: + hi = "Добрый вечер" + + speaker.speak(hi) + + return "Начало" + +# Переход на приветствие и на "Начало" +def switchToBye(): + helloWords = ["Пока", "Удачи", "Я всегда тут, буду ждать"] + speaker.speak(random.choice(helloWords)) + return "Начало" \ No newline at end of file