蓝墨云班课一键起飞

try to take over the world!

// ==UserScript==
// @name         蓝墨云班课一键起飞
// @namespace    http://blog.dsb.ink/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @grant        none
// @match        https://www.mosoteach.cn/web/index.php?c=res*
// ==/UserScript==

(function() {
    const div = document.getElementsByClassName("hide-div");
    const box = document.querySelectorAll(".res-row-box .res-row-title");

    const 提示 = document.createElement("div")
    提示.innerHTML = "点击下方按钮开始芜湖"
    提示.style = `	line-height: 50px;
					text-align: center;
					position: fixed;
					top: 0px;
					left: 50%;
					background: rgb(9, 192, 218);
					color: rgb(255, 255, 255);
					font-size: 16px;
					display: inline-block;
					padding: 0 10px;
					transform: translateX(-50%);`
    document.body.appendChild(提示)

    function 休个息(min, max) {
        min *= 1000;
        max *= 1000;
        const time = !min ? max : Math.floor(Math.random() * (max - min + 1)) + min;
        return new Promise((resolve) => setTimeout(resolve, time));
    }

    function 开始升天(i){
        const block = div[i].children;
        const stop = async num => {
			if(num === block.length - 1){
				await 休个息(10,20)
				提示.innerText = "芜湖完毕"
			}
        }
        for(let j = 0; j < block.length; j++){
            const fileId = block[j].getAttribute("data-value")
            $.ajax({
                type:"POST",
                url:"https://www.mosoteach.cn/web/index.php?c=res&m=request_url_for_json",
                data:{
                    'file_id' : fileId,
                    'type': 'VIEW',
                    'clazz_course_id': clazzcourseId
                },
                dataType:"json",
                success: function(msg){
                    const src = msg.src
                    if(src.indexOf("m3u8") > -1){
                        fetch(src)
                            .then(data=>data.text())
                            .then(text=>{
                            let time = 0
                            for(i of text.split("\n")){
                                if(i.indexOf("#EXTINF:") > -1){
                                    i = parseFloat(i.replace("#EXTINF:",""))
                                    time += i
                                }
                            }
                            time = Math.ceil(time)
                            $.ajax({
                                type: 'post',
                                dataType: 'json',
                                url: 'https://www.mosoteach.cn/web/index.php?c=res&m=save_watch_to',
                                data: {
                                    clazz_course_id: clazzcourseId,
                                    res_id: fileId,
                                    watch_to: time,
                                    duration: time,
                                    current_watch_to: time
                                },
                                success: function(){
									stop(j)
                                }
                            });
                        }
                                 )
                    }else{
                        fetch(block[j].getAttribute("data-href")).then(res=>{
							stop(j)
                        })
                    }
                }
            })
        }
    }


    for(let i = 0; i < box.length; i++){
        const span = document.createElement("span")
        span.innerHTML = "本章起飞"
        span.style = `	width: 100px;
						height: 100%;
						display: inline-block;
						background: #09C0DA;
						text-align: center;
						float: right;
						margin-right: 20px;
						color: #fff`
        box[i].appendChild(span)
        span.addEventListener("click", ()=>{
            window.event ? window.event.cancelBubble = true : e.stopPropagation();
            提示.innerText = "开始芜湖......"
            开始升天(i)
        })
    }
})();