广二师自动晨午检 - product

try to take over the world!

当前为 2020-12-29 提交的版本,查看 最新版本

// ==UserScript==
// @name         广二师自动晨午检 - product
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       欧先森
// @match        https://tb.gdei.edu.cn/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    console.log('执行广二师自动晨午检');

    let name = document.querySelector('.uname').value;
    let pwd =  document.querySelector('.pword').value;
    console.log(name. pwd);
    if (!name || !pwd) {
        $.modal.msg('请输入账号和密码');
        name = prompt('账号:');
        pwd = prompt('密码:');
    }
    document.querySelector('.uname').value = name;
    document.querySelector('.pword').value  = pwd;

    function gettime() {
        var today=new Date();
        var y=today.getFullYear();
        var m=today.getMonth();
        var d=today.getDate();
        var h=today.getHours();
        var i=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字钱前加一个‘0’
        m=m+1;
        d=checkTime(d);
        m=checkTime(m);
        i=checkTime(i);
        s=checkTime(s);
        console.log(y+"年"+m+"月"+d+"日"+" "+h+":"+i+":"+s +"执行成功了一键晨午检");
    }
    function checkTime(i){
        if (i<10){
            i="0" + i;
        }
        return i;
    }
    function automaticCwj() {
        fetch('https://tb.gdei.edu.cn/index').then((res) => {
            console.log('res',res)
            if (res.url == "https://tb.gdei.edu.cn/login") {
                setTimeout(()=>{
                    document.querySelector('.uname').value = name;
                    document.querySelector('.pword').value  = pwd;
                    document.querySelector('#btnSubmit').click();
                }, 3000);
            }
            else {
                setTimeout(getTodayCwjTime, 3000);
            }
        },
                                                   (err) => {
            console.log('err',err);
            window.open('https://tb.gdei.edu.cn/login');
            automaticCwj();
        }
                                                  )
    }
    function getTodayCwjTime() {
        console.log('run getTodayCwjTime');
        $.ajax({
            type: "get",
            url: "/system/mrcj/getcjtime",
            success: function (r) {
                console.log('r', r);
                if (r == "无权限") {
                    $.modal.msg('无权限');
                } else {
                    if (r == "您今天还未午检" || r == "您今天还未晨检") {
                        $("#cwj").addClass("label-warning");
                        // 运行晨午检
                        runCwj();
                    } else {
                        $("#cwj").addClass("label-info");
                    }
                    $.modal.msg(r);
                    $("#cwj").html(r);
                }
            }
        });
    }

    //一键晨午检
    function runCwj() {
        $.ajax({
            type: "get",
            url: "/system/mrcj/yjcwj",
            success: function (r) {
                if (r == "0") {
                    $.modal.msg("您没有此权限!");
                }
                else if (r == "1") {
                    $.modal.msg("您今天已经晨检!");
                    $("#cwj").addClass("label-info");
                    $("#cwj").html("今天晨检成功了");
                }
                else if (r == 2) {
                    $.modal.msg("您今天已经午检!");
                    $("#cwj").addClass("label-info");
                    $("#cwj").html("今天午检成功了");
                }
                else if (r == "3") {
                    $.modal.msg("出错了,请前往新增填报晨午检!");
                }
                else if (r == "succC") {
                    $.modal.msg("您今天一键晨检成功!");
                    $("#cwj").addClass("label-info");
                    $("#cwj").html("您今天晨检成功");
                    gettime();
                }
                else if (r == "succW") {
                    $.modal.msg("您今天一键午检成功!");
                    $("#cwj").addClass("label-info");
                    $("#cwj").html("您今天午检成功");
                    gettime();
                }
                else {
                    $.modal.msg("出错了,请前往新增填报晨午检!");
                }
            }
        });
    }

    function timeoutFunc(config, func) {
        config.runNow && func()
        let nowTime = new Date().getTime()
        let timePoints = config.time.split(':').map(i => parseInt(i))
        let recent = new Date().setHours(...timePoints)
        recent >= nowTime || (recent += 24 * 3600000)
        setTimeout(() => {
            func()
            setInterval(func, config.interval * 3600000)
        }, recent - nowTime)
    }
    timeoutFunc({
        interval: 1, //间隔天数,间隔为整数
        runNow: false, //是否立即运行
        time: "7:10:00"
    }, automaticCwj);
    timeoutFunc({
        interval: 1,
        runNow: false,
        time: "11:10:00"
    }, automaticCwj);
    // Your code here...
})();