commit
84df4dbf02
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal 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
11
coc.py
@ -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()
|
@ -48,9 +48,102 @@ 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
|
||||
last_lesson_name = ''
|
||||
last_lesson_kill = 0
|
||||
for item in data['data']['GradeList']:
|
||||
data_cache.append(item['LessonInfo']['KCMC']+':'+item['ShowYXCJ'])
|
||||
#如果学期改变
|
||||
if last_term != item['KSXNXQ']:
|
||||
#初始化所有变量
|
||||
if last_term != '':
|
||||
if last_lesson_kill > 0:
|
||||
last_term_kill += 1
|
||||
else:
|
||||
last_term_dead += 1
|
||||
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'] >= 60) else 'no',
|
||||
'class': item['KSXZ']
|
||||
}
|
||||
)
|
||||
if item['LessonInfo']['KCMC'] == last_lesson_name:
|
||||
if item['YXCJ'] >= 60:
|
||||
last_lesson_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
|
||||
else:
|
||||
if last_lesson_name != '':
|
||||
if last_lesson_kill > 0:
|
||||
last_term_kill += 1
|
||||
else:
|
||||
last_term_dead += 1
|
||||
last_lesson_kill = 0
|
||||
if item['YXCJ'] >= 60:
|
||||
last_lesson_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_lesson_name = item['LessonInfo']['KCMC']
|
||||
if last_lesson_kill > 0:
|
||||
last_lesson_kill += 1
|
||||
else:
|
||||
last_lesson_dead += 1
|
||||
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
|
||||
}
|
||||
)
|
||||
data_cache = {
|
||||
'total': GradeStatistics,
|
||||
'split': grade_list
|
||||
}
|
||||
return {'errcode': 200, 'errmsg': 'ok', 'data': data_cache}
|
||||
|
||||
def getSchedule(Ip, S):
|
||||
|
Loading…
x
Reference in New Issue
Block a user