-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflask_server.py
More file actions
56 lines (47 loc) · 1.55 KB
/
flask_server.py
File metadata and controls
56 lines (47 loc) · 1.55 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
import TLHCore, HCHScore, CHGSHore, PTGSHore
import PIAN
from flask import Flask, request
import json
import configparser
import ssl
config = configparser.ConfigParser()
config.read('config.ini',encoding="utf8")
host = config.get('General', 'host')
port = config.getint('General', 'port')
SSL = config.getboolean('SSL', 'enable')
if SSL:
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain(config.get('SSL', 'cert'), config.get('SSL', 'key'))
app = Flask(__name__)
def server(client_data, school):
client_data = request.form
server_datas = {
'TLHC': TLHCore,
'HCHS': HCHScore,
'CHGSH': CHGSHore
}
try:
server_data = server_datas[school].get(client_data['account'], client_data['password'], client_data['mode'])
except ValueError:
return '{"error":"Account or password Error!"}'
return server_data if isinstance(server_data, str) else json.dumps(server_data, ensure_ascii=False)
@app.route('/TLHC', methods=['POST'])
def TLHC():
return server(request.form, 'TLHC')
@app.route('/HCHS', methods=['POST'])
def HCHS():
return server(request.form, 'HCHS')
@app.route('/CHGSH', methods=['POST'])
def CHGSH():
return server(request.form, 'CHGSH')
@app.route('/PTGSH', methods=['POST'])
def CHGSH():
return server(request.form, 'PTGSH')
@app.route('/PIAN', methods=['POST'])
def CHGSH():
return server(request.form, 'PIAN')
if __name__ == '__main__':
if SSL:
app.run(host=host, port=port, ssl_context=context)
else:
app.run(host=host, port=port)