破解立知

破解立知课堂工具(由两位来自上海某中学的有痔青年共同编制)

当前为 2022-04-13 提交的版本,查看 最新版本

// ==UserScript==
// @name         破解立知
// @namespace    https://ez118.github.io/
// @version      4.0
// @description  破解立知课堂工具(由两位来自上海某中学的有痔青年共同编制)
// @author       ZZY_WISU
// @match        https://*.imlizhi.com/slive/pc/*
// @match        https://easilive.seewo.com/*
// @license      GNU GPLv3
// @icon         https://edu.seewo.com/res/head/1/default.png
// @run-at document-end
// @grant        GM_xmlhttpRequest
// @grant        GM_download
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==


/*   自定义部分   */

var verlist = [69, 50 ,40, 36, 29, 25, 19, 14, 11, 8, 4, 1];
//破解列表

var api = "https://s2.imlizhi.com/slive/pc/enow/thumbnail/api/v1/courseware";
//对接官方接口

var ReaderUrl = "https://easilive.seewo.com/ZZY_WISU/";
//课件浏览器的链接

var ScriptUrl = "https://gf.qytechs.cn/scripts/441933-%E7%A0%B4%E8%A7%A3%E7%AB%8B%E7%9F%A5/code/%E7%A0%B4%E8%A7%A3%E7%AB%8B%E7%9F%A5.user.js";
//用于查检更新的链接

var MaxPageNum = 120;
//用于储存最大课件页面数量

/*以上为自定义部分*/

/* 以下为菜单设定 */
function OpenExplorer() {
    let cid = document.getElementsByClassName("enow__stage-wrap")[0].id.replace("stage-", "");
    let title = document.getElementsByTagName("title")[0].innerText;
    window.open(ReaderUrl + "@" + cid + "@0@" + encodeURI(title) + "@0");
}

function UnlockLimit() {
    try{
        var parent=document.getElementById('enow__non-interacte-hover');
        parent.setAttribute("style", "display:none;");
    }catch(e){}
    try{
        let toolbx = document.getElementsByClassName("enow__teachingtool-hide")[0];
        toolbx.setAttribute("class", "enow__teachingtool");
    }catch(e){}
}

function RemoveCover() {
    try{
       var parent= document.getElementsByClassName('live-poster live-pc-poster')[0];
       parent.setAttribute("style", "visibility: hidden;");
    }catch(e){}
}

function RemoveHand(){
    try{
       var parent= document.getElementsByClassName('live-raise-hand live-pc-raise-hand live-student-raise-hand')[0];
       parent.setAttribute("style", "visibility: hidden;");
    }catch(e){}
}

function BadGuyMode(){
    var test_value = confirm("请选择是否打开坏小孩模式(点击确定表示打开,点击取消表示关闭)");
    alert("打开状态:" + test_value);
    if(test_value == true) { GM_setValue('BadGuyMode', {'state':'true'}); }
    else { GM_setValue('BadGuyMode', {'state':'false'}); }
}

function CheckUpdate(){
    location.href = ScriptUrl;
}

function MsgWordNumBreak(){
    try{
       let iptbx = document.getElementsByClassName("live-chat-send-msg-txt")[0];
       iptbx.removeAttribute("maxlength");
    }catch(e){}
}

let menu1 = GM_registerMenuCommand('手动打开课件浏览器', function () { OpenExplorer(); }, 'O');
let menu2 = GM_registerMenuCommand('解锁学生操作课件限制', function () { UnlockLimit(); }, 'U');
let menu3 = GM_registerMenuCommand('解除讨论区字符限制', function () { MsgWordNumBreak(); }, 'M');
let menu4 = GM_registerMenuCommand('移除课前等待遮罩', function () { RemoveCover(); }, 'R');
let menu5 = GM_registerMenuCommand('移除举手按钮', function () { RemoveHand(); }, 'H');
let menu6 = GM_registerMenuCommand('坏小孩模式', function () { BadGuyMode(); }, 'B');
let menu7 = GM_registerMenuCommand('查检更新', function () { CheckUpdate(); }, 'C');
/* 以上为菜单设定 */


