您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
a script can auto remark for you
// ==UserScript== // @name AutoRemark // @namespace https://github.com/Pologue/AutoRemarkScript // @version 0.0.1 // @description a script can auto remark for you // @author Pologue // @match https://ugsqs.whu.edu.cn/* // @icon none // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; let sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); console.log("AutoRemark start!"); main(); async function main() { await sleep(1000); // setTimeout(function () { if (window.location.href.indexOf("https://ugsqs.whu.edu.cn/studentpj") != -1 || window.location.href.indexOf("https://ugsqs.whu.edu.cn/new/student/index.jsp") != -1) { // 主页 let data = $("#task-list").children().data('data'); let overtime = "timeNO"; // 是否超时 let contextPath = ""; let backUrl = contextPath + '/new/student/rank/evaluate2.jsp?hdfaid=' + data.ID + '&overtime=' + overtime + '&sfkdcpj=' + data.SFKDCPJ + '&sfqxzdf=' + data.SFQXZDF + '&zbtx=' + data.ZBTX + '&kkxy=' + data.ORGCODE + '&roid=' + data.ROID; window.location.href = backUrl; // 跳转到评教页 console.log("AutoRemark: 跳转到评教页"); } // 课程列表页 let totalPage = $("table.table.table-bordered.table-striped").dataTable().fnPagingInfo().iTotalPages; // 总页数 console.log("AutoRemark: 总页数: " + totalPage); for (let i = 0; i < totalPage; i++) { await sleep(1000); let pagination = $(".dataTables_paginate.paging_bootstrap.pagination").children().children(); // 分页栏 pagination.eq(i + 1).click(); // 点击下一页 console.log("AutoRemark: 点击第" + (i + 1) + "页"); remarkInOnePage(); } // }, 500); } async function remarkInOnePage() { console.log("AutoRemark: remarkInOnePage"); await sleep(1000); // setTimeout(function () { // 获取待评教课程的列表 let courseList = $("#pjkc").children(); // 课程列表数组 let remarkFunctList = []; for (let i = 0; i < courseList.length; i++) { let course = courseList[i]; // let courseName = $(course).find("td").eq(0).text(); // let teacherName = $(course).find("td").eq(1).text(); let remarkFunct = $(course).find("td").eq(-1).children().attr("onclick"); // evaluate1(...) let courseStatus = $(course).find("td").eq(-2).children().text(); if (courseStatus == "未评价") { remarkFunctList.push(remarkFunct); } } for (let i = 0; i < remarkFunctList.length; i++) { let remarkFunct = remarkFunctList[i]; eval(remarkFunct); // 弹出评教dialog remarkInDlg(); } // }, 1000); } function remarkInDlg() { console.log("AutoRemark: remarkInDlg"); // setTimeout(function () { let unFullSegment = Math.floor(Math.random() * 5) + 1; // 1-5 // 单选题列表,li元素 let remarkSegment1 = $("#pjnr").children().eq(0).children().children().eq(1).children(); // 整体满意度 let remarkSegment2 = $("#pjnr").children().eq(1).children().children().eq(1).children(); // 教师教学行为 let remarkSegment3 = $("#pjnr").children().eq(2).children().children().eq(1).children(); // 教学实施过程 let remarkSegment4 = $("#pjnr").children().eq(3).children().children().eq(1).children(); // 学生学习行为 let remarkSegment5 = $("#pjnr").children().eq(4).children().children().eq(1).children(); // 学生学习收获 // 开放型问题 let remarkSegment6 = $("#pjnr").children().eq(-1).children().children().eq(1).children(); // 文字评价 remarkSegment(remarkSegment1, unFullSegment, 1); remarkSegment(remarkSegment2, unFullSegment, 2); remarkSegment(remarkSegment3, unFullSegment, 3); remarkSegment(remarkSegment4, unFullSegment, 4); remarkSegment(remarkSegment5, unFullSegment, 5); remarkText(remarkSegment6, "暂无"); // setTimeout(function () { $("#pjsubmit").click(); // }, 5000); // }, 2000); } function remarkSegment(segment, unFullSegment, num) { console.log("AutoRemark: remarkSegment" + num); // setTimeout(function () { let n = segment.length; if (unFullSegment == num) { let unFullRemark = Math.floor(Math.random() * n); // 0 ~ n-1 for (let i = 0; i < n; i++) { let element = segment.eq(i); if (i == unFullRemark) { scoreAt(element, 4); } else { scoreAt(element, 5); } } } else { for (let i = 0; i < n; i++) { let element = segment.eq(i); scoreAt(element, 5); } } // }, 2000); } // score 1-5 function scoreAt(element, score) { console.log("AutoRemark: scoreAt"); let scoreBtn = element.children().eq(-1).children().children().eq(5 - score).children().children().children(); scoreBtn.get(0).click(); } function remarkText(element, text) { console.log("AutoRemark: remarkText"); let textArea = element.children().eq(-1).children().children(); textArea.val(text); } })();