// ==UserScript==
// @name 综合XX管理平台小助手
// @namespace http://tampermonkey.net/
// @version 1.3.2
// @description Escape your hands from these shit website
// @author Tinyblack_QvQ
// @match http://zhsz.e21.cn/*
// @match http://zhsjk.e21.cn/*
// @match http://czda.e21.cn/*
// @icon https://www.google.com/s2/favicons?domain=e21.cn
// @grant none
// ==/UserScript==
(function () {
'null';
//CSS优化
//网页为综合素质评价
if (window.location['href'].match('zhsz.e21.cn/2016/Views/TeacherReview/') != null) {
setInterval(function () {
var list = document.getElementsByName('return');
for (let i = 1; i < list.length; i++) {
list[i].style.display = 'block';
}
list = document.getElementsByTagName('td');
for (let i = 1; i < list.length; i++) {
list[i].style.wordBreak = '';
list[i].style.textAlign = 'center';
}
list = document.getElementsByTagName('text');
for (let i = 1; i < list.length; i++) {
var temp = document.body.innerHTML.matchAll(' ');
while (temp.next()['done'] != false) {
break;
}
}
}, 1000);
}
//添加互动按钮
//网页为综合素质评价
if (window.location['href'].match('zhsz.e21.cn/2016/Views/TeacherReview/') != null) {
readyFunc(document);
var szshbtn = document.createElement('button');
szshbtn.className = 'scriptbtn';
szshbtn.style.right = '100px';
szshbtn.onclick = zhautocheck;
szshbtn.innerHTML = '自动审批';
document.body.appendChild(szshbtn);
}
//网页为综合实践活动
//学生端
else if (window.location['href'].match('zhsjk.e21.cn/stuindex.jsp') != null) {
document.getElementsByName('mainFrame')[0].onload = function () {
readyFunc(document.getElementsByName('mainFrame')[0].contentDocument);
if (document.getElementById('hdselfcom') == null) {
var hdselfcom = document.createElement('button');
hdselfcom.id = 'hdselfcom';
hdselfcom.className = 'scriptbtn';
hdselfcom.style.right = '200px';
hdselfcom.innerText = '自动自评';
hdselfcom.onclick = () => {
hdAutoSelfComment(document.getElementsByName('mainFrame')[0].contentDocument);
};
document.getElementsByName('mainFrame')[0].contentDocument.body.appendChild(hdselfcom);
var hdeachcom = document.createElement('button');
hdeachcom.id = 'hdeachcom';
hdeachcom.className = 'scriptbtn';
hdeachcom.style.right = '100px';
hdeachcom.innerText = '自动互评';
hdeachcom.onclick = () => {
hdAutoEachComment(document.getElementsByName('mainFrame')[0].contentDocument);
};
document.getElementsByName('mainFrame')[0].contentDocument.body.appendChild(hdeachcom);
}
}
}
//教师端
else if (window.location['href'].match('zhsjk.e21.cn/teaindex.jsp') != null) {
document.getElementsByName('mainFrame')[0].onload = function () {
readyFunc(document.getElementsByName('mainFrame')[0].contentDocument);
if (document.getElementById('zhcheckbtn') == null || document.getElementById('zhsavebtn') == null) {
var mainbutton = document.createElement('button');
var zhcheck = document.createElement('button');
var zhsave = document.createElement('button');
zhcheck.onclick = hdautocheck;
zhcheck.innerText = '自动审批';
zhcheck.id = 'zhcheckbtn';
zhcheck.className = 'scriptbtn';
zhcheck.style.right = '100px';
zhsave.onclick = hdautofill;
zhsave.id = 'zhsavebtn';
zhsave.innerText = '自动填写';
zhsave.className = 'scriptbtn';
zhsave.style.right = '200px';
document.getElementsByName('mainFrame')[0].contentDocument.body.appendChild(zhcheck);
document.getElementsByName('mainFrame')[0].contentDocument.body.appendChild(zhsave);
}
}
}
//网页为档案袋管理系统
else if (window.location['href'].match('czda.e21.cn/index.php') != null) {
var id = null;
setInterval(function () {
if (document.getElementsByName('mainFrame')[0].contentDocument.getElementById('scriptcss') == null) {
readyFunc(document.getElementsByName('mainFrame')[0].contentDocument);
}
if (document.getElementsByName('mainFrame')[0].contentDocument.body.innerHTML.match('必测10分') != null && id == null) {
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❕ 自动填写已开启ヾ(≧▽≦*)o');
id = setInterval(function () {
var result = sportsAutoFill(document.getElementsByName('mainFrame')[0].contentDocument);
if (result == 1) {
clearInterval(id);
id = null;
}
}, 20);
} else if (document.getElementsByName('mainFrame')[0].contentDocument.body.innerHTML.match('请选择要查询的班级!') != null) {
var list = document.getElementsByName('mainFrame')[0].contentDocument.getElementsByTagName('button');
for (let i = 0; i < list.length; i++) {
if (list[i].innerText == '查看' && document.getElementsByName('mainFrame')[0].contentDocument.body.innerHTML.match('学生列表') == null) {
list[i].click();
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❕ 自动加载成功(o゜▽゜)o☆');
}
}
}
}, 1000);
}
//工具人函数
function readyFunc(document) {
var cssele = '.message {z-index:7;line-height:50px;text-align:center;border-Radius:30px;border:grey soild 1px;box-shadow:grey 0px 0px 10px;background:white;height:50px;width:auto;max-width:600px;min-width:200px;position:fixed;bottom:20%;left:50%;transform:translate(-50%,0%);animation: fadeout 4s}';
cssele += '.scriptbtn {transition-duration:1s;animation:btnfadein 1s;position:fixed;height:80px;width:80px;border-Radius:40px;bottom:20%;z-index:3;border:none;box-shadow:grey 0px 0px 10px;background:white}';
cssele += '.scriptbtn:hover {font-size:16px;height:90px;width:90px;opacity:0.8;box-shadow:grey 0px 0px 15px;transform:translate(5px,5px);}';
cssele += '.lockpage {color:rgb(255,255,255);font-size:30px;position:fixed;top:0px;left:0px;height:100%;width:100%;opacity:1;background:rgba(0,0,0,0.5);z-index:5;text-align:center;line-height:400px;}';
cssele += '@keyframes fadeout {0%{bottom:20%;opacity:1} 50%{bottom:20%;opacity:1;} 100%{bottom:25%;opacity:0}}';
cssele += '@keyframes btnfadein {0%{opacity:0;transform:translate(50px,0px) rotate(45deg);}100%{opacity:1;transform:translate(0px,0px) rotate(0deg);}}';
addCSS(document, cssele);
document.head.innerHTML = document.head.innerHTML.replaceAll('window.alert', 'console.log');
document.head.innerHTML = document.head.innerHTML.replaceAll('alert', 'console.log');
return 0;
}
function getRandom(min, max, n = 0) {
n = n + 1;
var result = Math.random();
var num = (max - min) * result + min;
num = num * Math.pow(10, n);
num = num - num % 10;
return num / Math.pow(10, n);
}
function setElementValue(ele, value) {
ele.value = value;
return 0;
}
function appendChildren(document, elelist) {
for (let i = 0; i < elelist.length; i++) {
document.body.appendChild(elelist[i]);
}
return 0;
}
function addCSS(document, cssText) {
var style = document.createElement('style'), //创建一个style元素
head = document.head || document.getElementsByTagName('head')[0]; //获取head元素
style.type = 'text/css'; //这里必须显示设置style元素的type属性为text/css,否则在ie中不起作用
style.id = 'scriptcss';
if (style.styleSheet) { //IE
var func = function () {
try { //防止IE中stylesheet数量超过限制而发生错误
style.styleSheet.cssText = cssText;
} catch (e) {
}
}
//如果当前styleSheet还不能用,则放到异步中则行
if (style.styleSheet.disabled) {
setTimeout(func, 10);
} else {
func();
}
} else { //w3c
//w3c浏览器中只要创建文本节点插入到style元素中就行了
var textNode = document.createTextNode(cssText);
style.appendChild(textNode);
}
document.head.appendChild(style); //把创建的style元素插入到head中
}
function sendMessage(document, message) {
var mesbox = document.createElement('div');
mesbox.className = 'message';
mesbox.innerHTML = message;
mesbox.onload = setTimeout(() => {
mesbox.remove();
}, 3950);
appendChildren(document, [mesbox]);
return 0;
}
function lockPage(locktime, document = document) {
var mesbox = document.createElement('div');
mesbox.id = 'lockpage';
mesbox.className = 'lockpage';
mesbox.onload = setTimeout(() => {
mesbox.remove();
}, locktime);
var refresh = 0;
setInterval(() => {
mesbox.innerHTML = '请等待' + (locktime - refresh * 10) / 1000 + '秒';
refresh++;
}, 10);
appendChildren(document, [mesbox]);
return 0;
}
function refresh() {
window.open(window.location);
window.close();
return 0;
}
//档案袋体测成绩 自动填写
function sportsAutoFill(document) {
try {
if (document.body.innerHTML.match('性别:男') != null) {
setElementValue(document.getElementsByName('fhlzscj')[0], getRandom(3800, 4500)); //肺活量
setElementValue(document.getElementsByName('cpcjf')[0], 3); //1000m跑
setElementValue(document.getElementsByName('cpcjm')[0], getRandom(30, 40));
setElementValue(document.getElementsByName('qqcj')[0], getRandom(15, 23.5, 1)); //坐位体前屈
setElementValue(document.getElementsByName('dpcj')[0], getRandom(7.1, 7.5, 1)); //50m跑
//setElementValue(document.getElementsByName('tycj')[0], getRandom(2.35, 2.60, 2)); //立定跳远
setElementValue(document.getElementsByName('jldf')[0], getRandom(4, 6)); //奖励得分
} else if (document.body.innerHTML.match('性别:女') != null) {
setElementValue(document.getElementsByName('fhlzscj')[0], getRandom(2800, 3100)); //肺活量
setElementValue(document.getElementsByName('cpcjf')[0], 3); //1000m跑
setElementValue(document.getElementsByName('cpcjm')[0], getRandom(25, 40));
setElementValue(document.getElementsByName('qqcj')[0], getRandom(17.4, 24, 1)); //坐位体前屈
setElementValue(document.getElementsByName('dpcj')[0], getRandom(7.8, 8.6, 1)); //50m跑
//setElementValue(document.getElementsByName('tycj')[0], getRandom(1.78, 2.00, 3)); //立定跳远
setElementValue(document.getElementsByName('jldf')[0], getRandom(4, 6)); //奖励得分
}
} catch (TypeError) {
return 1;
}
return 0;
}
//综合实践活动 研究性学习 一键审批
function hdautocheck() {
var suc = 0;
var elelist = document.getElementsByName('mainFrame')[0].contentDocument.getElementsByTagName('a');
for (let i = 0; i < elelist.length; i++) {
var temp = elelist[i];
if (temp.innerHTML == '通过') {
temp.click()
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, "❕ 第" + (suc + 1) + "次自动审批成功");
suc++;
}
}
if (suc == 0) {
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❌错误:未在页面中找到审批入口');
} else {
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, "❕ 审批完成,共审批" + suc + "个学生o((>ω< ))o");
refresh();
}
}
//综合实践活动 社会实践/志愿服务 一键保存
function hdautofill() {
var suc = 0;
var linklist = [];
var temp = document.getElementsByName('mainFrame')[0].contentDocument.getElementsByTagName('a');
for (let i = 0; i < temp.length; i++) {
if (temp[i].innerText == '添加') {
linklist.push(temp[i].href);
}
}
function autosubmit(id, time = 1) {
var innerDocument = document.getElementById(id).contentDocument;
try {
innerDocument.getElementById('advice').innerText = '好';
innerDocument.getElementById('btnSave').click();
} catch (TypeError) {
if (time <= 10) {
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❗ ID为' + id + '的框架中无法找到相应元素,将于3s后重试(第' + time + '次重试)');
setTimeout(autosubmit(id, time + 1), 3000);
return 1;
} else {
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❌错误:ID为' + id + '的框架中无法找到相应元素(已重试10次)');
return 1;
}
}
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❕ 成功:ID为' + id + '的框架已成功提交');
setTimeout(function () {
document.getElementById(id).remove();
}, 100);
suc++;
return 0;
}
for (let i = 0; i < linklist.length; i++) {
temp = document.createElement('iframe');
temp.src = linklist[i];
temp.id = 'frame' + i;
temp.onload = function () {
setTimeout(autosubmit('frame' + i), 1000);
}
document.body.appendChild(temp);
}
setTimeout(() => {
if (suc == 0) {
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❌错误:未在页面中找到添加入口');
} else {
sendMessage(document.getElementsByName('mainFrame')[0].contentDocument, '❕ 已完成框架构建,请稍后……');
}
}, 100);
}
//综合素质评价自动审批
function zhautocheck() {
var suc = 0;
for (let i = 0; i < document.getElementsByName('review').length; i++) {
var element = document.getElementsByName('review')[i];
if (element.value != '刷新学期状态' && element.style.display != 'none') {
element.click();
sendMessage(document, "❕ 第" + (suc + 1) + "次自动审批成功");
suc++;
}
}
if (suc == 0) {
sendMessage(document, "❌错误:没有需要审批的学生");
} else {
sendMessage(document, "❕ 审批完成,共审批" + suc + "个学生");
refresh();
}
}
//综合实践活动 社会实践/志愿服务 一键自评
function hdAutoSelfComment(document) {
var list = document.getElementsByTagName('a');
var link = [];
for (var i = 1; i < list.length; i++) {
if (list[i].innerText == '点击添加自评') {
link.push(list[i].href);
}
}
if (link.length == 0) {
sendMessage(document, '❌错误:未在页面中找到自评入口');
return 0;
}
for (var i = 0; i < link.length; i++) {
var frame = document.createElement('iframe');
frame.onload = () => {
setTimeout(() => {
try {
frame.contentDocument.getElementById('pjtxt').innerText = '好';
frame.contentDocument.getElementsByName('saveBt')[0].click();
} catch (TypeError) {};
return 0;
}, 100);
}
frame.src = link[i];
document.body.appendChild(frame);
setTimeout(() => {
frame.remove()
}, 1000);
}
sendMessage(document, '❕ 成功:自评已完成');
return 0;
}
//综合实践活动 社会实践/志愿服务 一键互评
function hdAutoEachComment(document) {
var list = document.getElementsByTagName('a');
var link = null;
for (var i = 1; i < list.length; i++) {
if (list[i].innerText == '点击添加互评') {
link = list[i].href;
}
}
if (link == null) {
sendMessage(document, '❌错误:未在页面中找到互评入口');
return 0;
}
var index = document.body.innerHTML.match('已提交').index;
var people = document.body.innerHTML[index + 3];
if (document.body.innerHTML[index + 4] != '篇') {
people = people + document.body.innerHTML[index + 4];
}
people = Number(people);
people = people + people * 0.2;
people = parseInt(people.toString());
lockPage(340 * people + 1, document);
var suc = 0;
setInterval(() => {
if (suc <= people) {
var frame = document.createElement('iframe');
frame.onload = () => {
setTimeout(() => {
try {
frame.contentDocument.getElementById('pjtxt').innerText = '好';
frame.contentDocument.getElementsByName('saveBt')[0].click();
} catch (TypeError) {};
return 0;
}, 100);
}
frame.src = link;
document.body.appendChild(frame);
setTimeout(() => {
frame.remove()
}, 1000);
sendMessage(document, '❕ 成功:已完成' + suc + '/' + people + '篇');
suc++;
}
}, 300);
return 0;
}
})();