🏠 Home 

UCAS SEP 系统自动教评

UCAS的SEP系统自动教评,此脚本能够帮助您自动评价,支持课程评价与教师评价


安装此脚本?
// ==UserScript==
// @name         UCAS SEP 系统自动教评
// @namespace    http://tampermonkey.net/
// @version      0.2.4
// @description  UCAS的SEP系统自动教评,此脚本能够帮助您自动评价,支持课程评价与教师评价
// @author       tylzh97
// @match        https://jwxk.ucas.ac.cn/evaluate/course*
// @match        https://jwxk.ucas.ac.cn/evaluate/teacher*
// @match        https://jwxk.ucas.ac.cn/evaluate/evaluateTeacher/*
// @match        https://jwxk.ucas.ac.cn/evaluate/evaluateCourse/*
// @license      MIT
// @require      https://libs.baidu.com/jquery/1.8.3/jquery.min.js
// @require      https://unpkg.com/[email protected]/dist/tesseract.min.js
// ==/UserScript==
/*
介绍:
纯JS打卡脚本,能够自动化完成教评全五星好评
OCR 部分使用 https://github.com/naptha/tesseract.js
V0.1 2020年12月04日
手动点击需要评价的课程或老师,即可自动评价并且跳转到未评价系统界面。
V0.2 2020年12月04日
在教评界面, 点击帅气小哥头像, 即可实现全自动打卡
V0.2.1 2020年12月04日
bug修复
V0.2.4 2023年01月01日
bug修复
*/
'use strict';
// Tesseract.js API
// https://github.com/naptha/tesseract.js/blob/master/docs/api.md#worker-recognize
// Tesseract.recognize(
//     'https://tesseract.projectnaptha.com/img/eng_bw.png',
//     'eng',
//     { logger: m => console.log(m) }
// ).then(({ data: { text } }) => {
//     console.log(text);
// })
const CAPTCHA_HOST = "https://sep.maikebuke.com/captcha";
// 使用画布重绘验证码, 并获取 base64 字符串
// 参考: https://stackoverflow.com/a/22172860/10714490
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.naturalWidth;
canvas.height = img.naturalHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL;
}
unsafeWindow.getBase64Image = getBase64Image;
function get_captcha_text(img) {
// const img = document.getElementById("adminValidateImg");
const image_data = getBase64Image(img);
const payload = {
image: image_data
}
var text = "";
$.ajax({
type: 'POST',
url: CAPTCHA_HOST,
data: JSON.stringify(payload),
contentType: 'application/json',
async: false,
}).done(function (data) {
if (data.code === 0 && data.data.length === 4) {
text = data.data;
}
});
return text;
}
function fill_captcha(id_input, id_img) {
const input = document.getElementById(id_input);
const image = document.getElementById(id_img);
const ctext = get_captcha_text(image);
input.value = ctext;
return true;
}
(function () {
// 以下为代码
function handleClick() {
window.localStorage.setItem('zm-key', JSON.stringify({ goon: 1 }));
goonWithLocalStorage();
}
function goonWithLocalStorage() {
const dict = JSON.parse(window.localStorage.getItem('zm-key'));
if (!dict) {
return;
}
const code = dict.goon;
if (code) {
// 处理页面点击逻辑
const buttons = document.querySelectorAll('td a[class^="btn"]');
// buttons[1].innerText = '1111';
const n_btn = Array.from(buttons)
.filter((x) => { return x.innerText.indexOf('修改评估') });
if (n_btn && n_btn[0]) {
n_btn[0].click();
} else {
window.localStorage.setItem('zm-key', JSON.stringify({ goon: 0 }));
}
setTimeout(() => {
alert('整活完毕');
}, 3000);
return;
}
}
unsafeWindow.handleClick = handleClick;
// 前期教评, 均5分
$(document).ready(() => {
if (window.location.href.indexOf('evaluate/course') + 1 ||
window.location.href.indexOf('evaluate/teacher') + 1) {
let title = document.getElementsByClassName('span12');
if (!title) {
window.alert('出错了');
return;
}
// 添加❤按钮
title = title[0];
title.style = 'height: 75px; line-height: 75px;';
title.firstElementChild.style = "float:left; line-height: 75px;";
const btn = document.createElement('div');
btn.style = 'float: right; top -10px; padding-right: 30px;';
btn.innerHTML = '<button style="border: 0;" onclick="handleClick()"><span>为什么不试试一键教评呢</span><img width=75px src="https://qiniu.maikebuke.com/006fLFOwgy1gygew6aw8cj30qc0qcn24.jpg" /></button>';
title.appendChild(btn);
// 加载完毕后开启循环
goonWithLocalStorage();
} else {
console.log('开始教评.....');
const lst1 = document.querySelectorAll('[name^="item_"][value="5"]');
console.log(lst1);
for (let i = 0; i < lst1.length; i++) {
lst1[i].checked = true;
}
// 五个意见栏
const ta = document.querySelectorAll('textarea[name^="item_"]');
for (let i = 0; i < ta.length; i++) {
const text = window.location.href.indexOf('evaluateTeacher') + 1 ?
"治学严谨、备课充分、讲课认真、因材施教" :
"课程与作业(包括作业、报告、测验测试、论文等)有助于我的能力的提高";
ta[i].innerText = text;
}
if (window.location.href.indexOf('evaluateCourse') + 1) {
// 教室情况和舒适度
document.querySelectorAll('input[name^="radio_"]')[0].checked = true;
// 修读原因
document.querySelectorAll('input[name^="item_"][type="checkbox"]')[0].checked = true;
}
fill_captcha("adminValidateCode", "adminValidateImg");
const submit = document.getElementById("sb1");
submit.click()
$("[value=ok]").click()
// 点击提交按钮
// document.getElementById('sb1').click();
}
})
})();