Greasy Fork

来自缓存

Greasy Fork is available in English.

国科大SEP自动评教

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

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

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