Greasy Fork is available in English.

国科大SEP自动评教

一键选择对课程或者对老师的评价,免去繁琐的点击环节。

// ==UserScript==
// @name         国科大SEP自动评教
// @namespace    http://tampermonkey.net/
// @license MIT
// @version      0.1
// @description  一键选择对课程或者对老师的评价,免去繁琐的点击环节。
// @author       无双愣坑
// @match        *jwxk.ucas.ac.cn/evaluate/*
// @icon         https://bkimg.cdn.bcebos.com/pic/0df3d7ca7bcb0a46162bebcb6163f6246b60af33?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2UxMTY=,g_7,xp_5,yp_5/format,f_auto
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var radioList = []; // 所有单选
    var textList = []; // 所有文本
    var head = document.getElementsByTagName('thead');
    if (location.pathname.indexOf('evaluateTeacher') != -1) {
        // 评估老师
        console.log('教师评估');
        for (let i = 498; i <= 524; i++) {
            // radio的name是item_498到524,迭代生成字符串匹配name,其中510和511是文本输入框
            let radio = document.getElementsByName("item_" + i);
            if (radio.length == 5) { // 只保留单选radio
                radioList.push(document.getElementsByName("item_" + i))
            }
        }
        for (let n = 0; n <= 4; n++) {
            head[0].childNodes.item(1).childNodes.item(5 + 2 * n).onclick = function() {selectRadio(false, n, radioList)};
        }
        head[0].childNodes.item(1).childNodes.item(3).onclick = function() {selectRadio(true, 0, radioList)};
    } else {
        // 评估课程
        console.log('课程评估');
        for (let i = 453; i <= 496; i++) {
            // radio的name是item_498到524,迭代生成字符串匹配name,其中510和511是文本输入框
            let radio = document.getElementsByName("item_" + i);
            if (radio.length == 5) { // 只保留单选radio
                radioList.push(document.getElementsByName("item_" + i))
            }
        }
        for (let n = 0; n <= 4; n++) {
            head[0].childNodes.item(1).childNodes.item(5 + 2 * n).onclick = function() {selectRadio(false, n, radioList)};
        }
        head[0].childNodes.item(1).childNodes.item(3).onclick = function() {selectRadio(true, 0, radioList)};
    }
    function selectRadio(isRandom, num, radioList) {
        // 选择选项,当israndom为真时随机选择,否则均选择第num个,num=01234,分别对应非常满意到非常不满
        if (isRandom) {
            // 随机选择
            for (let i = 0; i < radioList.length; i++) {
                var n = Math.floor(Math.random() * 5);
                radioList[i][n].click(); // 点选第n个选项,n为随机整数01234
            }
        } else {
            // 选择第num个
            for (let i = 0; i < radioList.length; i++) {
                radioList[i][num].click(); // 点选第n个选项
            }
        }
    }
})();