Skip to content

Commit 32bc7d8

Browse files
committed
修复[BUG](Samueli924#298)
修复[BUG](Samueli924#290) 跳过网页端显示转码失败的课程
1 parent b959150 commit 32bc7d8

2 files changed

Lines changed: 59 additions & 55 deletions

File tree

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@
2727
1. `git clone --depth=1 https://github.com/Samueli924/chaoxing` 项目至本地
2828
2. `cd chaoxing`
2929
3. `pip install -r requirements.txt`
30-
4. (可选配置文件运行)复制config_template.ini文件为config.ini文件,修改文件内的账号密码内容, 执行 `python main.py -c config.ini`
31-
5. (可选命令行运行)`python main.py -u 手机号 -p 密码 -l 课程ID1,课程ID2,课程ID3...(可选)`
30+
4. (可选直接运行) `python main.py`
31+
5. (可选配置文件运行)复制config_template.ini文件为config.ini文件,修改文件内的账号密码内容, 执行 `python main.py -c config.ini`
32+
6. (可选命令行运行)`python main.py -u 手机号 -p 密码 -l 课程ID1,课程ID2,课程ID3...(可选)`
3233

3334
### 打包文件运行
3435
1. 从最新[Releases](https://github.com/Samueli924/chaoxing/releases)中下载exe文件
35-
2. (可选配置文件运行)下载config_template.ini文件保存为config.ini文件,修改文件内的账号密码内容, 执行 `./chaoxing.exe -c config.ini`
36-
3. (可选命令行运行)`./chaoxing.exe -u "手机号" -p "密码" -l 课程ID1,课程ID2,课程ID3...(可选)`
36+
2. (可选直接运行) 双击运行即可
37+
3. (可选配置文件运行)下载config_template.ini文件保存为config.ini文件,修改文件内的账号密码内容, 执行 `./chaoxing.exe -c config.ini`
38+
4. (可选命令行运行)`./chaoxing.exe -u "手机号" -p "密码" -l 课程ID1,课程ID2,课程ID3...(可选)`
3739

3840
## :heart: CONTRIBUTORS
3941
### :one:感谢[huajijam](https://github.com/huajijam)对chaoxing项目的贡献! [PR #73](https://github.com/Samueli924/chaoxing/pull/73)

main.py

Lines changed: 53 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -30,55 +30,57 @@ def init_config():
3030
username, password, course_list, speed = init_config()
3131
# 强行限制倍速最大为2倍速
3232
speed = 2 if speed > 2 else speed
33-
if username and password:
34-
account = Account(username, password)
35-
# 实例化超星API
36-
chaoxing = Chaoxing(account=account)
37-
# 检查当前登录状态,并检查账号密码
38-
_login_state = chaoxing.login()
39-
if not _login_state["status"]:
40-
raise LoginError(_login_state["msg"])
41-
# 获取所有的课程列表
42-
all_course = chaoxing.get_course_list()
43-
course_task = []
44-
# 手动输入要学习的课程ID列表
45-
if not course_list:
46-
print("*"*10 + "课程列表" + "*"*10)
47-
for course in all_course:
48-
print(f"ID: {course['courseId']} 课程名: {course['title']}")
49-
print("*" * 28)
50-
try:
51-
course_list = str(input("请输入想要学习的课程列表,以逗号分隔,例: 2151141,189191,198198\n")).split(",")
52-
except:
53-
raise FormatError("输入格式错误")
54-
# 筛选需要学习的课程
33+
if (not username) or (not password):
34+
username = input("请输入你的手机号,按回车确认\n手机号:")
35+
password = input("请输入你的密码,按回车确认\n密码:")
36+
account = Account(username, password)
37+
# 实例化超星API
38+
chaoxing = Chaoxing(account=account)
39+
# 检查当前登录状态,并检查账号密码
40+
_login_state = chaoxing.login()
41+
if not _login_state["status"]:
42+
raise LoginError(_login_state["msg"])
43+
# 获取所有的课程列表
44+
all_course = chaoxing.get_course_list()
45+
course_task = []
46+
# 手动输入要学习的课程ID列表
47+
if not course_list:
48+
print("*"*10 + "课程列表" + "*"*10)
5549
for course in all_course:
56-
if course["courseId"] in course_list:
57-
course_task.append(course)
58-
if not course_task:
59-
course_task = all_course
60-
# 开始遍历要学习的课程列表
61-
logger.info(f"课程列表过滤完毕,当前课程任务数量: {len(course_task)}")
62-
for course in course_task:
63-
# 获取当前课程的所有章节
64-
point_list = chaoxing.get_course_point(course["courseId"], course["clazzId"], course["cpi"])
65-
for point in point_list["points"]:
66-
# 获取当前章节的所有任务点
67-
jobs, job_info = chaoxing.get_job_list(course["clazzId"], course["courseId"], course["cpi"], point["id"])
68-
# 可能存在章节无任何内容的情况
69-
if not jobs:
70-
continue
71-
# 遍历所有任务点
72-
for job in jobs:
73-
# 视频任务
74-
if job["type"] == "video":
75-
logger.trace(f"识别到视频任务, 任务章节: {course['title']} 任务ID: {job['jobid']}")
76-
chaoxing.study_video(course, job, job_info, _speed=speed)
77-
# 文档任务
78-
elif job["type"] == "document":
79-
logger.trace(f"识别到文档任务, 任务章节: {course['title']} 任务ID: {job['jobid']}")
80-
chaoxing.study_document(course, job)
81-
# 测验任务
82-
elif job["type"] == "workid":
83-
logger.trace(f"识别到测验任务, 任务章节: {course['title']}")
84-
pass
50+
print(f"ID: {course['courseId']} 课程名: {course['title']}")
51+
print("*" * 28)
52+
try:
53+
course_list = str(input("请输入想要学习的课程列表,以逗号分隔,例: 2151141,189191,198198\n")).split(",")
54+
except:
55+
raise FormatError("输入格式错误")
56+
# 筛选需要学习的课程
57+
for course in all_course:
58+
if course["courseId"] in course_list:
59+
course_task.append(course)
60+
if not course_task:
61+
course_task = all_course
62+
# 开始遍历要学习的课程列表
63+
logger.info(f"课程列表过滤完毕,当前课程任务数量: {len(course_task)}")
64+
for course in course_task:
65+
# 获取当前课程的所有章节
66+
point_list = chaoxing.get_course_point(course["courseId"], course["clazzId"], course["cpi"])
67+
for point in point_list["points"]:
68+
# 获取当前章节的所有任务点
69+
jobs, job_info = chaoxing.get_job_list(course["clazzId"], course["courseId"], course["cpi"], point["id"])
70+
# 可能存在章节无任何内容的情况
71+
if not jobs:
72+
continue
73+
# 遍历所有任务点
74+
for job in jobs:
75+
# 视频任务
76+
if job["type"] == "video":
77+
logger.trace(f"识别到视频任务, 任务章节: {course['title']} 任务ID: {job['jobid']}")
78+
chaoxing.study_video(course, job, job_info, _speed=speed)
79+
# 文档任务
80+
elif job["type"] == "document":
81+
logger.trace(f"识别到文档任务, 任务章节: {course['title']} 任务ID: {job['jobid']}")
82+
chaoxing.study_document(course, job)
83+
# 测验任务
84+
elif job["type"] == "workid":
85+
logger.trace(f"识别到测验任务, 任务章节: {course['title']}")
86+
pass

0 commit comments

Comments
 (0)