-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
147 lines (137 loc) · 7.24 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
import speech_recognition as sr
import os
import pyttsx3 as px
import sys
import webbrowser
import data
import time
import datetime
import random
import requests
from bs4 import BeautifulSoup
def talk(words):
engine = px.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-40)
engine.say(words)
engine.runAndWait()
now = datetime.datetime.now()
if now.hour >= 6 and now.hour < 12:
talk("Доброе утро! Сейчас " + str(now.hour) + ":" + str(now.minute))
elif now.hour >= 12 and now.hour < 18:
talk("Добрый день! Сейчас " + str(now.hour) + ":" + str(now.minute))
elif now.hour >= 18 and now.hour < 23:
talk("Добрый вечер! Сейчас " + str(now.hour) + ":" + str(now.minute))
else:
talk("Доброй ночи! Сейчас " + str(now.hour) + ":" + str(now.minute))
def command():
R = sr.Recognizer()
with sr.Microphone() as source:
print("Говорите...")
R.pause_threshold = 1.0
R.adjust_for_ambient_noise(source, duration=0.5)
audio = R.listen(source)
try:
task = R.recognize_google(audio, language='ru-RU').lower()
print("[LOG] " + task)
except sr.UnknownValueError:
print("[LOG] ValueError")
task = command()
return task
def make(task):
if task in data.hello:
talk(random.choice(data.hello))
elif task in data.goodbye:
talk(random.choice(data.goodbye))
sys.exit()
elif task in data.myname:
talk("Меня зовут Anna")
elif task in data.howareyou:
talk(random.choice(data.howareyouanswer))
elif "почему" in task:
talk("Потому что потому")
elif task == "курс доллара" or task == "а какой курс доллара":
USD_UAH = 'https://www.google.com/search?q=%D0%BA%D1%83%D1%80%D1%81+%D0%B4%D0%BE%D0%BB%D0%B0%D1%80%D0%B0&oq=%D0%BA%D1%83%D1%80%D1%81+%D0%B4%D0%BE%D0%BB%D0%B0&aqs=chrome.1.69i57j0i20i263i433j0i433j0i20i263i433j0j0i131i433j0j0i10l2j0.2318j0j7&sourceid=chrome&ie=UTF-8'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'}
full_page = requests.get(USD_UAH, headers=headers)
soup = BeautifulSoup(full_page.content, 'html.parser')
convert = soup.findAll("span", {"class": "DFlfde SwHCTb"})
talk("Курс доллара " + str(convert[0].text) + " гривны")
elif task == "курс евро" or task == "а какой курс евро":
EURO_UAH = 'https://www.google.com/search?q=%D0%B5%D0%B2%D1%80%D0%BE+%D0%BA+%D0%B3%D1%80%D0%B8%D0%B2%D0%BD%D0%B5&sxsrf=ALeKk01HgiwJ4968DbtGKjBwcTxZRtqyeg%3A1627066794718&ei=qhH7YICyK-XhrgSGh5PgBg&oq=%D0%B5%D0%B2%D1%80%D0%BE+%D0%BA+%D0%B3%D1%80%D0%B8%D0%B2%D0%BD%D0%B5&gs_lcp=Cgdnd3Mtd2l6EAMyBQgAELEDMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAOgcIABBHELADOgcIABCwAxBDOgcIIxDqAhAnOgQIIxAnOgsILhCxAxDHARCjAjoICC4QxwEQrwE6BAgAEEM6BwgAELEDEEM6DQgAEIcCELEDEIMBEBQ6BwgjELECECc6BwgAEIcCEBQ6BwgAEMkDEENKBAhBGABQoaoGWOHLBmC6zgZoA3ACeACAAZEBiAH4DJIBBDMuMTKYAQCgAQGqAQdnd3Mtd2l6sAEKyAEKwAEB&sclient=gws-wiz&ved=0ahUKEwiAr8yS8PnxAhXlsIsKHYbDBGwQ4dUDCA8&uact=5'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'}
full_page = requests.get(EURO_UAH, headers=headers)
soup = BeautifulSoup(full_page.content, 'html.parser')
convert = soup.findAll("span", {"class": "DFlfde SwHCTb"})
talk("Курс евро " + str(convert[0].text) + " гривны")
elif task == "курс биткоина" or task == "а какой курс биткоина":
BTC_USD = 'https://www.google.com/search?q=%D0%B1%D0%B8%D1%82%D0%BA%D0%BE%D0%B8%D0%BD+%D0%BA+%D0%B4%D0%BE%D0%BB%D0%BB%D0%B0%D1%80%D1%83&sxsrf=ALeKk01BVM2xWAtCHEYUoeygNiQdCfCeEg%3A1627066904451&ei=GBL7YP7fGq_rrgSFra7oDA&oq=%D0%B1%D0%B8%D1%82%D0%BA%D0%BE%D0%B8%D0%BD+%D0%BA+%D0%B4%D0%BE&gs_lcp=Cgdnd3Mtd2l6EAMYADIFCAAQsQMyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAA6BAgjECc6BwgAEIcCEBQ6CAgAELEDEIMBOgQIABBDOg0IABCHAhCxAxCDARAUOgcIABCxAxBDOgoIABCHAhCxAxAUSgQIQRgAUIDDCliC1gpgmd0KaABwAngAgAHcAYgBhgySAQYxLjExLjGYAQCgAQGqAQdnd3Mtd2l6wAEB&sclient=gws-wiz'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'}
full_page = requests.get(BTC_USD, headers=headers)
soup = BeautifulSoup(full_page.content, 'html.parser')
convert = soup.findAll("span", {"class": "pclqee"})
talk("Курс биткоина " + str(convert[0].text) + " доллара")
elif task == "открой браузер" or task == "браузер" or task == "интернет":
talk("Открываю...")
webbrowser.open_new("https://google.com")
elif task in data.thankyou:
talk("Рада стараться!")
elif task == "открой youtube" or task == "youtube":
talk("Открываю...")
webbrowser.open_new("https://www.youtube.com/")
elif task == "открой гитхаб" or task == "github":
talk("Открываю...")
webbrowser.open_new("https://github.com/")
elif task in data.flipcoin:
flip_coin = ["Орел", "Решка"]
talk(random.choice(flip_coin))
elif task == "повтори":
talk("Надо было слушать!")
elif "повтори" in task:
talk(task.replace("повтори", ""))
elif task == "я красивый":
talk("Красивее некуда")
elif task in data.offpc:
talk("Окей я выключаю твой компютер через 3 секунды")
os.system("shutdown -s -t 03")
elif task in data.whattodo:
talk("Делай что считаешь нужным.")
elif "да или нет" in task:
yes_or_no = ["да", "нет", "не знаю"]
talk(random.choice(yes_or_no))
elif task == "сколько часов":
now = datetime.datetime.now()
talk(str(now.hour) + ":" + str(now.minute))
elif task in data.acquaintance:
talk("Я что-то вроде робота, искусственный интеллект.")
elif task in data.age:
talk("У меня нет возраста я с каждым днём становлюсь только новее")
elif task in data.bad:
bad = ["Мне кажется ты торопишься с выводами", "Жаль что ты так думаешь", "Я же ещё учусь"]
talk(random.choice(bad))
elif task == "отдохни 5 минут":
talk("Хорошо я отдохну 5 минут.")
time.sleep(300)
talk("Я снова здесь")
elif task == "отдохни 10 минут":
talk("Хорошо я отдохну 10 минут.")
time.sleep(600)
talk("Я снова здесь")
elif task == "отдохни 15 минут":
talk("Хорошо я отдохну 15 минут.")
time.sleep(900)
talk("Я снова здесь")
elif task == "отдохни 30 минут":
talk("Хорошо я отдохну 30 минут.")
time.sleep(1800)
talk("Я снова здесь")
elif task == "отдохни 1 час":
talk("Хорошо я отдохну 1 час.")
time.sleep(3600)
talk("Я снова здесь")
elif task == "отдохни 2 часа":
talk("Хорошо я отдохну 2 часа.")
time.sleep(7200)
talk("Я снова здесь")
while True:
make(command())