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个选项
            }
        }
    }
})();