Greasy Fork

来自缓存

Greasy Fork is available in English.

网上学院-学时助手

学时刷不完? 使用Edge/Firefox 安装TamperMonkey扩展,使用本插件即可。本插件是按专区刷课的,需要刷其他专区的把shuakeURL 参数改成要刷的专区网址。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         网上学院-学时助手
// @namespace    none
// @version      2.3
// @description  学时刷不完?  使用Edge/Firefox 安装TamperMonkey扩展,使用本插件即可。本插件是按专区刷课的,需要刷其他专区的把shuakeURL 参数改成要刷的专区网址。
// @author       WenYichong
// @license      MIT
// @match        http://wsxy.chinaunicom.cn/learner/*

// @grant        none
// @run-at       document-end
// @require      https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js
// ==/UserScript==

//替换成要刷的专区网址
//let shuakeURL = "http://wsxy.chinaunicom.cn/learner/subject/49659088/detail"; //政企专区
//let shuakeURL = "http://wsxy.chinaunicom.cn/learner/subject/49668818/detail"; //"数字菁英”培训专区
//let shuakeURL = "http://wsxy.chinaunicom.cn/learner/subject/49677863/detail"; //联通云
let shuakeURL = "http://wsxy.chinaunicom.cn/learner/subject/49685873/detail"; //数字政府



/**
 * 课程列表 选择课程
 */
function seleCourse(type) {

    if(type === '未学习'){
        document.getElementsByClassName('right')[1].getElementsByTagName('span')[1].click()//未学习
    }else if(type ==='未完成'){
        document.getElementsByClassName('right')[1].getElementsByTagName('span')[3].click()//未完成
    }

    setTimeout(() => {
        let nums = document.getElementsByClassName('single-course').length
        if(nums === 0){
            seleCourse('未完成')
            return
        }
        let selNum = 0
        if(nums > 1){
            selNum = parseInt(Math.random()*(nums-0+1)+0,10) //随机选择列表课程
        }
        document.getElementsByClassName('single-course')[selNum].getElementsByTagName('a')[0].click() //选择第一个课程进入
    }, 2000)

}

let jindu=0
/*
详情页面操作
*/
function detailOp() {
    setTimeout(() => {
        let jd = document.getElementsByClassName('ant-progress-text')[0].textContent //进度
        jindu = parseInt(jd.replace('%',''))
        //document.getElementsByClassName('course-button')[0].click() //开始学习
        document.getElementsByClassName('course-button ant-btn ant-btn-default')[0].click()//开始学习

    }, 3000)


    setTimeout(() => {

        palylOp();

    }, 6000)
};

/*
播放页面操作
*/
function palylOp() {
    var items = document.getElementsByClassName('title')
    var num = items.length;
    console.log('视频数', num);

    let vdoc = document.getElementsByTagName('iframe')[0].contentDocument //播放器iframe
    let vP = vdoc.getElementsByTagName('video')[0] //播放器
    vP.muted = true //静音
    vP.play() //播放
    vP.currentTime = vP.duration * (jindu/100) //设置视频进度

    let nowTime = 0
    setInterval(() => {
        //vP.playbackRate = 1 //倍速好像无用
        let nowItem = document.getElementsByClassName('course-single clearfix active-s')[0]
        if (nowItem.getElementsByClassName('title')[0].textContent === items[num - 1].textContent) {
            //播放最后一个视频;
            if (vP.ended || vP.duration === vP.currentTime) {
                window.open(shuakeURL, '_self');
            }
        }

        //时间刷完,或者未走动
        if (vP.currentTime === nowTime) {
            window.open(shuakeURL, '_self');
        }
        nowTime = vP.currentTime //记录当前播放时间,如果10秒钟之后没有改变,则视频播放完或者卡死
        console.log('进度:', nowItem.getElementsByClassName('title')[0].textContent, '-->', vP.currentTime / 60, '/', vP.duration)
        document.getElementsByClassName('save-logout-box ant-btn ant-btn-primary')[0].click()//保存学习记录

    }, 20000);


}

(function () {
    window.onload = function () {

        var currentURL = window.location.href; // 获取当前网页地址

        console.log('当前网页', currentURL);
        console.log(new Date())
        if (currentURL.endsWith('learner/home')) {
            console.log('首页');

        }
        else if (currentURL.endsWith('/detail')) {
            console.log('列表');
            setTimeout(() => {
                seleCourse('未学习'); // 选择课程
               // seleCourse('未完成'); // 选择课程


            }, 1000)

        }
        else if (currentURL.endsWith('learner/subject')) {
            console.log('专题栏');

            window.open(shuakeURL, '_self'); //培训专区

        }
        else if (currentURL.indexOf('course/detail') > 0) {
            console.log('详情');

            detailOp();
        }
        else if (currentURL.endsWith('play/course')) {
            console.log('播放');
            palylOp();
        }

    };
    window.setTimeout(() => {


    }, 1500);


})();