国开学习网教师登陆天数辅助

国家开放大学,国开学习网教师登陆天数和进入课程辅助工具,请设置浏览器允许弹窗网站(menhu.pt.ouchn.cn)

目前为 2023-10-23 提交的版本。查看 最新版本

// ==UserScript==
// @name         国开学习网教师登陆天数辅助
// @namespace    https://gf.qytechs.cn/zh-CN/users/707063-genexy
// @version      202310231916
// @description  国家开放大学,国开学习网教师登陆天数和进入课程辅助工具,请设置浏览器允许弹窗网站(menhu.pt.ouchn.cn)
// @author       流浪的蛊惑
// @connect      ai.baidu.com
// @match        *://*.ouchn.cn/*
// @grant        GM_xmlhttpRequest
// @license MIT
// ==/UserScript==
var href = location.href;
function addXMLRequestCallback(callback){//监听请求
    var oldSend, i;
    if( XMLHttpRequest.callbacks ) {
        XMLHttpRequest.callbacks.push( callback );
    } else {
        XMLHttpRequest.callbacks = [callback];
        oldSend = XMLHttpRequest.prototype.send;
        XMLHttpRequest.prototype.send = function(){//监听发送
            for( i = 0; i < XMLHttpRequest.callbacks.length; i++ ) {
                XMLHttpRequest.callbacks[i]( this );
            }
            oldSend.apply(this, arguments);
        }
        XMLHttpRequest.prototype.wrappedSetRequestHeader=XMLHttpRequest.prototype.setRequestHeader;
        XMLHttpRequest.prototype.setRequestHeader = function(header, value) {//监听自定义主机头
            this.wrappedSetRequestHeader(header, value);
            if(!this.headers) {
                this.headers = {};
            }
            if(!this.headers[header]) {
                this.headers[header] = [];
            }
            this.headers[header].push(value);
        }
    }
}
function getBase64Image(image,ext){
    var canvas = document.createElement("canvas");
    canvas.width = image.width;
    canvas.height = image.height;
    var context = canvas.getContext("2d");
    context.drawImage(image,0,0,image.width,image.height);
    // 这里是不支持跨域的
    var base64 = canvas.toDataURL("image/"+ext);
    return base64;
}
var listkc=null
function getkclb(){//获取当前课程列表
    GM_xmlhttpRequest({
        method: "post",
        url: "/ouchnapp/wap/course/jskc-pc",
        headers: {
            "Content-Type": "application/x-www-form-urlencoded"
        },
        data: "tab=&page=1&page_size=200",
        onload: function(res){
            let rec=JSON.parse(res.responseText);
            listkc=rec.d.list;
        }
    });
}
(function() {
    'use strict';
    addXMLRequestCallback( function( xhr ) {
        xhr.addEventListener("load", function(){
            if (xhr.readyState==4 && xhr.status==200) {
                if (xhr.responseURL.includes("/am/validatecode/verify.do")){//验证验证码
                    let dat=JSON.parse(xhr.responseText);
                    console.log(dat);
                    if(dat.state=="failed"){
                        document.getElementById("kaptchaImage").click();
                        let zhjd=parseInt(localStorage.getItem("帐号进度"));
                        localStorage.setItem("帐号进度",zhjd-1);
                        delay=0;
                    }
                }
                if (xhr.responseURL.includes("/ouchnapp/wap/course/jskc-pc")){//科目获取
                    getkclb();
                }
            }
        });
    });
    let delay=0,nextjs=0,dlxs=true;
    setInterval(function(){
        let dlxx=localStorage.getItem("登陆帐号");
        if(dlxx!=null){
            if(href.includes("/am/UI/Login")){
                if(delay==1){//延时获取验证码
                    let imgdat=getBase64Image(document.getElementById("kaptchaImage"),"png");
                    GM_xmlhttpRequest({
                        method: "post",
                        url: "https://ai.baidu.com/aidemo",
                        headers: {
                            "Content-Type": "application/x-www-form-urlencoded",
                            "referer":"https://ai.baidu.com/tech/ocr_others/webimage"
                        },
                        data: "type="+encodeURIComponent("https://aip.baidubce.com/rest/2.0/ocr/v1/webimage")+"&image="+encodeURIComponent(imgdat),
                        onload: function(res){
                            let rec=JSON.parse(res.responseText);
                            console.log(rec);
                            if(rec.errno==0){
                                if(rec.data.words_result_num>0){
                                    document.getElementById("validateCode").value=rec.data.words_result[0].words;//验证码
                                    let zhjd=parseInt(localStorage.getItem("帐号进度"));
                                    let zhs=dlxx.split("\n");
                                    if(zhjd<zhs.length){
                                        localStorage.setItem("帐号进度",zhjd+1);
                                        document.getElementById("loginName").value=zhs[zhjd].split(",")[0];//用户
                                        document.getElementById("password").value=zhs[zhjd].split(",")[1];//密码
                                        document.getElementById("button").click();//登陆
                                    }else{
                                        dlxs=true;
                                        localStorage.clear();
                                    }
                                }
                            }
                        }
                    });
                }
                delay++;
            }
        }else if(dlxs){
            dlxs=false;
            let dlk=document.getElementById("con");
            if(dlk!=undefined){
                let dlstr="<center><span style=\"color:blue;background-color:#fff;font-size:20pt;\">教师账号{用户名,密码}一行一个</span><br />";
                dlstr+="<textarea id=\"dlxx\" cols=\"100\" rows=\"10\"></textarea><p><input type=\"button\" value=\"开始执行\" ";
                dlstr+="onclick=\"var dlxx=document.getElementById('dlxx').value;localStorage.setItem('登陆帐号',dlxx);localStorage.setItem('帐号进度','0');location.reload();";
                dlstr+="\"></p></center>";
                dlk.innerHTML=dlstr;
            }
        }
        if(href.includes("/site/ouchnPc/index")){
            let kcjd=localStorage.getItem("课程进度");
            if(kcjd!=null){
                nextjs++;
                if(nextjs>15){
                    nextjs=0;
                    document.getElementsByClassName("ouchnPc_index_title")[0].getElementsByTagName("a")[0].click();
                    localStorage.setItem("课程进度",parseInt(kcjd)+1);
                }
                if(nextjs==1){
                    if(kcjd<listkc.length){
                        document.getElementsByClassName("ouchnPc_index_title")[0].innerHTML="<a href=\""+listkc[kcjd].url+"\" target=\"_blank\">"+listkc[kcjd].title+"</a>";
                    }else{
                        localStorage.clear();
                        setTimeout(()=>{window.open("https://lms.ouchn.cn/logout")},8000);
                        setTimeout(()=>{document.getElementsByClassName("left_logout")[0].click()},10000);
                    }
                }
            }else{
                localStorage.setItem("课程进度","0");
            }
        }
        if(href.includes("lms.ouchn.cn/course/")){
            if((nextjs++)>8){
                window.close();
            }
        }
        if(href.includes("/auth/realms/guokai/protocol/cas/login")){
            if((nextjs++)>3){
                window.close();
            }
        }
    },1000);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址