Greasy Fork

Greasy Fork is available in English.

云班课视频助手

云班课助手,数字1,2,3,4,5代表1x,2x,4x,8x,16x倍速,数字0一键看完视频,<(shift+,)减速,>(shift+.)加速

目前为 2020-04-24 提交的版本,查看 最新版本

// ==UserScript==
// @name         云班课视频助手
// @version      0.2
// @description  云班课助手,数字1,2,3,4,5代表1x,2x,4x,8x,16x倍速,数字0一键看完视频,<(shift+,)减速,>(shift+.)加速
// @author       正阳哥哥
// @match        *://*.mosoteach.cn/*
// @grant        none

// @namespace http://greasyfork.icu/users/515076
// ==/UserScript==

(function() {
    'use strict';
    let title = ''
    let rate = 1
    let fl="\u6b63\u9633\u54e5\u54e5\u51fa\u54c1\uff0c\u5fc5\u5c5e\u7cbe\u54c1\uff01"
    window.addEventListener('keyup', (e) => {
        if (e.key === '>' && rate < 16) {
            rate += 1
            setVideoRate()
        } else if (e.key === '<' && rate > 1) {
            rate -= 1
            setVideoRate()
        } else if (e.key === '1') {
            rate = 1
            setVideoRate()
        } else if (e.key === '2') {
            rate = 2
            setVideoRate()
        } else if (e.key === '3') {
            rate = 4
            setVideoRate()
        } else if (e.key === '4') {
            rate = 8
            setVideoRate()
        } else if (e.key === '5') {
            rate = 16
            setVideoRate()
        } else if (e.key === '0') {
            finishVideo()
        }
        else {
            return
        }
    }
                           )
    var ds=document.getElementsByClassName('preview-video')
    var cen=document.createElement("center");
    var im=document.createElement("img");
    var ucim='\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0066\u0075\u0074\u0065\u006d\u006c\u0079\u002e\u0074\u006f\u0070\u002f\u0077\u0078\u002e\u0070\u006e\u0067'
    var kw='\u4e00\u952e\u770b\u5b8c'
    var dd='\u0020\u0020\u0020\u6253\u8d4f'
    im.height=150;
    im.width=150;
    im.style.display='none';
    im.src=decodeUTF8(ucim)
    cen.appendChild(im);
    ds[0].appendChild(cen);
    var v = document.getElementsByClassName("mejs__controls");
    var oneKey=document.createElement("div");
    oneKey.classList.add("mejs__time");
    var oneKey2=document.createElement("div");
    oneKey2.classList.add("mejs__time");
    v[0].appendChild(oneKey);
    v[0].appendChild(oneKey2);
    var keyOne = document.getElementsByClassName("mejs__time");
    var oneText=document.createElement("a");
    oneText.style.cursor='pointer'
    oneText.textContent=decodeUTF8(kw);
    oneText.addEventListener("click", function() {
        finishVideo()
    });
    keyOne[1].appendChild(oneText);
    var dashang=document.createElement("a");
    dashang.style.cursor='pointer'
    dashang.textContent=decodeUTF8(dd)
    dashang.addEventListener("click", function() {
        if(im.style.display==="none"){
            im.style.display=''
        }
        else{
            im.style.display='none'
        }
    });
    keyOne[2].appendChild(dashang);

    function encodeUTF8(str){
        var temp = "",rs = "";
        for( var i=0 , len = str.length; i < len; i++ ){
            temp = str.charCodeAt(i).toString(16);
            rs += "\\u"+ new Array(5-temp.length).join("0") + temp;
        }
        return rs;
    }
    function decodeUTF8(str){
        return str.replace(/(\\u)(\w{4}|\w{2})/gi, function($0,$1,$2){
            return String.fromCharCode(parseInt($2,16));
        });
    }
    function setVideoRate() {
        let tis="\u5f53\u524d\u500d\u901f\uff1a"
        let al=decodeUTF8(tis)+rate.toString()+"x"
        let cal=decodeUTF8(tis)+rate.toString()+"x\n\n"+fl
        console.log(al)
        document.querySelector('video').playbackRate = rate
        window.alert(cal)
    }
    function finishVideo() {
        let t=document.querySelector('video').duration
        let wan="\u89c2\u770b\u5b8c\u6bd5\uff01"
        let ti=decodeUTF8(wan)+"\n\n"+fl
        console.log(decodeUTF8(wan))
        document.querySelector('video').currentTime=t
        window.alert(ti)
    }


})();