您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
兰州大学自动评教脚本
// ==UserScript== // @name 兰大自动评教(LZUAUTO) // @namespace http://tampermonkey.net/ // @version 0.21 // @description 兰州大学自动评教脚本 // @author v2yield // @match http://qa.lzu.edu.cn:8081/new/student/lzdx_rank/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant GM_xmlhttpRequest // @require https://code.jquery.com/jquery-1.10.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.1/js/jquery.dataTables.min.js // @require https://code.jquery.com/ui/1.10.1/jquery-ui.js // @license MIT // ==/UserScript== (function () { 'use strict'; var pjlistT = new Object();//评价列表 var skjslist = new Array(); //教师列表 var needpk = new Array(); //需要评课的课程 function entrance() { setTimeout(function () { $('#tipDlg .modal-footer button').click(); console.log('进入') }, 7000) } function closecomment() { $('#finishDlg.modal.hide.fade.in button.btn.blue').click();//关闭评课结果 console.log('关闭当前教师评课'); } function comment() { /*comment for the teachers and lesson*/ console.log('点击开始评课'); var input_ls1 = $('#pjnr div.controls input'); var text1 = $('#pjnr div.controls textarea'); var input_ls2 = $('#pjnr1 div.controls input'); var text2 = $('#pjnr1 div.controls textarea'); var text = new Object() var input_ls = new Object() if(input_ls1.length != 0){ text = text1 input_ls = input_ls1 }else{ text = text2 input_ls = input_ls2 } var i = 0; for (i = 0; i < input_ls.length; i++) { input_ls[i].checked = false; input_ls[i].parentNode.setAttribute('class', ''); } for (i = 0; i < input_ls.length; i += 5) { if (i == 0) { input_ls[i + 1].parentNode.setAttribute('class', 'checked'); input_ls[i + 1].checked = true; } else { input_ls[i].parentNode.setAttribute('class', 'checked'); input_ls[i].checked = true; } } for (i = 0; i < text.length; i++) { text[i].innerHTML = '无'; } $('#pjsubmit').click();//提交 } function closecommentlist() { $('#kfxpjDlg.modal.fade.hide.modal-overflow.in button.close').click();//关闭内部教师列表 console.log('关闭教师列表') } function checkcomment() {//检测是否还有课未评 var i = 0; var flag = true; for (i = 0; i < needpk.length; i++) { var str = needpk[i].getAttribute('onclick');//获取的onclick属性 var n = str.match(/'ldztm':('\d{1,2}'|null)/g);//正则匹配ldztm var ldztm = n[0].split("'")[3];//获取ldztm,即判断课程是否评教 var tmp = skjslist[i].getAttribute('onclick'); var nz = tmp.match(/'ldztm':('\d{1,2}'|null)/g); var ldztmz = nz[0].split("'")[3]; if (ldztm == undefined) { ldztm = null; ldztmz = null; } else { ldztm = parseInt(ldztm); ldztmz = parseInt(ldztmz); } console.log(ldztm); //先对大于3的课程评价 if (str.indexOf("pjlist") != -1 && (ldztm == 0 || ldztm == null)) { console.log(str) needpk[i].click(); console.log("1ldztm " + ldztm) console.log(needpk[i]) comment();//评课 closecomment();//关闭评课 } else if (str.indexOf("tishi") != -1) { //对小于等于3的课程教师评价 console.log(needpk[i]) var str1 = skjslist[i].getAttribute('onclick'); var n1 = str1.match(/'hkjssl':'(\d{1,2})'/g); var hkjssl = n1[0].split("'")[3];//获取hkjssl,即课程教师总数 var n2 = str1.match(/'ldztm':('\d{1,2}'|null)/g); var ldztm1 = n2[0].split("'")[3];//获取ldztm,即已评教的教师总数 if (ldztm1 == undefined) { ldztm1 = null } else { ldztm1 = parseInt(ldztm1) hkjssl = parseInt(hkjssl) } console.log(skjslist[i]) console.log("2ldztm: " + ldztm1 + " hkjssl: " + hkjssl) skjslist[i].click(); if (ldztm1 < hkjssl) { var j = 0 var tslist = $('#sample_2 tbody tr div.tdrepaire a');//内部教师列表 console.log(tslist) for (j = 0; j < tslist.length; j++) { var teacher = tslist[j].getAttribute('onclick'); var n3 = teacher.match(/'ldztm':('\d{1,2}'|null)/g); var ldztm2 = n3[0].split("'")[3];//获取ldztm2,即判断教师是否被评教 if (ldztm2 == undefined) { ldztm2 = null } else { ldztm2 = parseInt(ldztm2) } if (ldztm2 == null) { tslist[j].click(); ldztm1++; console.log(ldztm1 + "ldztm1\n" + hkjssl + " hkjssl") console.log(teacher) comment();//评教 closecomment();//关闭评教 if (ldztm1 == hkjssl) { break; } } } } closecommentlist() } else { console.log(needpk[i]) if (str.indexOf("pjlist") != -1 && !(ldztm == 0 || ldztm == null)) {//对大于3的课程教师评价 var str2 = skjslist[i].getAttribute('onclick'); var n4 = str2.match(/'hkjssl':'(\d{1,2})'/g); var hkjssl1 = n4[0].split("'")[3];//获取hkjssl1,即课程教师总数 var n5 = str2.match(/'ldztm':('\d{1,2}'|null)/g); var ldztm3 = n5[0].split("'")[3];//获取ldztm3,即已评教的教师总数 if (ldztm3 == undefined) { ldztm3 = null } else { ldztm3 = parseInt(ldztm3); hkjssl1 = parseInt(hkjssl1) } console.log(skjslist[i]) console.log("3ldztm" + ldztm3) console.log("3hkjssl" + hkjssl1) skjslist[i].click(); if (ldztm3 < hkjssl1) { var j = 0; var tslist1 = $('#sample_2 tbody tr div.tdrepaire a');//内部教师列表 console.log(tslist1.length) for (j = 0; j < tslist1.length; j++) { var teacher1 = tslist1[j].getAttribute('onclick'); var n6 = teacher1.match(/'ldztm':('\d{1,2}'|null)/g); var ldztm4 = n6[0].split("'")[3];//获取ldztm4,即判断教师是否被评教 if (ldztm4 == undefined) { ldztm4 = null } else { ldztm4 = parseInt(ldztm4) } if (ldztm4 == 1) { tslist1[j].click(); ldztm3++; comment();//评教 closecomment();//关闭评教 if (ldztm3 == hkjssl1) { break; } } } } closecommentlist() } else { flag = false if (!flag) { break; } } } } if (!flag) { clearInterval(timer); console.log('关闭时钟'); alert('完成') } } function filterarry() { var length = skjslist.length; var i = 0; while (i < length) { var str1 = skjslist[i].getAttribute('onclick'); var n1 = str1.match(/'hkjssl':'(\d{1,2})'/g); var hkjssl = n1[0].split("'")[3];//获取hkjssl,即课程教师总数 var n2 = str1.match(/'ldztm':('\d{1,2}'|null)/g); var ldztm1 = n2[0].split("'")[3];//获取ldztm,即已评教的教师总数 if (ldztm1 == undefined) { ldztm1 = null } else { ldztm1 = parseInt(ldztm1) hkjssl = parseInt(hkjssl) } if (ldztm1 == hkjssl) { //已评教教师数量等于课程教师总数 skjslist.splice(i, 1); needpk.splice(i, 1); length--; } else { i++; } console.log("1ldztm: " + ldztm1 + " hkjssl: " + hkjssl) console.log('过滤') console.log(skjslist); console.log(needpk); } } // var finalbd = $("#hjjss").val(); //评课界限 function update() { for (var i = 0; i < pjlistT.length; i++) { if (pjlistT[i].getAttribute('onclick') != null) { if (pjlistT[i].getAttribute('onclick').indexOf("skjsList") != -1) { skjslist.push(pjlistT[i]);// } else if (pjlistT[i].getAttribute('onclick').indexOf("pjlist") != -1 || pjlistT[i].getAttribute('onclick').indexOf("tishi") != -1) { needpk.push(pjlistT[i]);//课程列表 } } } filterarry(); console.log('更新评课状态'); console.log(skjslist); console.log(needpk); } entrance(); var timer = setInterval(function () { pjlistT = $('.btn.blue.mini'); console.log(pjlistT) console.log(pjlistT.length) if(pjlistT.length > 1){ //开始评教 Action(); console.log('结束') clearInterval(timer) } },2000); function Action() { var timer = setInterval(function () { pjlistT = $('.btn.blue.mini'); console.log(pjlistT) skjslist.length = 0; needpk.length = 0; update(); if (needpk.length == 0 && skjslist.length == 0) { clearInterval(timer); console.log('关闭时钟'); alert('完成') } else { checkcomment(); } }, 4000); }; })();