24微波MOOC辅助资料

SingleDog Other Waste

UPD1218: 新增功能: 增量评价。修复了一些 Bug。新增了来自 西门蒸馍 的讨论区自动回答脚本。

UPD1217: 新增了一键自评、互评。全部满分

UPD1206: 优化了 MOOC 使用脚本,现在会把所有未完成的测验放在一个框里面直接显示了.

UPD1020: 新增智慧树使用增强脚本。

UPD1019: 更新了一下折叠脚本,现在不用刷新页面也能直接自动折叠了。

顺便提一句数电的《通数逻》,有一种机务实验虚拟仿真平台的美。

MOOC 答案

都进来了就不装了,这就是微波 MOOC 的答案,点击就送
上面的链接可以直接访问,但是请不要向外传播

  • 为什么要加密?

这是别人拿来卖钱的,直接放出来本站大概就会被打至跪地罢。

  • 为什么不能复制?没有 PDF 版本?

这个网页的防复制非常 6,可以说爆杀百度文库,知乎等等。且不说所有快捷键禁用,控制台可以看到网页其实没有加载完,卡在了 debugger 里面。直接打印也只有空白页面。在这里给自己挖个坑,哪天有空研究一下。

MOOC 脚本

讨论区自动回答

爱来自 西门蒸馍
张佬的博客:ximenzhengmo

  1. 参照 如何申请文心一言&文心千帆大模型API调用资格、获取access_token,并使用SpringBoot接入文心一言API_文心一言api申请-CSDN博客 ,获取 API KeySecret Key
  2. 将其对应替换 代码 中函数 getAccessToken() 内的 API KeySecret Key
  3. 打开某个讨论区的问题
  4. console 输入之前替换好的代码
  5. Enjoy!

暂时需要每个讨论区都单独执行一遍。

新用户需要打开这个预置服务:

自动互评/自评

UPD1217: 一键满分!

UPD1218

  1. 新增 Feature: 开始执行时可选:完成最低要求 (5 份) ;或在现有基础上多评 x 份。感谢 Taro🐱 提出。
  2. 优化了安装方式。点击这里 ,一路确定就行。
  3. Known Bug: 在有未完成的作业时互评会卡住。目前的解决方案是复制下图所示的数字,然后在脚本 contentId 中将其删去以跳过。感谢 COULD HAVES 提出。
  4. 感谢 西门蒸馍 提供的极速版。思路比我这个好很多。
  5. 感谢 lcy 的测试,Chrome 暂不可用,请使用 Edge
  6. 修复了已评 30 人之后的 Bug。 感谢 星之丶飘彡零 反馈。
  1. 多次执行后,现在有几率出现不从作业 1-1 开始的问题。在 console 中执行下列代码再刷新即可。怎么打开 console、执行代码请自行搜索。
1
2
localStorage.removeItem('count');
localStorage.removeItem('currentIndex');
  1. Tamper Monkey 现在需要打开如图设置才可以正常运行。感谢 Taro🐱 提醒。

现在 点击这里 ,一路确定即可安装。

使用方法:导入后,打开微波 MOOC 任意作业页面,刷新,然后等评完即可。

等待时间大部分都是 2s,应该能避免被并发检测。

分数都是 100 分。请不要害人。

评语文本在 20 行,可以按需自行修改。

极速版

感谢 西门蒸馍 张佬的极速版。简洁好用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var t = document.querySelectorAll("a.j-quizBtn.u-btn.u-btn-default.f-fr");
for(let i=0; i < t.length; i++){
if( t[i].textContent == '前往作业' ){
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
await delay(2000);
t[i].click();
await delay(2000);
console.log(document.querySelectorAll(".f-fl.j-hwname")[0].firstChild.data);
if ( document.querySelectorAll('a.clickbtn.j-selfevabtn')[0].innerText != '100' ){
var self = document.querySelectorAll('a.clickbtn.j-selfevabtn');
self[0].click();
setTimeout(() => {
var btn = document.querySelectorAll('.j-select');
btn[100].checked = true;
var textareas = document.querySelectorAll('.j-textarea.inputtxt');
var textarea = textareas[0];
textarea.value = '非常好';
var submit = document.querySelectorAll('.u-btn.u-btn-default.f-fl.j-submitbtn');
submit[0].click();
var back =document.querySelectorAll("a.u-btn.f-fl.j-backbtn");
back[0].click();
}, 1000);
}else{
console.log('已完成自评');
}

await delay(1000);
if ( document.querySelectorAll('.j-listtable')[0].childElementCount < 30){
var judge =document.querySelectorAll("a.u-btn.u-btn-primary.j-getnextbtn");
judge[0].click();
await delay(1000);
var n = 60;

for( let j = 0; j < n; j++ ){
var btn = document.querySelectorAll('.j-select');
btn[100].checked = true;
var textareas = document.querySelectorAll('.j-textarea.inputtxt');
var textarea = textareas[0];
textarea.value = '非常好';
var submit = document.querySelectorAll('.u-btn.u-btn-default.f-fl.j-submitbtn');
submit[0].click();
var next = document.querySelectorAll('.j-gotonext');
next[0].click();
await delay(1500);
}
}else{
console.log('已完成互评');
}
await delay(2000);
var back = document.querySelectorAll('.backbtn.f-fr.j-backbtn');
back[0].click();
}
}

Edge 能用,火狐不能用,其他的未知。

Archive v0.1: 点击这里下载

单元测验列表

UPD1206: 新的脚本更人性化一点:
点击这里下载
如何导入油猴使用

界面如下:

点击链接就可以直接打开了。

Tips: 作业也可以有,稍微修改一下就行。contentId 在互评脚本里面。


以下是旧版,存作留档。

