weiban-tool/Utils.py

121 lines
4.0 KiB
Python

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)