-
Notifications
You must be signed in to change notification settings - Fork 0
/
AssignmentAssist.py
61 lines (55 loc) · 1.81 KB
/
AssignmentAssist.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
import PySimpleGUI as sg
import wolframalpha
import wikipedia
import pyttsx3
import requests
import json
from keys import headers, app_id
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
engine.setProperty('volume',1.0)
engine.setProperty('rate', 150)
sg.theme("dark blue 2")
client = wolframalpha.Client(app_id)
layout = [[sg.Text("What's your query?")],
[sg.InputText()],
[sg.Text("Where do you want the result from?"),sg.Combo(['Online Search','Wikipedia', 'Wolfram Alpha'])],
[sg.Text("Text-To-Speech"),sg.Combo(['Yes','No'])],
[sg.Button('Search', bind_return_key = 'True'), sg.Button('Quit')]]
window = sg.Window('Assignment Assist', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED or event == 'Quit':
break
result = "Your Query is invalid"
if values[1] == 'Wikipedia':
try:
result = wikipedia.summary(values[0], sentences=5)
except:
pass
elif values[1] == 'Online Search':
result = ""
params = (
("q",values[0]),
("device","desktop"),
("location","Manhattan,New York,United States"),
)
resp = requests.get('https://app.zenserp.com/api/v2/search', headers=headers, params=params)
response = resp.json()
for res in response["organic"]:
try:
result = result + "\n" + res['description']
except:
pass
else:
try:
res = client.query(values[0])
result = next(res.results).text
except:
pass
sg.popup_scrolled(result, title = "Results", non_blocking = True)
if values[2] == 'Yes':
engine.say(result)
engine.runAndWait()
window.close()