顺便给一个自动折叠 MOOC 中已完成的测验的简单脚本,优化使用体验。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// ==UserScript==
// @name 自动折叠已完成的测验
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 自动折叠
// @author ChatGPT&SD
// @match https://www.icourse163.org/learn/BUAA-1002534005?tid=1473108463*
// @grant none
// ==/UserScript==

(function() {
'use strict';

let isProcessing = false; // 标志位,防止多次执行

// 定义 clickNext 函数
function clickNext() {
if (isProcessing) {
console.log("折叠操作正在进行中,跳过本次执行");
return; // 如果已经在进行操作,直接返回
}

isProcessing = true; // 设置标志位,表示操作开始
let titleBoxes = Array.from(document.querySelectorAll('.titleBox'));
console.log("检测到的 titleBox 数量:", titleBoxes.length);

if (titleBoxes.length === 0) {
console.log("未找到 titleBox 元素,可能尚未渲染完成,稍后再试...");
isProcessing = false; // 重置标志位
return; // 如果没有找到,返回,不执行进一步的折叠操作
}

let index = 0;
function processNext() {
if (index >= titleBoxes.length || index >= 40) {
console.log("已处理完所有元素");
isProcessing = false; // 操作完成,重置标志位
return;
}

let box = titleBoxes[index];
let validScoreDiv = box.querySelector('.j-validScore');
let downElement = box.querySelector('.j-down');

// 确保元素存在且尚未折叠(检查 j-down 是否可见)
if (validScoreDiv && validScoreDiv.textContent.trim().includes('测验得分') && downElement && downElement.style.display !== 'none') {
downElement.click();
console.log(`已点击第 ${index + 1} 个 j-down 元素`);
}

index++;
setTimeout(processNext, 30); // 延时处理下一个元素
}

// 执行第一次折叠
processNext();
}

// 检测 URL 中是否包含 "testlist"
function checkUrlAndFold() {
if (window.location.href.includes("testlist")) {
console.log("URL 中检测到 'testlist',开始执行折叠操作");

// 增加延迟以等待页面渲染完成
setTimeout(() => {
clickNext(); // 执行折叠操作
}, 1000); // 延时1秒等待页面加载完成
}
}

// 监听 URL 的变化(通过 popstate 和轮询)
function observeUrlChanges() {
let lastUrl = window.location.href;

// 使用轮询检测 URL 变化
setInterval(() => {
const currentUrl = window.location.href;
if (currentUrl !== lastUrl) {
lastUrl = currentUrl;
checkUrlAndFold();
}
}, 1000); // 每秒检测一次 URL 变化

// 监听 popstate 事件
window.addEventListener('popstate', function() {
checkUrlAndFold();
});
}

// 等待页面加载完成
window.onload = function() {
// 页面加载完成时立即检查一次 URL
setTimeout(() => {
checkUrlAndFold(); // 检查并执行初次折叠
}, 1000);

// 开始监听 URL 变化
observeUrlChanges();
};
})();

同样导入油猴使用即可。

这些课程平台的前端交互实在是太糟糕了。这里还得说一句智慧树,每次都得重新回到知识点的页面才能选中下一个知识点的题目,还不能在新选项卡打开,题目写着实在难受。

智慧树

优化智慧树使用体验,现在点击课程能直接跳到习题页面,并且保留原来的课程列表页面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// ==UserScript==
// @name 智慧树使用增强
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 优化智慧树使用体验
// @author ChatGPT&SD

// @match https://smartcoursestudent.zhihuishu.com/singleCourse/knowledgeStudy/1837343555807481856/2558
// @match https://smartcoursestudent.zhihuishu.com/learnPage/1837343555807481856*
// @grant none
// ==/UserScript==

(function() {
'use strict';

setTimeout(() => {
// 检测并模拟点击提升掌握度按钮
const practiceHandle = document.querySelector('.practice-handle.ZHIHUISHU_QZMD');
if (practiceHandle) {
practiceHandle.click();
return;
}

// 添加点击事件到目标元素
document.querySelectorAll('.item-mask.el-tooltip__trigger').forEach(item => {
item.addEventListener('click', function(event) {
event.preventDefault(); // 拦截点击事件
event.stopPropagation(); // 阻止事件传播

const knowledgeId = this.closest('.item-content').getAttribute('knowledgeid');
const newUrl = `https://smartcoursestudent.zhihuishu.com/learnPage/1837343555807481856/${knowledgeId}/2558`;
window.open(newUrl, '_blank'); // 在新标签页打开链接
});
});
}, 1500); // 延迟0.5秒执行
})();

目前的逻辑是跳转到资源界面再模拟点击 提升掌握度,不是很优雅。

Help Wanted:

  1. 有没有人帮我测一下其它用户登录的时候,url 中的固定部分会不会变?把整个 url 发给我就行
  2. 习题页面其实可以直接跳转,如 https://studentexamcomh5.zhihuishu.com/studentReviewTestOrExam/519056/1/1/1837343555807481856/JTIyJUU1JTlCJTlCJUU3JUE3JThEJUU1JUI4JUI4JUU3JTk0JUE4JUU3JTlBJTg0JUU2JTk1JUIwJUU1JTg4JUI2JTIy/1/true/true/true/1?foAiRun=1&point=1&classId=2558&pointId=1665558345404256256&paperId=34452007&examPaperId=34452007&reviewQ=2,目前只有 paperId=34452007 不知道怎么来,能解决这个问题就能直接跳转到习题页面了
  • Title: 24微波MOOC辅助资料
  • Author: SingleDog
  • Created at : 2024-10-16 12:53:00
  • Updated at : 2025-12-17 21:37:54
  • Link: https://www.singledog233.top/weibo/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments