From 39392e2233f2c7461980c63e6e8bcb61910bd2fe Mon Sep 17 00:00:00 2001 From: CC <1363880172@qq.com> Date: Sun, 3 Sep 2023 14:45:18 +0800 Subject: [PATCH] =?UTF-8?q?[UPDATE]=20=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NewMoocMain/init_mooc.py | 30 +++++++++++++----------------- README.md | 4 +++- StartWork.py | 2 +- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/NewMoocMain/init_mooc.py b/NewMoocMain/init_mooc.py index 59e1240..9b79805 100644 --- a/NewMoocMain/init_mooc.py +++ b/NewMoocMain/init_mooc.py @@ -30,18 +30,20 @@ def auth(session, username, password): data = { - "imgCode": start_verify(), + # "imgCode": start_verify(), "userName": username, "password": password, "type": 1 } - url = "https://sso.icve.com.cn/data/userLogin" + url = "https://sso.icve.com.cn/prod-api/data/userLoginV2" post = session.post(url=url, json=data, headers=HEADERS) logger.debug(post.text) - if post.ok and post.json()['code'] == 200: + post_json = post.json() + if post.ok and post_json['code'] == 200: logger.info(f"登录成功: {username}") + return post_json['data']['token'] else: - logger.info(f"登录失败: {username}") + logger.info(f"登录失败: {username} msg: {post_json['msg']}") input('程序退出') exit(0) @@ -137,6 +139,7 @@ def learning_time_save_video_learn_time_long_record(session, study_record): } url = "https://course.icve.com.cn/learnspace/course/study/learningTime_saveVideoLearnDetailRecord.action" post = session.post(url=url, params=params, headers=HEADERS) + # 同一个视频同时请求两次需要间隔60S logger.debug(post.text) return post.json() @@ -243,9 +246,6 @@ def time_to_seconds(f): return e def get_params(p): - i = 0 - o = 0 - def format_str(c, a): l = "" k = len(str(c)) @@ -255,12 +255,12 @@ def format_str(c, a): else: g = a - k - 2 h = 1 - for _ in range(g): + for e in range(g): h = h * 10 b = int(random.random() * h) f = len(str(b)) if f < g: - for _ in range(g): + for d in range(f, g): b = b * 10 if k >= 10: l += str(k) @@ -268,8 +268,7 @@ def format_str(c, a): l += "0" + str(k) l += str(c) + str(b) else: - return c + "" - + return str(c) return l res = { @@ -279,9 +278,9 @@ def format_str(c, a): 'time2': format_str(int(p['startTime']), 20), 'time3': format_str(time_to_seconds(p['videoTotalTime']), 20), 'time4': format_str(int(p['endTime']), 20), - 'videoIndex': p['videoIndex'] if p.get('videoIndex') else i, + 'videoIndex': p['videoIndex'] if p.get('videoIndex') else 0, 'time5': format_str(p['studyTimeLong'], 20), - 'terminalType': p['terminalType'] if p.get('terminalType') else o + 'terminalType': p['terminalType'] if p.get('terminalType') else 0 } if audio: res['assessment'] = "1" @@ -364,10 +363,7 @@ def run(username, password, topic_content): global user topic_content_all = topic_content user = username - auth(session, username, password) - login = is_login(session) - logger.debug(login) - token = re.search("(?<=token:').*?(?=')", login).group(0) + token = auth(session, username, password) logger.info(f"\t>>> 课程获取中...") mooc_select_mooc_course = student_mooc_select_mooc_course(session, token) for mooc_course_item in mooc_select_mooc_course['data']: diff --git a/README.md b/README.md index 7d3cf62..3eb3917 100644 --- a/README.md +++ b/README.md @@ -28,11 +28,13 @@ ## 下载 -- v2.1.2 [Download exe 绿色运行版 >>>](https://github.com/11273/mooc-work-answer/releases/tag/v2.1.2) +- v2.1.3 [Download exe 绿色运行版 >>>](https://github.com/11273/mooc-work-answer/releases/tag/v2.1.3) - 历史版本下载[请前往>>>](https://github.com/11273/mooc-work-answer/releases) ## 更新状态 +- 2023/9/3: 部分错误调整(目前视频出现“非法请求”需等待解决) + - 2023/6/6: 适配新版讨论与音频 - 2023/5/22: 临时开放旧版答题功能 diff --git a/StartWork.py b/StartWork.py index 3e3fbf9..c392188 100644 --- a/StartWork.py +++ b/StartWork.py @@ -14,7 +14,7 @@ logger = Logger(__name__).get_log() logger.info('=' * 110) -logger.info('%s【v2.1.2 】 程序运行!开源支持 By https://github.com/11273/mooc-work-answer %s', '=' * 20, '=' * 20) +logger.info('%s【v2.1.3 】 程序运行!开源支持 By https://github.com/11273/mooc-work-answer %s', '=' * 20, '=' * 20) logger.info('=' * 110) # ****************************************** 配置 ******************************************