消防网络学院考试辅助外挂(第五、六期)

第五、六期

// ==UserScript==
// @name         消防网络学院考试辅助外挂(第五、六期)
// @namespace    https://cfr.sset.org.cn/
// @version      0.9
// @description  第五、六期
// @author       天王老子
// @match        https://cfr.sset.org.cn/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=sset.org.cn
// @grant        none
// @require      https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js
// @license      nadt1988
// ==/UserScript==
/*
通过定期刷新,来检查视频是否播放完毕
*/
var db;
var db_data;
$(document).ready(function(){
    var study_running=0;
    var exam_url="https://cfr.sset.org.cn/app-yjgb/wechat/#/activity/exam/answer-paper/";
    var exam_answers=[
        {
            id:"b31524bd-ceb1-4291-8ba9-911fdd01457d",
            single:"BBCCCADA",
            multiple:"BCD@CD@ACD",
            choice:"AAA"
        },
        {
            id:"5817870b-741e-4225-9a16-cbeaa24f4fff",
            single:"CCBCADAB",
            multiple:"ABC@ABCD@ACD",
            choice:"AAA"
        },
        {
            id:"90724aec-49a4-4d75-beab-315ba923a254",
            single:"CBDCBBAA",
            multiple:"ABCD@ABC@ABCD",
            choice:"AAB"
        },
        {
            id:"d1bf4bdb-a9c1-4c68-8637-1770b8d57e86",//文物古建筑火灾防治扑救重点难点及对策分析
            single:"ABCACDCD",
            multiple:"ABCD@ABCD@ABCD",
            choice:"AAB"
        },
        {
            id:"10976a64-2986-48c0-baa4-eee234a0a07b",//灾害事故现场侦察的组织与实施
            single:"BAAADACA",
            multiple:"ABD@ABC@ABCD",
            choice:"AAA"
        },
        {
            id:"3db8cf4e-7e53-4b2b-83f5-f6b10a3e0432",//强化联合救援理念、完善救援协调机制,提升重特大森林草原火灾
            single:"CABBAAAB",
            multiple:"AB@ABC@ACD",
            choice:"AAA"
        },//666
        {
            id:"7d8ffc54-579c-4e70-8cd4-1b29eec29ae9",
            single:"BDACBBBB",
            multiple:"ABCD@AB@ABCD",
            choice:"AAA"
        },
        {
            id:"cee600da-e4b5-4416-8a35-a72efbaf93bc",
            single:"CCAABACA",
            multiple:"AB@ABC@ABCD",
            choice:"AAA"
        },
        {
            id:"f4928bbb-3454-4b66-832a-89b457c8b120",
            single:"DDBDABBA",
            multiple:"ABCD@ABC@BC",
            choice:"ABB"
        },
        {
            id:"684a7c31-1a81-4e48-b126-817ff5dbd767",
            single:"BBAAABCC",
            multiple:"ABCD@ABD@ACD",
            choice:"AAA"
        },
        {
            id:"c5333a47-1411-48cc-9469-0c48910256a7",
            single:"CDAAACBA",
            multiple:"ABCD@ABCD@ABD",
            choice:"AAB"
        },
        {
            id:"302ce388-b650-4afd-a571-4e89b1cf0ca9",
            single:"CAABDBAC",
            multiple:"ABC@ABCD@ABCD",
            choice:"AAA"
        }
       
    ];
    //在顶部添加一个div,用户引导用户
    var welcome_div=$("<div id='welcome_div' style='width:120px;;height:30px;background-color:green;position:absolute;top:40px;left:5px;z-index:9999;line-height:30px;color:white;font-size:10pt;border-radius:10px;text-align:center;'><a href='https://cfr.sset.org.cn/app-yjgb/wechat/#/home/course?homeConfigId=0c179aa1-5a39-4dae-afea-aebb702ae196&name=在线自学&comeFrom=home&icon=false' style='color:yellow'>考试外挂入口</a></div>");
    var checkdiv=$("<div id='getAnswer' style='width:120px;;height:30px;background-color:green;position:absolute;top:40px;left:140px;z-index:9999;line-height:30px;color:white;font-size:10pt;border-radius:10px;text-align:center;'><a href='javascript:void(0)' style='color:yellow'>获取答案</a></div>");
    $("body").append(checkdiv);
    $("body").append(welcome_div);
    $("#getAnswer").click(function(){
        var url=window.location.href;
        if(url.indexOf("answer-paper")!=-1){
            autoExam(exam_answers,exam_url);
        }else{
            alert("请选择进入考试页面");
        }
    });
});
//indexedDB 数据库操作
function getDB(){
    var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
    if(!indexedDB) {
        console.log("你的浏览器不支持IndexedDB");
        return;
    }
    var requestDB = indexedDB.open('localforage', 2);
    requestDB.onsuccess = function (e) {
        db = e.target.result;
        console.log('数据库打开成功');
        getData();
    };
    requestDB.onerror = function (event) {
        console.log('数据库打开报错');
    };
}

