forked from BruceZhang1993/Python3VoiceHelperDemo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbot.py
More file actions
67 lines (57 loc) · 1.87 KB
/
bot.py
File metadata and controls
67 lines (57 loc) · 1.87 KB
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
#!/usr/bin/env python3
# coding: utf-8
import json
import sys
import requests
import voice
TULING_APIKEY = ""
GOODBYE = "再见。"
USERID = "pyconsole123"
WELCOME = "你好,欢迎使用图灵机器人。"
def get_ip_location():
url = "http://ip.chinaz.com/getip.aspx"
r = requests.get(url)
ipstr = r.text
ipdict = eval(ipstr, type('Dummy', (dict,), dict(__getitem__=lambda s, n: n))())
return ipdict["address"].split()[0]
def query_loop():
results = voice.baidu_voice_rec()
if results is False:
print(GOODBYE)
voice.get_baidu_voice(GOODBYE)
sys.exit(0)
if not isinstance(results, list):
print(results)
return
result = results[0]
print("Result: %s" % result)
location = get_ip_location()
payload = {"key": TULING_APIKEY, "info": result, "userid": USERID, "loc": location}
ret = requests.post("http://www.tuling123.com/openapi/api", data=payload)
result = json.loads(ret.text)
code = result["code"]
if code == 100000:
print(result["text"])
voice.get_baidu_voice(result["text"])
elif code == 200000:
print(result["text"], result["url"])
voice.get_baidu_voice(result["text"])
elif code == 302000:
print(result["text"])
voice.get_baidu_voice(result["text"])
for item in result["list"]:
print("%s - %s" % (item["article"], item["source"]))
voice.get_baidu_voice(result["article"])
print("%s" % item["detailurl"])
elif code == 308000:
print(result["text"])
voice.get_baidu_voice(result["text"])
for item in result["list"]:
print("%s" % item["name"])
voice.get_baidu_voice(item["name"])
print("%s" % item["detailurl"])
if __name__ == "__main__":
print(WELCOME)
voice.get_baidu_voice(WELCOME)
while (True):
query_loop()