function runAsync(url,send_type,data_ry) {
    var p = new Promise((resolve, reject)=> {
        GM_xmlhttpRequest({
            method: send_type,
            url: url,
            headers: {"Content-Type": "application/x-www-form-urlencoded;charset=utf-8"},
            data:data_ry,
            onload: function(response){resolve(response.responseText);},
            onerror: function(response){reject("请求失败");}
        });
    })
    return p;
}

(function() {
    'use strict';

    if(window.location.href.split("@")[0] == ReaderUrl){
        var data = window.location.href.split("@")[1];//课程ID
        var ver = window.location.href.split("@")[2];//版本号在破解字典中的位置
        var title = window.location.href.split("@")[3];//教师标题
        var adds = window.location.href.split("@")[4];//版本微调
        if(adds == undefined) adds = "0";
        adds = new Number(adds);
        var dochtml = "";
        var obj = {};
        var PageCnt = 0;

        runAsync(api + "?coursewareId=" + data + "&version=" + (verlist[ver] + adds) + "&resolution=960_640","GET","content=erwer").then((result)=> {return result;}).then(function(result){
            var filelist = eval("("+result+")");
            if(filelist.message != "error"){
                for(var i = 0; i <= MaxPageNum; i ++){
                    try{
                        obj[filelist.data[i].pageIndex] = filelist.data[i].downloadUrl;
                    }catch{}
                }
                for(i = 0; i <= MaxPageNum; i ++){
                    if(obj[i] != undefined) {dochtml += "<img src='" + obj[i] + "' title='第" + (i + 1) + "页'><br>"; PageCnt += 1;}
                }
                var script = '<script></script>';
                var header = "<title>课件浏览器 | " + decodeURI(title) +"</title><style>body{background-color: rgb(50, 54, 57);user-select: none;margin:0px;} .msg{font-size:14px; z-index:5; border-radius:15px; padding:5px; padding-left:13px; padding-right:13px; background-color: rgb(51, 51, 51); position:fixed; top:15px; left:15px; color:#FFF;border:1px solid #CCC;} img{width:60%;min-width:450px;margin-top:5px;border-radius:4px;} a{color:#FFF; text-decoration:none;}</style>";
                document.write(header + script + '<body><div class="msg"><a href="' + ReaderUrl + '@' + data + '@' + ver + '@' + title + '@' + (adds - 1) + '">◀</a>&nbsp;共' + PageCnt + '页 (版本: ' + (verlist[ver] + adds) + ')&nbsp;<a href="' + ReaderUrl + '@' + data + '@' + ver + '@' + title + '@' + (adds + 1) + '">▶</a></div><center>' + dochtml + '</center></body>');
            } else {
                ver = new Number(ver) + 1;
                if(verlist[ver] != undefined) location.href=ReaderUrl + "@" + data + "@" + ver + "@" + title + "@0";
                else document.write("<title>出现问题</title><h2>抱歉,无法为您获取课件</h2><hr><b>你可以尝试更新该脚本以取得最新的破解字典。</b>");
            }
        });
    } else if(window.location.href.split("/")[3] == "preview" || window.location.href.split("/")[3] == "course"){
        var div=document.createElement("a");
        div.innerText="右键空白处浏览课件";
        div.setAttribute("style", "z-index:9;position:absolute;right:60px;top:120px;");
        document.body.appendChild(div);
        document.body.insertBefore(div, document.body.firstElementChild);
    }
    else {
        if(GM_getValue('BadGuyMode').state == "true"){
            setTimeout(function() {
                UnlockLimit();
                RemoveCover();
                RemoveHand();
                MsgWordNumBreak();
            }, 5000);
        }
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址