柏油云课堂自动播放

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

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==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);



	}

})();