Greasy Fork

来自缓存

Greasy Fork is available in English.

LT网上学院刷课

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

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

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