function getData(){
    var transaction = db.transaction(["keyvaluepairs"]) // 事务
    var objectStore = transaction.objectStore("keyvaluepairs") // 仓库对象
    var request = objectStore.get("answer_records");
    request.onerror = function(event) {
        console.log('事务失败')
    }
    request.onsuccess = function(event){
        db_data=request.result;
        updateDB();
    }
}

function updateDB(){
    var records=db_data.records;
    for(var i=0;i<records.length;i++){

    }
    //BBDDABBC
    //ABCD@BCD@ABCD
    var id="answer_records";
    var _data={
        examRecordId:db_data.examRecordId,
        lastCacheTime:db_data.lastCacheTime,
        records:records
    };
    var transaction = db.transaction(["keyvaluepairs"],'readwrite') // 事务
    var objectStore = transaction.objectStore("keyvaluepairs") // 仓库对象
    var request = objectStore.get("answer_records");
    request.onsuccess = function() {
        const objectStoreUpdate = objectStore.put(_data,id)
        objectStoreUpdate.onsuccess = function (e) {
            console.log('update success')
        }
    }
    request.onerror = function() {
        console.log('数据更新失败')
    }
}

function autoExam(exam_answers,exam_url){
    var url=window.location.href;
    var indexs=0;
    for(var i=0;i<exam_answers.length;i++){
        console.log(exam_url+exam_answers[i].id);
        if(url==exam_url+exam_answers[i].id){
            var single_answer=exam_answers[i].single;
            var _multiple_answer=exam_answers[i].multiple;
            var multiple_answer=_multiple_answer.split("@");
            var chioce_answer=exam_answers[i].choice;
            var exambody=$(".type-body");
            //单选
            for(var s=0;s<single_answer.length;s++){
                var _answer=convertWordToInt(single_answer[s]);
                $("#rad"+s+_answer).parent().css("color","red");
                $("#rad"+s+_answer).parent().append("[正确答案]");
                $("#rad"+s+_answer).click();
            }
            //多选
            for(s=0;s<multiple_answer.length;s++){
                var temp=multiple_answer[s];
                for(var t=0;t<temp.length;t++){
                    _answer=convertWordToInt(temp[t]);
                    $("#che"+s+_answer).parent().css("color","red");
                    $("#che"+s+_answer).parent().append("[正确答案]");
                }
            }
            //判断
            for(s=0;s<chioce_answer.length;s++){
                if(chioce_answer[s]=="A"){
                    temp="01";
                }else{
                    temp="02";
                }
                $("#opi"+s+temp).parent().css("color","red");
                $("#opi"+s+temp).parent().append("[正确答案]");
                $("#opi"+s+temp).click();
            }
            break;
        }
        indexs++;
    }
    if(indexs==exam_answers.length){
        alert("暂未找到考试答案,请刷新或者稍后重试!!!");
    }
}

function convertWordToInt(code){
    switch(code){
        case "A":return 0;
        case "B":return 1;
        case "C":return 2;
        case "D":return 3;
    }
}