Example #1
0
def handle_timetable():
    name = request.args.get('name', '')
    passwd = request.args.get('passwd', '')
    cookies = login(name, passwd)
    post_data = {'xnm': 2020, 'xqm': 3}
    timetable = session.post(config.timetable_url,
                             data=post_data,
                             cookies=cookies).json()
    return {'code': 0, 'data': build_timetable_items(timetable)}
Example #2
0
def handle_timetable_all():
    name = request.args.get('name', '')
    passwd = request.args.get('passwd', '')
    cookies = login(name, passwd)
    all_timetable = []
    for data in config.term_list:
        post_data = data['postData']
        name = data['name']
        timetable = session.post(config.timetable_url,
                                 data=post_data,
                                 cookies=cookies).json()
        if len(timetable["kbList"]) == 0:
            continue
        info = {'name': name, 'timetable': build_timetable_items(timetable)}
        all_timetable.append(info)
    return {'code': 0, 'data': all_timetable}
Example #3
0
def handle_export_grade():
    name = request.args.get('name', type=str)
    passwd = request.args.get('passwd', type=str)
    file_type = request.args.get('type', 'pdf')
    cookies = login(name, passwd)
    if file_type == 'pdf':
        post_data1 = {'gsdygx': '10353-zw-mrgs1'}
        pdf_message = session.post(config.pdf_url1,
                                   data=post_data1,
                                   cookies=cookies).content.decode()
        if pdf_message.find('可打印') == -1:
            custom_abort(-3, pdf_message)
        pdf_url = session.post(config.pdf_url2,
                               data=post_data1,
                               cookies=cookies).content.decode().replace(
                                   '\\', '').replace('\"', '')
        if pdf_url.find('成功') != -1:
            pdf_content = session.get('http://222.31.49.139' +
                                      pdf_url.split('#')[0],
                                      cookies=cookies).content
            file_name = 'files/%s-grade-%s.pdf' % \
                        (name, hashlib.md5((name + app_secret).encode('utf-8')).hexdigest()[:5])
            with open(file_name, 'wb') as pdf_file:
                pdf_file.write(pdf_content)
            upload_to_qiniu(file_name)
            return {
                'code': 0,
                'data': {
                    'url': 'https://blog-cdn.dreace.top/' + file_name
                }
            }
        custom_abort(-3, pdf_url)
    else:
        xls_content = session.post(config.excel_url,
                                   data=config.post_data,
                                   cookies=cookies).content
        file_name = 'files/%s-grade-%s.xls' % \
                    (name, hashlib.md5((name + app_secret).encode('utf-8')).hexdigest()[:5])
        with open(file_name, 'wb') as xls_file:
            xls_file.write(xls_content)
        upload_to_qiniu(file_name)
        return {
            'code': 0,
            'message': {
                'url': 'https://blog-cdn.dreace.top/' + file_name
            }
        }
Example #4
0
def handle_exam():
    name = request.args.get('name', '')
    passwd = request.args.get('passwd', '')
    cookies = login(name, passwd)
    post_data = {
        'xqm': 3,
        'xnm': 2020,
        'queryModel.showCount': 500
    }
    items = session.post(config.exam_url, data=post_data, cookies=cookies).json()
    exam_items = []
    for item in items["items"]:
        exam_items.append({
            'type': item['ksmc'],
            'college': item['kkxy'],
            'location': item['cdmc'],
            'time': item['kssj'],
            'name': item['jxbmc']
        })
    return {
        'code': 0,
        'data': exam_items
    }
Example #5
0
import pprint
import traceback

import pymysql
import requests

from global_config import NAME, PASSWD
from plugins_v3._login.login import login

pp = pprint.PrettyPrinter(indent=2)
cookies = login(NAME, PASSWD)
session = requests.session()
course_db = pymysql.connect("", "", "", "nuc_info", charset='utf8mb4')
course_cursor = course_db.cursor()
post_data = {
    "xnm": "2020",
    "xqm": "3",
    "xqh_id": "01",
    "njdm_id": "",
    "jg_id": "",
    "zyh_id": "",
    "zyfx_id": "",
    "bh_id": "",
    "_search": "false",
    "queryModel.showCount": "5000",
}
pre_data = session.post(
    "http://222.31.49.139/jwglxt/kbdy/bjkbdy_cxBjkbdyTjkbList.html?gnmkdm=N214505",
    data=post_data,
    cookies=cookies).json()
for item in pre_data["items"]:
Example #6
0
def handle_class_timetable(class_name: str):
    if not class_name:
        custom_abort(-6, '空关键词')
    cookies = {}
    try:
        cookies = login(NAME, PASSWD)
    except CustomHTTPException:
        logging.warning('全局账号登录失败')
        custom_abort(-6, '查询失败')
    post_data = {
        'xnm': '2020',
        'xqm': '3',
        'xqh_id': '01',
        'njdm_id': '',
        'jg_id': '',
        'zyh_id': '',
        'zyfx_id': '',
        'bh_id': class_name,
        '_search': 'false',
        'queryModel.showCount': '1',
    }
    pre_data_json = session.post(config.pre_class_timetable_url,
                                 data=post_data,
                                 cookies=cookies).json()
    if not pre_data_json['items']:
        custom_abort(-6, '无效的班级号')
    post_data = {
        'xnm': '2020',
        'xqm': '3',
        'xnmc': '2020-2021',
        'xqmmc': '1',
        'xqh_id': '01',
        'njdm_id': pre_data_json['items'][0]['njdm_id'],
        'zyh_id': pre_data_json['items'][0]['zyh_id'],
        'bh_id': class_name,
        'tjkbzdm': '1',
        'tjkbzxsdm': '0',
        # 'zxszjjs': True
    }
    timetable = session.post(config.class_timetable_url,
                             data=post_data,
                             cookies=cookies).json()
    timetable_items = []
    cnt = 0
    name_dict = {}
    for index, table in enumerate(timetable['kbList']):
        spited = table['jcor'].split('-')
        if table['kcmc'] not in name_dict:
            name_dict[table['kcmc']] = cnt
            cnt += 1
        timetable_items.append({
            'name': table.get('kcmc', ''),
            'teacher': table.get('xm'),
            # 哪几周上课,形如”9-14周“
            'weeks': table.get('zcd', ''),
            'color': name_dict[table['kcmc']],
            # 星期几
            'dayOfWeek': table.get('xqj', ''),
            # 第几小节开始
            'start': int(spited[0]),
            # 上几小节
            'length': int(spited[1]) - int(spited[0]) + 1,
            'building': table.get('xqmc'),
            'classroom': table.get('cdmc')
        })
    for d in timetable['sjkList']:
        timetable_items.append({'name': d['sjkcgs']})
    return {'code': 0, 'data': timetable_items}
Example #7
0
def handle_login():
    name = request.args.get('name', type=str)
    passwd = request.args.get('passwd', type=str)
    login(name, passwd, True)
    return {'code': 0, 'message': 'OK'}