Skip to content

Instantly share code, notes, and snippets.

@cygmris
Last active February 27, 2019 14:43
Show Gist options
  • Select an option

  • Save cygmris/29ca84b9bd719b47d28b2334dda9cd34 to your computer and use it in GitHub Desktop.

Select an option

Save cygmris/29ca84b9bd719b47d28b2334dda9cd34 to your computer and use it in GitHub Desktop.
monicar.js
window.ajaxAddXxgj = function () {
//首先判断如果原来有定时器,就先停止,否则计时会加速
if (myRecordTimeId) {
clearInterval(myRecordTimeId);
}
//开启一个定时器,每隔1秒数字加1,用来记录视频播放的秒数
myRecordTime = 0; //每次要重置
myRecordTimeId = setInterval(function () {
myRecordTime = parseInt(myRecordTime) + 1;
}, 1000);
$("#sptm").hide();
$(".vm_content").css("z-index", "1");
$.ajax({
url: "/StudentManage/AddXxgj",
type: "get",
timeout: 5000, //超时时间设置,单位毫秒
data: { lmid: lmid, spid: spid, kmid: xxlx },
dataType: "json",
success: function (data) {
if (data) {
ClearCheck();//清除视频试题
if (data.msg == 0) {
//if (confirm("传送学时失败!是否继续传送?")) {
// ajaxAddXxgj();
//}
}else if (data.msg == -1) {
//学时学满4学时了
alert("您今日已经学满4个学时,不再记录学时!");
myClearTimer();
} else if (data.msg == -2) {
alert("登录超时,可能原因:1、还没有激活学习卡 2、用户在其他地方登录 3、同一台电脑登录了多个账号。请重新登录!");
location.href = '/Account/LogOnStu';
}
if (data.msg == 1) {
;
}
if (data.Rule == 1) {
rule = 1;
} else if (data.Rule == 2) {
rule = 2;
ve = undefined;
if (data.exam) {
if(window.stillHave>=0) monicarPlayNext(window.stillHave)
KSPDT(data.exam);
}
$("#veimg").removeAttr("src");
$("#veimg").attr("src", "/StudentManage/GetVideoExamImage?date" + new Date());
} else if (data.Rule == 3) {
rule = 3;
if (data.exam) {
if(window.stillHave>=0) monicarPlayNext(window.stillHave)
KSPDT(data.exam);
}
$("#veimg").removeAttr("src");
$("#veimg").attr("src", "/StudentManage/GetVideoExamImage?date" + new Date());
// ve = data.exam;
ve = undefined;
}
//else {
// myVideoStop();
//}
//else if (data.msg == "") {
////暂停
// myVideoStop();
// //alert("您的登录已超时,请重新登录!");
// //window.location.href = "/Account/LogOnStu";
//}
}
},
error: function (data) {
//if (confirm("传送学时失败!是否继续传送?")) {
// ajaxAddXxgj();
//}
},
complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
if (status == 'timeout') {//超时,status还有success,error等值的情况
ajaxAddXxgj.abort();
if (confirm("传送学时超时,是否继续传送?")) {
ajaxAddXxgj();
}
}
}
});
}
window.ajaxEditXxgj= function() {
//停止计时
if (myRecordTimeId) {
clearInterval(myRecordTimeId);
}
//获取视频播放的秒数
var myPlayTime = myRecordTime;
//获取该视频的实际时长
// var realVideoTime = parseInt(CKobject.getObjectById('ckplayer_a1').ckplayer_getstatus()["totaltime"]);//6.3版本
var realVideoTime = parseInt(CKobject.getObjectById('ckplayer_a1').getStatus()["totalTime"]); //6.5版本
//alert(myRecordTime + "==" + realVideoTime);
//var TokenValue = $("input[name=__RequestVerificationToken]").val();
$.ajax({
url: "/StudentManage/EditXxgj",
type: "get",
timeout: 5000, //超时时间设置,单位毫秒
data: {
//__RequestVerificationToken: TokenValue,
lmid: lmid,
spid: spid,
myFlag: myFlag,
realVideoTime: realVideoTime,
myRecordTime: myRecordTime
},
dataType: "json",
error: function (data) {
//if (confirm("传送学时失败!是否继续传送?")) {
// ajaxEditXxgj();
//}
if(window.stillHave>=0) monicarPlayNext(window.stillHave)
},
success: function (result) {
if (result) {
if (result.msg == 1) {
if(window.stillHave>=0) monicarPlayNext(window.stillHave)
}
if (result.msg == -1) {
alert("您今日已经学满4个学时,系统不再记录学时!");
} else if (result.msg == -2) {
alert("登录超时,可能原因:1、还没有激活学习卡 2、用户在其他地方登录 3、同一台电脑登录了多个账号。请重新登录!");
location.href = '/Account/LogOnStu';
} else if (result.msg == -4) {
alert("观看视频并未配置学时,无法累计学时!");
//} else if (result.msg == -5) {
// alert("实际观看视频少于配置学时,无法累计学时!");
} else if (result.msg == -9) {
alert("作弊无法累计学时!");
}
//else if (result.msg == -3) {
// alert("您已完成所规定的学时,系统不再记录学时!");
//}
}
},
complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
if (status == 'timeout') {//超时,status还有success,error等值的情况
ajaxEditXxgj.abort();
if (confirm("传送学时超时,是否继续传送?")) {
ajaxEditXxgj();
}
}
}
});
}
const subjects = $('#ulTreeList>li')
const unWatch = $('.filetree li span.file a').not('.haveClick')
const watched = $('.filetree li span.file a.haveClick')
window.currentIndex = -1;
window.stillHave = watched.length
function sleepx(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
window.monicarPlayNext = async function (stillHave) {
window.stillHave--
window.currentIndex ++
try {
watched[currentIndex].click()
} catch (error) {
console.log(error)
}
console.log('playing: ' + window.stillHave)
await sleepx(5000);
let sbTime = 180000
try {
sbTime = CKobject.getObjectById('ckplayer_a1').getStatus()["totalTime"]
console.log(sbTime)
} catch (error) {
console.log(error)
if(window.stillHave>=0) monicarPlayNext(window.stillHave)
}
}
monicarPlayNext(window.stillHave)
// !async function monicarPlayNext(stillHave){
// }(window.stillHave)
@cygmris
Copy link
Author

cygmris commented Dec 21, 2018

// var playList = $("#ulTreeList a:not([class='haveClick'])");
var unWatch = $('.filetree li span.file a').not('.haveClick')
var watched = $('.filetree li span.file a.haveClick')

var currentIndex = -1;


function sleepx(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

function doAfter(targetFunc, afterFunc){
    return function(){
        var res = targetFunc(this, arguments);
        afterFunc.apply(this, arguments);
        return res;
    }
}

var playNext = function(){
    currentIndex++;
    watched[currentIndex].click();
    console.log('开始播放下一个视频 ['+ watched[currentIndex].title + ']');
    sleepx(3000).then(()=>{
        console.log("deal ne ko chow hi..")
        diu()
    })
}

var diu = function(){
    var videoTime = parseInt(CKobject.getObjectById('ckplayer_a1').getStatus()["totalTime"]);
    myRecordTime = videoTime;
    ajaxEditXxgj()
    console.log('瞬间完成 [' + watched[currentIndex].title + '],就是这么屌!!!');
    playNext();
}

playerstop = doAfter(playerstop, playNext);

playNext();

@cygmris
Copy link
Author

cygmris commented Dec 23, 2018

window.ajaxAddXxgj = function () {
    //首先判断如果原来有定时器,就先停止,否则计时会加速
    if (myRecordTimeId) {
        clearInterval(myRecordTimeId);
    }
    //开启一个定时器,每隔1秒数字加1,用来记录视频播放的秒数
    myRecordTime = 0; //每次要重置
    myRecordTimeId = setInterval(function () {
        myRecordTime = parseInt(myRecordTime) + 1;
    }, 1000);
    $("#sptm").hide();
    $(".vm_content").css("z-index", "1");
    $.ajax({
        url: "/StudentManage/AddXxgj",
        type: "get",
        timeout: 5000, //超时时间设置,单位毫秒
        data: { lmid: lmid, spid: spid, kmid: xxlx },
        dataType: "json",
        success: function (data) {
            if (data) {
                ClearCheck();//清除视频试题
                if (data.msg == 0) {
                    //if (confirm("传送学时失败!是否继续传送?")) {
                    //    ajaxAddXxgj();
                    //}
                }else if (data.msg == -1) {
                    //学时学满4学时了
                    alert("您今日已经学满4个学时,不再记录学时!");
                    myClearTimer();
                } else if (data.msg == -2) {
                    alert("登录超时,可能原因:1、还没有激活学习卡 2、用户在其他地方登录 3、同一台电脑登录了多个账号。请重新登录!");
                    location.href = '/Account/LogOnStu';
                }
                if (data.msg == 1) {
                    ;
                }
                if (data.Rule == 1) {
                    rule = 1;
                } else if (data.Rule == 2) {
                    rule = 2;
                    ve = undefined;
                    if (data.exam) {
                        if(window.stillHave>=0) monicarPlayNext(window.stillHave)

                        KSPDT(data.exam);
                    }
                    $("#veimg").removeAttr("src");
                    $("#veimg").attr("src", "/StudentManage/GetVideoExamImage?date" + new Date());

                } else if (data.Rule == 3) {
                    rule = 3;
                    if (data.exam) {
                        if(window.stillHave>=0) monicarPlayNext(window.stillHave)
                        
                        KSPDT(data.exam);
                    }
                    $("#veimg").removeAttr("src");
                    $("#veimg").attr("src", "/StudentManage/GetVideoExamImage?date" + new Date());
                    // ve = data.exam;
                    ve = undefined;
                }
                //else {
                //    myVideoStop();
                //}
                //else if (data.msg == "") {
                ////暂停
                //  myVideoStop();
                //  //alert("您的登录已超时,请重新登录!");
                //  //window.location.href = "/Account/LogOnStu";
                //}
            }
        },
        error: function (data) {
            //if (confirm("传送学时失败!是否继续传送?")) {
            //    ajaxAddXxgj(); 
            //}
        },
        complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
            if (status == 'timeout') {//超时,status还有success,error等值的情况
                ajaxAddXxgj.abort();
                if (confirm("传送学时超时,是否继续传送?")) {
                    ajaxAddXxgj();
                }
            }
        }
    });
}

@cygmris
Copy link
Author

cygmris commented Dec 23, 2018

window.ajaxEditXxgj= function() {
    //停止计时
    if (myRecordTimeId) {
        clearInterval(myRecordTimeId);
    }
    //获取视频播放的秒数
    var myPlayTime = myRecordTime;

    //获取该视频的实际时长
    // var realVideoTime = parseInt(CKobject.getObjectById('ckplayer_a1').ckplayer_getstatus()["totaltime"]);//6.3版本
    var realVideoTime = parseInt(CKobject.getObjectById('ckplayer_a1').getStatus()["totalTime"]); //6.5版本
    //alert(myRecordTime + "==" + realVideoTime);

    //var TokenValue = $("input[name=__RequestVerificationToken]").val();

    $.ajax({
        url: "/StudentManage/EditXxgj",
        type: "get",
        timeout: 5000, //超时时间设置,单位毫秒
        data: {
            //__RequestVerificationToken: TokenValue,
            lmid: lmid,
            spid: spid,
            myFlag: myFlag,
            realVideoTime: realVideoTime,
            myRecordTime: myRecordTime
        },
        dataType: "json",
        error: function (data) {
            //if (confirm("传送学时失败!是否继续传送?")) {
            //    ajaxEditXxgj();
            //}
            if(window.stillHave>=0) monicarPlayNext(window.stillHave)

        },
        success: function (result) {
            if (result) {
                if (result.msg == 1) {
                    if(window.stillHave>=0) monicarPlayNext(window.stillHave)
                }
                if (result.msg == -1) {
                    alert("您今日已经学满4个学时,系统不再记录学时!");
                } else if (result.msg == -2) {
                    alert("登录超时,可能原因:1、还没有激活学习卡 2、用户在其他地方登录 3、同一台电脑登录了多个账号。请重新登录!");
                    location.href = '/Account/LogOnStu';
                } else if (result.msg == -4) {
                    alert("观看视频并未配置学时,无法累计学时!");
                    //} else if (result.msg == -5) {
                    //    alert("实际观看视频少于配置学时,无法累计学时!");
                } else if (result.msg == -9) {
                    alert("作弊无法累计学时!");
                }

                //else if (result.msg == -3) {
                //    alert("您已完成所规定的学时,系统不再记录学时!");
                //}
            }
        },
        complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
            if (status == 'timeout') {//超时,status还有success,error等值的情况
                ajaxEditXxgj.abort();
                if (confirm("传送学时超时,是否继续传送?")) {
                    ajaxEditXxgj();
                }
            }
        }
    });
}

