from email import header from re import T import time from urllib import response import requests import json class main: tenantCode = 0 userId = "" x_token = "" userProjectId = "" headers = {'x-token': "", "User-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Mobile Safari/537.36 Edg/103.0.1264.77" } def __init__(self, code, id, token,projectId): self.tenantCode = code self.userId = id self.x_token = token self.userProjectId = projectId def init(self): self.headers['x-token'] = self.x_token def getProgress(self): url = "https://weiban.mycourse.cn/pharos/project/showProgress.do" data = { 'userProjectId': self.userProjectId, 'tenantCode': self.tenantCode, 'userId': self.userId } response = requests.post(url, data=data, headers=self.headers) text = response.text data = json.loads(text) return data['data']['progressPet'] def getCategory(self): url = "https://weiban.mycourse.cn/pharos/usercourse/listCategory.do" data = { 'userProjectId': self.userProjectId, 'tenantCode': self.tenantCode, 'userId': self.userId, 'chooseType': 3 } response = requests.post(url, data=data, headers=self.headers) text = response.text data = json.loads(text) list = data['data'] result = [] for i in list: if i['totalNum'] > i['finishedNum']: result.append(i['categoryCode']) return result def getCourse(self): url = "https://weiban.mycourse.cn/pharos/usercourse/listCourse.do" result = [] for i in self.getCategory(): data = { 'userProjectId': self.userProjectId, 'tenantCode': self.tenantCode, 'userId': self.userId, 'chooseType': 3, 'name': "", 'categoryCode': i } response = requests.post(url, data=data, headers=self.headers) text = response.text data = json.loads(text)['data'] for i in data: if i['finished'] == 2: result.append(i['resourceId']) return result def getFinishIdList(self): url = "https://weiban.mycourse.cn/pharos/usercourse/listCourse.do" result = {} for i in self.getCategory(): data = { 'userProjectId': self.userProjectId, 'tenantCode': self.tenantCode, 'userId': self.userId, 'chooseType': 3, 'name': "", 'categoryCode': i } response = requests.post(url, data=data, headers=self.headers) text = response.text data = json.loads(text)['data'] for i in data: if i['finished'] == 2: result[i['resourceId']] = i['userCourseId'] return result def start(self,courseId): data = { 'userProjectId': self.userProjectId, 'tenantCode': self.tenantCode, 'userId': self.userId, 'courseId': courseId } headers = { "x-token":self.x_token } res = requests.post("https://weiban.mycourse.cn/pharos/usercourse/study.do",data=data,headers=headers) while json.loads(res.text)['code'] == -1: time.sleep(5) res = requests.post("https://weiban.mycourse.cn/pharos/usercourse/study.do",data=data,headers=headers) print("start:"+courseId) def finish(self,finishId): url = "https://weiban.mycourse.cn/pharos/usercourse/finish.do" url += "?callback=&userCourseId=" url += finishId url += "&tenantCode="+str(self.tenantCode) requests.get(url=url) print("finish:"+finishId)