LT网上学院刷课

进入专题准备选课的时候自动开始。关闭其他标签页刷新

// ==UserScript==
// @name         LT网上学院刷课
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  进入专题准备选课的时候自动开始。关闭其他标签页刷新
// @author       You
// @match        http://wsxy.chinaunicom.cn/learner/subject/*
// @match        http://wsxy.chinaunicom.cn/learner/course/detail/*
// @match        http://wsxy.chinaunicom.cn/learner/play/course/*
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_addValueChangeListener
// @icon         http://wsxy.chinaunicom.cn/favicon.ico
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    var reg1 = /learner\/subject/g
    var subjectCount = 0
    GM_setValue("jumpFlag",false)
    //持续检测网址,以便监测网址变化
    setInterval(function(){
        console.log("新测试进行中:" + GM_getValue("url"))
        //保存当前地址“url”到脚本,以便检测变化
        GM_setValue("url",location.href)
        //需要加入选课界面卡住刷新机制
        if(reg1.test(location.href)){
            console.log("卡【选课界面】计数:"+subjectCount)
            subjectCount++
            if(subjectCount>10){ // >10是10秒的意思
                //刷新当前页面
                location.reload()
            }
        }
    },1000)
    //监听url变化
    GM_addValueChangeListener("url",function(){
        console.log("url发生了变化!!!" + GM_getValue("url"))
        if(getInterface()==1){
            //console.log("【选课界面】")
            //保存根地址到全局变量
            GM_setValue("rootUrl",location.href)
            console.log("已保存根地址【" + GM_getValue("rootUrl") + "】到【rootUrl】")
            //alert("请【关闭】其他网上学院的页面(没有就直接点【确定】),并自动继续")
            var t1 = setInterval(function(){
                if(findClass("single-course")){
                    //加载完成
                    clearInterval(t1)
                    setAll_parent()
                    //执行学习function
                    //study()
                }
            },200)
        }else if(getInterface()==2){
            //
            console.log("【大纲界面】")
            //alert("标志位为:" + GM_getValue("jumpFlag"))
            //检测跳转标志位
            if(GM_getValue("jumpFlag")){
                //alert("if")
                GM_setValue("jumpFlag",false)
                //跳转到选课界面
                location.assign(GM_getValue("rootUrl"))
            }else{
                //alert("else")
                clickStartStudy()
            }
        }else if(getInterface()==3){
            //
            console.log("【播放界面】")
            //倒计时:秒
            var countDown = 200
            var t2 = setInterval(function(){
                countDown--
                document.getElementsByClassName("player-name ")[0].innerText="【"+countDown+"】秒后自动刷新"
                if(countDown<0){
                    //倒计时到了
                    clearInterval(t2)
                    //设置需要跳转的标志位,后退后取标志位再跳转一次
                    GM_setValue("jumpFlag",true)
                    //先点保存记录
                    //save-logout-box ant-btn ant-btn-primary
                    document.getElementsByClassName("save-logout-box ant-btn ant-btn-primary")[0].click()

                    //点击左上角后退
                    document.getElementsByClassName("back-course")[0].click()
                 }// if(countDown<0)
            },1000) //var t2 = setInterval
        } //else if(getInterface()==3)
    }) //GM_addValueChangeListener


    window.onload = function(){
        //防止选课界面刷新不能从当前窗口打开
        if(getInterface()==1){
            //console.log("【选课界面】")
            GM_setValue("rootUrl",location.href)
            console.log("已保存根地址【" + GM_getValue("rootUrl") + "】到【rootUrl】")
            //alert("请【关闭】其他网上学院的页面(没有就直接点【确定】),并自动继续")
            var t1 = setInterval(function(){
                if(findClass("single-course")){
                    //加载完成
                    clearInterval(t1)
                    setAll_parent()
                    //执行学习function
                    study()
                }//if(findClass("single-course"))
            },200)//var t1 = setInterval(function()
        }//if(getInterface()==1)
    }//onload完

    function setTitle(text){
        //
        document.getElementsByTagName("title")[0].innerText = text
    }

 
    function getInterface(){
        var reg1 = /learner\/subject/g
        var reg2 = /learner\/course/g
        var reg3 = /learner\/play/g
        if(reg1.test(location.href)){
            //console.log("【选课界面】")
            return 1
        }else if(reg2.test(location.href)){
            //console.log("【大纲界面】")
            return 2
        }else if(reg3.test(location.href)){
            //console.log("【播放界面】")
            return 3
        }
    }

    function study(){
        //先点未完成
        document.getElementsByClassName("right")[1].children[6].click()
        var t1 = setInterval(function(){
            if(findClass("single-course")){
                //有【未完成】
                clearInterval(t1)
                //设置当前窗口打开
                setAll_parent()
                console.log("【未完成】YES: "+document.getElementsByClassName("single-course")[0].children[0].children[1].children[0].innerText)
                //点击第一个课程
                document.getElementsByClassName("single-course")[0].children[0].click()
            }else if(findClass("default-box")){
                //没有【未完成】
                clearInterval(t1)
                console.log("【未完成】NO")
                //点击【未学习】
                document.getElementsByClassName("right")[1].children[2].click()
                var t2 = setInterval(function(){
                    if(findClass("single-course")){
                        //没有【未完成】-有【未学习】
                        clearInterval(t2)
                        //设置当前窗口打开
                        setAll_parent()
                        console.log("【未学习】YES: "+document.getElementsByClassName("single-course")[0].children[0].children[1].children[0].innerText)
                        //点击第一个课程
                        document.getElementsByClassName("single-course")[0].children[0].click()
                    }else if(findClass("default-box")){
                        //没有【未完成】-也没有【未学习】
                        clearInterval(t2)
                        //alert("已完成全部课程")
                        study()
                    }
                },1000)
            }
        },1000)




    }
    function clickStartStudy(){
        var t2 = setInterval(function(){
            if(findClass("course-button ant-btn ant-btn-default")){
                console.log("【大纲界面】-加载完成")
                clearInterval(t2)
                document.getElementsByClassName("course-button ant-btn ant-btn-default")[0].click()
            }else{
                console.log("【大纲界面】-加载中...")
            }
        },200)
    }
    function setAll_parent(){
        //全改当前窗口打开
        console.log("全改成当前窗口打开")
        var n = document.getElementsByClassName("single-course").length
        for (var i=0;i<n;i++){
            document.getElementsByClassName("single-course")[i].children[0].target="_parent"
        }
    }


    function findClass(className){
        if(document.getElementsByClassName(className).length>0){
            return true
        }else{
            return false
        }
    }
    
})();