123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- """
- 云阅卷接口
- """
- 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")
|