柏油云课堂自动播放

可自动播放、换下一课、设置静音,但必须维持在前台,且需要在第一个视频位置启动脚本

// ==UserScript==
// @name         柏油云课堂自动播放
// @namespace    https://*.yuketang.cn/
// @version      2024-09-21
// @description  可自动播放、换下一课、设置静音,但必须维持在前台,且需要在第一个视频位置启动脚本
// @author       yyn
// @match        https://*.yuketang.cn/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
window.onload = function(){

	function x(n){
		return document.querySelector(n);
	}

	function h(dom){
		dom.style.display = 'none'
	 }

    function r(dom){
        dom.remove()
    }

	 function vi(){
		x("video").play()
		//x("video").muted = true      //无效
		//x("video").playbackRate = 2  //无效
	 }

    function incrementLastDigitInUrl() {
        var url = window.location.href;
        var match = url.match(/(\d+)$/); // 正则表达式匹配URL末尾的数字
        if (match) {
            var number = parseInt(match[0], 10); // 将匹配到的数字字符串转换为数字
            var newNumber = number + 1; // 加一
            var newUrl = url.slice(0, -match[0].length) + newNumber; // 拼接新的URL
            window.location.href = newUrl; // 更新当前页面的URL
        } else {
            window.location.href = url + '1'; // 如果没有数字,在URL后加`1`
        }
    }


	function autoPlay() {
			let v = x('video');
            //let nextbtn = document.getElementsByClassName("iconfont icon--danjiantouxiangyou color-9b")
            //let nextbtn = document.getElementsByClassName("f14 color6")
            let is_vedio = document.getElementsByClassName("log-detail") // 获取“详情”按钮,只有vedio才有该按钮
            if (is_vedio[0]) {
                let mute_btn = document.getElementsByClassName("xt_video_player_common_icon") //获取静音按钮
                mute_btn[0].click() //静音
			    x('video').addEventListener('pause', function () {

					vi()
					r(x('#playTopic-dialog'))
					r(x('.v-modal'))
                    r(x('.dialog'))

		    	})

			    x('video').addEventListener('ended', function () {
					 setTimeout(() => {
                             incrementLastDigitInUrl()
                             //location.reload()
							 //nextbtn[1].click()
                             //nextbtn[1].style.backgroundColor = "yellow"

					         }, 500)

			     })
            } else {
            incrementLastDigitInUrl()}
	}

    	 setTimeout(() => {
             //let nextbtn = document.getElementsByClassName("iconfont icon--danjiantouxiangyou color-9b")
             //console.log(nextbtn[0])
            // console.log(nextbtn[0].click())
            // nextbtn[0].click()

			 autoPlay()
			 vi()
             //r(x('.dialog'))
	 }, 3000);


	 setInterval(() => {
			let t = x("#playTopic-dialog");

			if(t != null){
				if(t.style.display != 'none'){
					r(t);
					r(x(".v-modal"))
					setTimeout(() => {
						vi()
					}, 100);
				}
			}

	 }, 500);



	}

})();