modify the struct of grade_data

This commit is contained in:
lijingwei 2020-02-09 13:42:11 +08:00
parent 2e09048d66
commit 8b780d27f1
3 changed files with 85 additions and 8 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
lib/__pycache__/allFunction.cpython-37.pyc
lib/__pycache__/crawler.cpython-37.pyc
lib/__pycache__/mail.cpython-37.pyc
.vscode/settings.json

11
coc.py
View File

@ -3,15 +3,16 @@ import sys
sys.path.append('./lib')
from allFunction import manageLogin
from flask import Flask, request
from flask import Flask, request, session
app = Flask(__name__)
if __name__ == '__main__':
app.run()
# 登录接口前端提供cid和pwd包装在data里边然后md5校验也就是data:{cid,pwd,sign}
@app.route('/api/login',methods=['POST'])
def login():
res = manageLogin(request)
return res
return res
if __name__ == '__main__':
app.debug = True
app.run()

View File

@ -48,9 +48,78 @@ def getGrade(Ip, S):
data = json.loads(r.content.decode('utf-8'))
if data['state'] != 0:
return {'errcode': 102, 'errmsg': '教务挂了'}
data_cache = []
#成绩总览
GradeStatistics = {
'total_GPA': data['data']['GradeStatistics']['PJJD'],
'total_credit': data['data']['GradeStatistics']['SDXF'],
'total_kill': data['data']['GradeStatistics']['TGMS'],
'total_dead': data['data']['GradeStatistics']['WTGMS']
}
#分学期成绩
grade_list = []
#最后一次遍历到的学期
last_term = ''
last_term_data = {}
last_term_grade_list = []
last_term_kill = 0
last_term_dead = 0
last_term_total_credit = 0
last_term_total_c_x_g = 0#sum(学分*绩点)
last_term_GPA = 0
for item in data['data']['GradeList']:
data_cache.append(item['LessonInfo']['KCMC']+':'+item['ShowYXCJ'])
#如果学期改变
if last_term != item['KSXNXQ']:
#初始化所有变量
if last_term != '':
last_term_GPA = last_term_total_c_x_g / last_term_total_credit
grade_list.append(
{
'term_time': last_term,
'term_GPA': last_term_GPA,
'term_kill': last_term_kill,
'term_dead': last_term_dead,
'term_credit': last_term_total_credit,
'term_grade': last_term_grade_list
}
)
last_term_grade_list = []
last_term_kill = 0
last_term_dead = 0
last_term_total_c_x_g = 0
last_term_total_credit = 0
last_term_GPA = 0
last_term = item['KSXNXQ']
last_term_grade_list.append(
{
'title': item['LessonInfo']['KCMC'],
'credit': item['XF'],
'grade': item['ShowYXCJ'],
'kill': 'yes' if (item['YXCJ'] > 0) else 'no'
}
)
if item['YXCJ'] < 60:
last_term_dead += 1
else:
last_term_kill += 1
last_term_total_credit += item['XF']
grade = (item['YXCJ'] - (item['YXCJ'] % 10) - 50) // 10
grade += 0.5 if (item['YXCJ'] % 10 >= 5) else 0
last_term_total_c_x_g += item['XF'] * grade
last_term_GPA = last_term_total_c_x_g / last_term_total_credit
grade_list.append(
{
'term_time': last_term,
'term_GPA': last_term_GPA,
'term_total_kill': last_term_kill,
'term_total_dead': last_term_dead,
'term_credit': last_term_total_credit,
'term_grade': last_term_grade_list
}
)
data_cache = {
'total': GradeStatistics,
'split': grade_list
}
return {'errcode': 200, 'errmsg': 'ok', 'data': data_cache}
def getSchedule(Ip, S):
@ -123,4 +192,7 @@ def getCurrentTime(Ip, S):
)
data = json.loads(r.content.decode('utf-8'))
data_cache = data['data'].pop('DateList')
return {'errcode': 200, 'errmsg': 'ok', 'data': data_cache}
return {'errcode': 200, 'errmsg': 'ok', 'data': data_cache}
data = connection('2018002129','cust5313.')
print(getGrade(data['ip'],data['s'])['data'])