@@ -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