""" 云阅卷接口 """ import config import requests import logger import os import bs4 class ftmarkingcloudInf(): def __init__(self): self.session = requests.session() self.header = { "auth-info": "loginname=" + config.user_name + ";password=" + config.password, } self.login() def login(self): url = config.domain + "login" data = { "loginType": "admin-login", "loginName": config.user_name, "password": config.password } result = self.session.post(url, data=data) logger.info("login server" + str(result.status_code)) def selectExam(self): url = config.domain + "admin/exam/select/" logger.info("select exam " + url) data = { "examId": str(config.examId) } result = self.session.post(url, data=data) logger.info("select exam" + str(result.status_code)) def importStudent(self): url = config.domain + "admin/exam/student/import" upfile = {'file': open(str(config.examId) + os.sep + "student.xlsx", 'rb')} result = self.session.post(url, files=upfile) logger.info("upload student data" + str(result.status_code)) def importObjectivePaper(self): url = config.domain + "admin/exam/paper/import" data = { "objective": True } upfile = {'file': open(str(config.examId) + os.sep + "object.xlsx", 'rb')} result = self.session.post(url, data=data, files=upfile) logger.info("upload objective data" + str(result.status_code)) def importSubjectivePaper(self): url = config.domain + "admin/exam/paper/import" data = { "objective": False } upfile = {'file': open(str(config.examId) + os.sep + "subjective.xlsx", 'rb')} result = self.session.post(url, data=data, files=upfile) logger.info("upload subjective data" + str(result.status_code)) def queryStudent(self, examnumber): url = config.domain + "admin/exam/student" examstudentdata = { "pageNumber": 1, "pageSize": 10, "name": "", "examNumber": examnumber, "secretNumber": "", "studentCode": "", "subjectCode": "", "subjectLevel": "", "subjectCategory": "", "upload": "", "absent": "", "breach": "", "manualAbsent": "", "packageCode": "", "batchCode": "" } result = self.session.post(url, data=examstudentdata, headers=self.header) bsoup=bs4.BeautifulSoup(result.text,'html.parser') data=bsoup.select("#contentTable > tbody > tr") student_check_data={ "examNumber":data[0].select("td")[0].text, "secrectNumber":data[0].select("td")[1].text } return student_check_data def scanstudent(self, studentdata): url = config.domain + "api/scan/student/" + str(config.examId) result = self.session.post(url, json=[studentdata], headers=self.header) if result.status_code == 200: logger.info(str(studentdata["examNumber"]) + "upload success") else: logger.error(str(studentdata["examNumber"]) + "upload false") def batchcreateMarker(self, count, subject_code): url = config.domain + "admin/exam/marker/batch-create" data = { "subjectCode": subject_code, "groupNumber": 0, "count": count, "password": "1234" } result = self.session.post(url, data=data, headers=self.header) if result.status_code == 200: logger.info(str(subject_code) + "batch create marker success") else: logger.error(str(subject_code) + "batch create marker false") # # inf=gxmarkingcloudInf() # inf.scanstudent("19000001")