Greasy Fork

Greasy Fork is available in English.

河南专技在线辅助

继续教育公需科目专业科目辅助|自动播放下一个视频|自动跳过答题|一次刷完所有已选课程

当前为 2021-07-23 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         河南专技在线辅助
// @namespace    https://github.com/huangdiv/user-scripts/
// @version      3.1
// @description  继续教育公需科目专业科目辅助|自动播放下一个视频|自动跳过答题|一次刷完所有已选课程
// @author       huangdiv
// @icon         data:image/png;base64,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
// @match        *://*.ghlearning.com/*
// @homepageURL  http://greasyfork.icu/scripts/389705-%E6%B2%B3%E5%8D%97%E4%B8%93%E6%8A%80%E5%9C%A8%E7%BA%BF%E8%BE%85%E5%8A%A9
// @supportURL   https://github.com/huangdiv/user-scripts/issues/2
// @run-at       document-end
// ==/UserScript==

(function () {
    //'use strict';

/*
    //++++++++++++++++++
    // 老版的flash播放器功能区:
    // 接口说明:http://dev.polyv.net/2013/videoproduct/v-playerapi/v-playerapi-event/jsbf0001/

    function resume() {
        player.j2s_resumeVideo();
    }

    function pause() {
        player.j2s_pauseVideo();
    }

    function seek(sec) {
        player.j2s_seekVideo(sec);
    }

    function stop() {
        player.j2s_stopVideo();
    }

    function vol(v) {
        player.j2s_setVolume(v);
    }

    function nextVideo(vid) {
        player.changeVid(vid);
    }

    function hide() {
        player.j2s_hideInterAction();
    }

    function fixFuc() {
        window.s2j_onVideoPause = function () {
            console.log('触发暂停(手动触发或弹题触发),已处理,继续播放');
            setTimeout(hide, 2000); //去掉答题弹窗
            setTimeout(resume, 3000);
        }
    }

    function toNext() {
        var text = $('li[id][class=active]')[0].innerText;
        console.log(text);
        setTimeout(function () {
            if ($('button[id][class="btn btn-primary"][style="display:inline-block"]')[0].innerText ==
                "返回课程列表") {
                console.log('课程进度完成,即将返回课程列表');
                history.back(-1);
            }
            if (text != $('li[id][class=active]')[0].innerText) {
                text = $('li[id][class=active]')[0].innerText;
                console.log(text);
            }
            if (text.match(/[0-9]+%/)[0] == "100%") {
                seek(player.j2s_getDuration() - 1);
                resume();
                console.log('视频进度完成,播放下一个视频');
            } else if (playerH5.currentTime > playerH5.duration - 9) {
                seek(0);
                setTimeout(resume, 1000);
                console.log('视频进度未完成,从头重播');
            } else {
                setTimeout(arguments.callee, 5000);
            }
        }, 5000);

    }
    //++++++++++++++++++



    //++++++++++++++++++
    //新版的Html5播放器功能区:

    function resumeH5() {
        if (playerH5.paused) {
            playerH5.play();
        }
    }

    function pauseH5() {
        if (!playerH5.paused) {
            playerH5.pause();
        }
    }

    function seekH5(sec) {
        playerH5.currentTime = sec;
    }

    function volH5(v) {
        playerH5.volume = v;
    }

    function hideH5() {
        if (document.getElementsByClassName("pv-ask-modal-wrap")[0]) {
            document.getElementsByClassName("pv-ask-modal-wrap")[0].style.display = 'none'; //去掉弹题框
        }
    }

    function fixFucH5() {
        window.s2j_onVideoPause = function () {
            console.log('触发暂停,已处理,视频进度会继续增加。');
        }
        window.onQuestionPopUp = function () {
            console.log('弹出题目,已处理。');
            hideH5();
            setTimeout(resumeH5, 1000);
        }
    }

    function toNextH5() {
        var text = $('li[id][class="clearfix active"]')[0].innerText;
        console.log(text);
        setTimeout(function () {
            if ($('button[id][class="btn btn-primary"][style="display:inline-block"]')[0].innerText ==
                "返回课程列表") {
                console.log('课程进度完成,即将返回课程列表');
                history.back(-1);
            }
            if (text != $('li[id][class="clearfix active"]')[0].innerText) {
                text = $('li[id][class="clearfix active"]')[0].innerText;
                console.log(text.match(/[0-9]+%/)[0]);
            }
            if (text.match(/[0-9]+%/)[0] == "100%") {
                seekH5(playerH5.duration - 1);
                setTimeout(resumeH5, 1000);
                console.log('视频进度完成,即将播放下一个视频');
            } else if (playerH5.currentTime > playerH5.duration - 5) {
                seekH5(0);
                setTimeout(resumeH5, 1000);
                console.log('视频进度未完成,从头重播');
            } else {
                setTimeout(arguments.callee, 3000);
            }
        }, 3000);
    }
    //++++++++++++++++++


    //++++++++++++++++++
    //主要功能区:

    function start() {
        console.log('视频播放器初始化完成');
        clearInterval(myTimer);
        //以下是针对老版的flash播放器。
        if (document.getElementsByClassName("polyvFlashObject")[0]) {
            player = document.getElementsByClassName("polyvFlashObject")[0];
            setTimeout(hide, 3000);
            setTimeout(resume, 2000); //自动播放
            console.log('切换视频后自动开始播放...');
            setTimeout(function () {
                vol(0);
            }, 3000); //静音
            setTimeout(fixFuc, 4000); //修改功能
            //setTimeout(pause,5000);//暂停视频播放,进度继续增加。
            setTimeout(toNext, 6000); //检测进度
        }

        //以下是针对新版的html5播放器,不断优化中...
        if (document.getElementsByClassName("pv-video")[0]) {
            playerH5 = document.getElementsByClassName("pv-video")[0];
            fixFucH5();
            resumeH5();
            volH5(0);
            toNextH5();
            setTimeout(hideH5, 3000);
        }
    }
*/
    function enterCourse() {
        if (document.querySelector(".item-box")) {
            for (var i = 0; i < document.querySelectorAll(".item-box").length; i++) {
                if (document.querySelectorAll(".sr-only")[i * 2].innerText != "100.0%") {
                    document.querySelectorAll(".item-box")[i].click();
                    break;
                }
            }
            setTimeout(function () {
                console.log("恭喜您完成已选的所有课程!");
                clearInterval(myTimer);
                alert("恭喜您完成已选的所有课程!\n河南专技在线辅助\n作者:huangdiv\n网址:http://huangdiv.com");
            }, 2000);
        }
        let jindu = document.querySelector("#a span[du-html=sumschedule]");
        if (jindu) {
            if (!document.querySelector("#hnzjfz")){
                document.querySelector("#defaultBtn > span.title").insertAdjacentHTML('afterEnd',"<a href = 'http://greasyfork.icu/zh-CN/scripts/389705-%E6%B2%B3%E5%8D%97%E4%B8%93%E6%8A%80%E5%9C%A8%E7%BA%BF%E8%BE%85%E5%8A%A9' target = '_blank'><span id='hnzjfz' style= 'font-weight: 700;float: left;color: #ff0000;line-height: 30px;'>【河南专技在线辅助3.0】<br>&nbsp正在运行中...</span></a>");
            }
            if (jindu.innerText != "100.00") {
                if (document.querySelector(".pv-video")) {
                    let playerH5 = document.querySelector(".pv-video");
                    playerH5.volume = 0;
                    if (playerH5.paused) {
                        playerH5.play();
                    }
                }
                let dangqian = document.querySelector(".videoLi.active");
                if (dangqian.innerText.match(/单元测试/)){
                    location.reload();
                } else if (dangqian.innerText.match(/[0-9]+%/)[0] == "100%" && document.querySelector(".pt5 [class=progress-bar]")){
                    document.querySelector(".pt5 [class=progress-bar]").parentElement.parentElement.click();
                    setTimeout("location.reload();",2000);
                }
                console.log("【河南专技在线辅助】\n" + dangqian.innerText);
            } else {
                history.back(-1);
            }
        }
    }
    let myTimer = setInterval(enterCourse, 3000);

})();