Greasy Fork

Greasy Fork is available in English.

山东省教师教育网-2023中小学远程研修

山东省教师教育网2023中小学远程研修,打开研修页面后自动播放。

当前为 2023-08-18 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         山东省教师教育网-2023中小学远程研修
// @namespace    http://tampermonkey.net/
// @version      0.6
// @author       alkaidccc
// @description  山东省教师教育网2023中小学远程研修,打开研修页面后自动播放。
// @match        *://www.qlteacher.com/
// @match        *://yanxiu.qlteacher.com/project/xx2023/*
// @match        *://yanxiu.qlteacher.com/project/cz2023/*
// @match        *://player.qlteacher.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=qlteacher.com
// @license      alkaidccc
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function open(){
        window.location.reload();
    }
    function handVisiblilityChange(){
        if(!document.hidden){
            window.location.reload();
        }
    }
    document.addEventListener("visibilityChange", handVisiblilityChange);
    function mainpage(){
		if(document.URL.search('yanxiu.qlteacher.com/project/cz2023/learning/learning')>1){
            var courseList = document.getElementsByClassName('btn btn-sm btn-info');
            if(!document.hidden){
                setTimeout(console.log("mainpage waiting..."), 5005);
                for(var i=0; i<courseList.length; i++){
                    if(courseList[i].innerText == "开始学习" || courseList[i].innerText == "继续学习"){
                        courseList[i].click();
                        break;
                    }
                }
            }
			setTimeout(open, 1000)
		}
    }
    setInterval(mainpage, 5000)
    function sele(){
        // setTimeout(console.log("sele waiting..."), 2000);
        var patt = /^https:\/\/player.qlteacher.com\/learning\/.*=.*/;
        if(document.URL.match(patt) == document.URL){
			if(document.getElementsByClassName('ant-btn flex-0 ml-auto radius-4 ft-18 px-lg py0 ant-btn-primary ant-btn-lg ng-star-inserted')[0].innerText == "已完成学习"){
				window.close();
			}
            else{
                document.getElementsByClassName('ant-btn flex-0 ml-auto radius-4 ft-18 px-lg py0 ant-btn-primary ant-btn-lg ng-star-inserted')[0].click()
            }
		}
    }
    setInterval(sele, 5000)
    function play(){
        // setTimeout(console.log("play waiting..."), 1000);
        var patt = /^https:\/\/player.qlteacher.com\/learning\/[^=]*/;
        if(document.URL.match(patt) == document.URL){

            // 纯测试题的课程
            if(document.getElementsByClassName("segmented-text-ellipsis mr-16").length > 0 &&
               document.getElementsByClassName("segmented-text-ellipsis mr-16")[0].innerText == "测试题"){

                // 拿到所有题目,并为每个题选择第一个选项(这里的题目不要求全部做对才算完成)
                var tests = document.getElementsByClassName("mb-16 ng-star-inserted");
                for(var t=0; t<tests.length; t++){
                    tests[t].querySelectorAll("label")[0].click();
                }

                // 提交答案
                var buttons = document.querySelectorAll("button");
                for(var k=0; k<buttons.length; k++){
                    if(buttons[k].getElementsByClassName("ng-star-inserted").length > 0 &&
                       buttons[k].getElementsByClassName("ng-star-inserted")[0].innerText == "提交"){
                        buttons[k].click();
                        break;
                    }
                }

                // 确定提交
                buttons = document.querySelectorAll("button");
                for(k=0; k<buttons.length; k++){
                    if(buttons[k].getElementsByClassName("ng-star-inserted").length > 0 &&
                       buttons[k].getElementsByClassName("ng-star-inserted")[0].innerText == "确定"){
                        buttons[k].click();
                        break;
                    }
                }

                // 如果状态为已完成,则关闭窗口
                if(document.getElementsByClassName('count-down ng-star-inserted')[0].innerText=="已完成"){
                    window.close();
                }
            }

            // 弹出的多选题窗口,每次随机选择
            if(document.getElementsByClassName("ant-checkbox").length > 0){
                document.getElementsByTagName('video')[0].paused==true;
                var items1 = document.getElementsByClassName("ant-checkbox");
                var cnt = 0;
                for(var i=0; i<items1.length; i++){
                    var randomZeroOrOne = Math.floor(Math.random() * 2);
                    if(randomZeroOrOne == 1) {
                        cnt++;
                        items1[i].click();
                    }
                }
                if(cnt > 0){
                    document.getElementsByClassName("ant-btn radius-4 px-lg py0 ant-btn-primary")[0].click();
                }
            }

            // 弹出的单选题窗口,每次随机选择一个选项
            else if(document.getElementsByClassName("ant-radio-input").length > 0){
                document.getElementsByTagName('video')[0].paused==true;
                var options = document.getElementsByClassName("ant-radio-input");
                var randomIndex = Math.floor(Math.random() * options.length);
                options[randomIndex].click();
                document.getElementsByClassName("ant-btn radius-4 px-lg py0 ant-btn-primary")[0].click();
            }

            // 播放视频
            else if(document.getElementsByTagName('video').length > 0 &&
               document.getElementsByTagName('video')[0].paused==true){
                document.getElementsByTagName('video')[0].muted = true;
                document.getElementsByTagName('video')[0].play();
                //document.querySelector('video').playbackRate = 16;//设置播放速度
            }

            // 如果完成,则退出
            if(document.getElementsByClassName('count-down ng-star-inserted')[0].innerText=="已完成"){
                window.close();
			}
		}
    }
    setInterval(play, 1000)
})();