中软作业考试自动答题
// ==UserScript==
// @name 中软作业考试自动答题
// @namespace http://tampermonkey.net/
// @version 0.4
// @description 自动选择页面中的某个选项
// @author Your Name
// @match https://online.zretc.net/course/student/study/*
// @grant none
// @license MIT
// ==/UserScript==
function requests(zretcToken,homeworkId){
// API的URL
const api_url = `https://api.zretc.net/homework/homeworks/${homeworkId}/detail-objective-list`;
// 假设您已经有了一个有效的Zretc-Token
//zretcToken = 'db3c62eb-607b-43b4-8a6c-640f98e14b2d'; // 请替换为您的实际令牌
// 创建一个包含自定义请求头的对象
const customHeaders = {
// 'Accept': 'application/json, text/plain, */*',
// 'Accept-Encoding': 'gzip, deflate, br, zstd',
// 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
// 'Connection': 'keep-alive',
// 'Host': 'api.zretc.net',
// 'Origin': 'https://online.zretc.net',
// 'Referer': 'https://online.zretc.net/',
// 'Sec-Fetch-Dest': 'empty',
// 'Sec-Fetch-Mode': 'cors',
// 'Sec-Fetch-Site': 'same-site',
// 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
// 'X-Locale': 'zh_CN',
// 'X-Requested-With': 'XMLHttpRequest',
// 'async': 'true',
// 'crossDomain': 'true',
// 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
// 'sec-ch-ua-mobile': '?0',
// 'sec-ch-ua-platform': '"Windows"',
// 'withCredentials': 'true',
'Zretc-Token': zretcToken // 添加Zretc-Token请求头
};
var ins = {
A:0,
B:1,
C:2,
D:3
}
// 发起GET请求
fetch(api_url, {
method: 'GET',
headers: customHeaders
})
.then(response => {
if (!response.ok) {
throw new Error(`Network response was not ok: ${response.statusText}`);
}
return response.json();
})
.then(data => {
//console.log(data); // 打印解析后的数据
console.log("开始打印试题信息")
console.log(data.data.contentObjDTOList)
var obj = data.data.contentObjDTOList;
//bt(data.data.contentObjDTOList)
if(document.querySelectorAll("span.item")!=null){
var spans = document.querySelectorAll("span.item");
console.log(spans)
let flag = 0;
var j = 0;
for (let key in obj) {
let arrs = obj[key].answer.split("")
for(let i=0;i<arrs.length;i++){
//console.log("i的值是"+i)
//console.log("本题一共要点"+arrs.length)
console.log(arrs[i])
//console.log(spans[flag+ins[arrs[i]]])
//console.log(flag)
//console.log(spans[ins[arrs[i]]])
//console.log("开始第"+j+"次点击")
spans[flag+ins[arrs[i]]].click()
//console.log("第"+j+"次点击 点击成功")
j++
}
//console.log("开始下一题")
//console.log(arrs)
//console.log("ans is "+obj[key].answer)
//spans[flag+ins[obj[key].answer]].click();
//console.log("几个选项????"+obj[key].questionOptions.lenth)
flag+=obj[key].questionOptions.length;
}
}
})
.catch(error => {
console.error('There has been a problem with your fetch operation:', error);
});
}
(function() {
'use strict';
// 创建一个新的div元素作为容器
let container = document.createElement('div');
container.style.position = 'absolute'; // 绝对位置
container.style.padding = '10px'; // 添加一些内边距
container.style.backgroundColor = 'white'; // 设置背景颜色
container.style.border = '1px solid black'; // 添加边框
container.style.zIndex = '10000'; // 设置较高的层级以确保显示在顶部
container.style.boxShadow = '0 4px 8px rgba(0,0,0,0.1)'; // 添加阴影效果
// 使容器可拖动
let dragging = false;
let dragStartX, dragStartY;
const handleMouseDown = function(e) {
dragging = true;
dragStartX = e.clientX;
dragStartY = e.clientY;
container.style.cursor = 'grabbing';
};
const handleMouseMove = function(e) {
if (!dragging) return;
const dx = e.clientX - dragStartX;
const dy = e.clientY - dragStartY;
const newX = container.offsetLeft + dx;
const newY = container.offsetTop + dy;
container.style.left = newX + 'px';
container.style.top = newY + 'px';
dragStartX = e.clientX;
dragStartY = e.clientY;
};
const handleMouseUp = function() {
dragging = false;
container.style.cursor = 'grab';
};
container.addEventListener('mousedown', handleMouseDown);
document.addEventListener('mousemove', handleMouseMove);
document.addEventListener('mouseup', handleMouseUp);
// 创建Zretc-Token输入框
const zretcTokenInput = document.createElement('input');
zretcTokenInput.type = 'text';
zretcTokenInput.placeholder = '请输入Zretc-Token';
zretcTokenInput.style.width = '200px'; // 设置输入框宽度
// 创建homeworkId输入框
const homeworkIdInput = document.createElement('input');
homeworkIdInput.type = 'text';
homeworkIdInput.placeholder = '请输入homeworkId';
homeworkIdInput.style.width = '200px'; // 设置输入框宽度
// 创建一个按钮
const button = document.createElement('button');
button.textContent = '输出';
button.onclick = function() {
const zretcToken = zretcTokenInput.value;
const homeworkId = homeworkIdInput.value;
console.log('Zretc-Token:', zretcToken);
console.log('homeworkId:', homeworkId);
requests(zretcToken,homeworkId);
};
// 将输入框和按钮添加到容器中
container.appendChild(zretcTokenInput);
container.appendChild(homeworkIdInput);
container.appendChild(button);
// 将容器添加到body元素中,并设置初始位置
document.body.appendChild(container);
window.addEventListener('load', function() {
container.style.left = (window.innerWidth / 2 - 100) + 'px'; // 初始位置在屏幕中央偏左
container.style.top = (window.innerHeight / 2 - 50) + 'px'; // 初始位置在屏幕中央偏上
});
})();