// ==UserScript==
// @name 灯塔党建视频学习
// @namespace aaron.js.greasyfork.org
// @version 1.1
// @description 2019-03-05更新 增加学习进度面板,修改学习算法,一课只需5秒
// @author Aaron
// @match http://*.dtdjzx.gov.cn/course/special/*
// @match http://*.dtdjzx.gov.cn/recommend
// @grant none
// @downloadURL none
// ==/UserScript==
var user1=0;
(function() {
'use strict';
// Your code here...
$.postJSON("/bintang/getUserId", {}).then(e=>{
if(e)
user1=e;
else
alert("请登录");
})
$($(".top.clearfix")[1]).append('
加速学习
');
$("body").append('');
$("#p_gobtn").click(e=>{
$("body").append('>>学习进度面板
')
$("li.xuanji").each((i,n)=>{
if(n.outerHTML.indexOf("已学")<0){
var url=$(n).find("a")[0].getAttribute("href");
$(n).find(".content>.course-mes").append('学习');
}
});
$(".xuanji-item").each((i,n)=>{
if(n.outerHTML.indexOf("已学")<0){
var url=n.getAttribute("href");
$(n).find(".xuanji-content>.course-mes").append('学习');
}
});
});
window.divlog=function(n,s,c){
if(!c)
c="#aaa";
$("#divConsole").append(">>"+n+":"+s+"
");
}
window.gosss=function(url){
divlog("新的学习","正在载入……");
$.get(url).error(e=>{
divlog("新的学习","载入失败!","#f00");
}).then((h,s,o)=>{
var project2 = JSON.parse($(h).find("#script_course").html());
aaAddTimeCount(project2);
$(h).find("xuanji-item").each((i,n)=>{
$.get(n.href).then((h1,s1,o1)=>{
var project1 = JSON.parse($(h1).find("#script_course").html());
aaAddTimeCount(project2);
})
});
});
}
window.aaAddTimeCount=function(project){
//$.get("http://v.dtdjzx.gov.cn/dyjy/video/"+project.sdPath);
divlog(project.courseName,"正在载入……");
$.postJSON("/bintang/addTimeCount", project).fail(e=>{
divlog(project.courseName,"载入超时","#F00");
}).then(data=>{
if(data.code){
$.postJSON("/bintang/getUserId", {}).fail(e=>{
divlog(project.courseName,"载入超时","#F00");
}).then(
function(data) {
var userId = data;
var getStudyTimes=parseInt(project.courseDuration/2*60);
setTimeout(()=>{
aaToprogress(userId,project,getStudyTimes,'recordProgress');
},1000);
setTimeout(()=>{
aaToprogress(userId,project,project.courseDuration*60,'updateTimeEnd');
},2000);
});
}else{
divlog(project.courseName,"载入失败","#F00");
}
});
}
window.aaToprogress=function(userId,project,getStudyTimes,u){
var appSecret = '4d7967b49cabb795686035e5886ea087';
var receive = {
timelength:project.courseDuration,
courseId:project.courseId,
userId:userId,
studyTimes:getStudyTimes
}
var requestParam = {
courseId:project.courseId,
userId:userId,
studyTimes:getStudyTimes
}
var appKey = userId;
var timestamp = new Date().getTime();
var nonce = guid();
var signatureType = 'MD5';
var authType = 'ACCESSKEY';
var signatureVersion = '1';
var requestUri = '/bintang/recordProgress';
var signature = sign(appKey, appSecret, requestUri, timestamp, nonce, requestParam);
var signatureEntity = {
'appKey' : appKey,
'timestamp' : timestamp,
'nonce' : nonce,
'signatureType' : signatureType,
'authType' : authType,
'signatureVersion' : signatureVersion,
'requestUri' : requestUri,
'signature' : signature
};
$.postJSON("/bintang/"+u, {
'signatureEntity' : signatureEntity,
'receive' : receive
}).then(function(data) {
if(data.isRecord){
divlog(project.courseName,"学习完成","#0F0");
}
}).fail(e=>{
var msg="学习失败";
if(e.status==500)
msg="服务器端发生错误";
else if(e.status>=400 && e.status<500)
msg="学习资源未找到";
divlog(project.courseName,msg,"#F00");
});
}
})();