@cygmris
Copy link
Author

cygmris commented Feb 27, 2019

monicar-inactivated.js

window.alert = window.console.log

function sleepx(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

window.xxoo = 0

window.ajaxAddXxgj = function () {

    rule = 1;
    //首先判断如果原来有定时器,就先停止,否则计时会加速
    if (myRecordTimeId) {
        clearInterval(myRecordTimeId);
    }
    //开启一个定时器,每隔1秒数字加1,用来记录视频播放的秒数
    myRecordTime = 0; //每次要重置
    myRecordTimeId = setInterval(function () {
        $("#sjsj").html(myRecordTime);
        myRecordTime = parseFloat(myRecordTime) + 0.1;
    }, 100);

    var ajaxTimeoutTest = $.ajax({
        url: "/Exam/AddStudyTime",
        timeout: 5000, //超时时间设置,单位毫秒
        type: "post",
        async: false,//同步  
        data: { videoId: spid, stuId: GetQueryString("stuId") },
        dataType: "json",
        success: function (data) {
            if (data.SubjectType == "-1") {
                alert("此视频与观看的第一个视频不属于同一科目,请签退后重新观看此视频!如不签退,此视频则不会上报学时!");
            }
            ClearUnitData();//清空单元测验数据
            $("#uAnswer dd input:checked").attr("checked", false);//清空多选框
            auto = data.Play;
            if (!CLResult(data.Value, data.Time)) {
                if (data.Value == -11) {
                    alert("您已完成规定学时");
                }
                else if (data.Value == -10) {
                    alert("您今日已学满有效学时");
                }
                PlayAndIco(spid);
                myClearTimer();
            } else {
                if (data.Value == -16) {
                    PlayAndIco(spid);
                    alert("在" + data.msg + "时段不计算学时");
                }
                else if (data.Value == -17) {
                    PlayAndIco(spid);
                    alert("单元已满大纲学时,请观看下一单元");
                }
                else if (data.Value == -22) {
                    alert("请勿重复观看视频");
                    return;
                }
                else if (data.Value == 1) {
                    PlayAndIco(spid, data.Repeat);
                } else {
                    if (data.Value == -1 && data.Msg) {
                        alert(data.Msg);
                    }
                    return;
                }
                if (data.Rule == 1) {
                    rule = 1;
                } else if (data.Rule == 2 && data.Exam != null) {
                    rule = 2;
                    KSPDT(data.Exam);
                } else if (data.Rule == 3 && data.Exam != null) {
                    rule = 3;
                    KSPDT(data.Exam);
                } else {
                    myClearTimer();
                }
            }
            $("#sptm").hide();
            $(".vm_content").show();
            $(".vm_content").css("z-index", "1");
        },
        error: function (data) {
            alert("请求失败,请检查网络!");
            ChangePlay(1)
        },
        complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
            if (status == 'timeout') {//超时,status还有success,error等值的情况
                ajaxTimeoutTest.abort();
                //playload(dqbh);
                //csjsq += 1;
                //if (csjsq == 10) {
                alert("多次尝试发送请求失败,请检查网络!");
                ChangePlay(1)
                //csjsq = 0;
                return;
                //}
            }
        }
    });
}



