Merge branch 'lijingwei' into 'master' (merge request !9)

lijingwei
This commit is contained in:
RainSun 2020-02-09 12:08:52 +00:00
commit 84df4dbf02
3 changed files with 105 additions and 7 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,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):