window.ajaxEditXxgj = function() {
    //停止计时
    if (myRecordTimeId) {
        clearInterval(myRecordTimeId);
    }
    //获取视频播放的秒数
    var myPlayTime = myRecordTime;

    //获取该视频的实际时长
    //var realVideoTime = parseInt(CKobject.getObjectById('ckplayer_a1').ckplayer_getstatus()["totaltime"]);
    isplay = 0;//重置右侧点击视频播放
    var ajaxTimeoutTest = $.ajax({
        url: "/Exam/EditStudyTime",
        timeout: 5000, //超时时间设置,单位毫秒
        type: "post",
        data: { videoId: spid, studyTime: parseInt(myRecordTime.toFixed(0)), stuId: GetQueryString("stuId") },
        dataType: "json",
        //async: false,
        success: function (result) {
            window.xxoo ++;
            if(window.xxoo%10 === 0) {
                $.ajax({
                    url: "/Exam/SignOut",
                    timeout: 5000, //超时时间设置,单位毫秒
                    data: { subjectType: 1 },
                    dataType: "json",
                    type: 'post',
                    success: function (result) {
                        if (result.Value == 1) {
                            alert("签退成功!");
                            // window.parent.location.href = "/Student/StudentInfo";
                        }
                    },
                    error: function (data) {
                        alert("签退失败,没有保存培训记录!");
                    }
                });
            }
            sleepx(10000);
            if (CLResult(result.Value)) {
                if (result.Value == 1) {
                    $("a[spid='" + spid + "']").addClass("haveClick");
                } else if (result.Value == -1) {
                    alert(result.Msg);
                }
                if (auto == 2 || (auto == 3 && rule == 2) || (rule == 1 && auto == 3))
                    LxPlay(spid);
                else if (loadVideo == "1") {
                    Preloading(spid);//播放完后预加载下一个视频不播放
                }
            }
        },
        error: function (result) {
            alert("请求失败,请检查网络!" + result.Msg);
            ChangePlay(1)
        },
        complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
            if (status == 'timeout') {//超时,status还有success,error等值的情况
                ajaxTimeoutTest.abort();

                //csjsq += 1;
                //if (csjsq == 10) {
                alert("多次尝试发送请求失败,请检查网络!");
                ChangePlay(1)
                //csjsq = 0;
                return;
                //}
                //ajaxEditXxgj();
            }
        }
    });
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment