江苏开放大学刷课脚本-解决有些课程无法点击问题

江苏开放大学刷课脚本- 解决有些课程无法点击问题

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

You will need to install an extension such as Tampermonkey to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         江苏开放大学刷课脚本-解决有些课程无法点击问题
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  江苏开放大学刷课脚本- 解决有些课程无法点击问题
// @author       Pwn
// @match        http://xuexi.jsou.cn/jxpt-web/student/courseuser/courseContent?courseVersionId=*
// @match        http://xuexi.jsou.cn/jxpt-web/student/activity/display?courseVersionId=*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=jsou.cn
// @grant        unsafeWindow
// @license      MIT
// ==/UserScript==
function StartRunCourse()
{
    for(var i=0;i<300;i++)
    {
        sendHeartBeatAjax();//调用原生方法
    }
}

function InjectClickButton()//修改按钮
{
    var StartTree = document.evaluate('//*[@id="courseContent_1_switch"]',document).iterateNext();
    var ShowText =document.evaluate('//*[@id="courseContent_1_a"]',document).iterateNext();
    ShowText.textContent = "点击一键完成本课";
    ShowText.style.color="red";
    StartTree.removeAttribute("treenode_switch");
    StartTree.onclick=()=>{StartRunCourse()}
    ShowText.onclick=()=>{StartRunCourse()}
}

function GetDocId()
{
    var DocActivy = document.getElementsByClassName('activity doc');
    var DocIds = []
    for(var i=0;i<DocActivy.length;i++)
    {
        var IdValue = DocActivy[i].getAttribute("id");//ID值
        DocIds.push(IdValue);//添加到值列表中
    }
    return DocIds;
}
function GetVideoId()
{
    var VideoActivy = document.getElementsByClassName('activity video');
    var VideoIds = []
    for(var i=0;i<VideoActivy.length;i++)
    {
        var IdValue = VideoActivy[i].getAttribute("id");//ID值
        VideoIds.push(IdValue);//添加到值列表中
    }
    return VideoIds;//返回视频ID
}
function GetAudioId()
{
    var AudioActivy = document.getElementsByClassName('activity audio');
    var AudioIds = []
    for(var i=0;i<AudioActivy.length;i++)
    {
        var IdValue = AudioActivy[i].getAttribute("id");//ID值
        AudioIds.push(IdValue);//添加到值列表中
    }
    return AudioIds;//返回音频ID
}
function DocHeart_Send()//文档类
{
    var Id_Doc = GetDocId();
    dataHeart.isStuLearningRecord=2;
    dataHeart.type=1;
    for(var i=0;i<Id_Doc.length;i++)
    {
        dataHeart.activityId = Id_Doc[i];
        console.log("正在努力发送文档心跳包中,当前正在执行的课程ID为:"+Id_Doc[i]);
        for(var k=0;k<10;k++)
        {
            sendHeartBeatAjax();
        }
    }
}
function VideoHeart_Send()//视频类
{
    var Id_Video = GetVideoId();
    dataHeart.isStuLearningRecord=2;
    dataHeart.type=2;
    dataHeart.playStatus=true;
    dataHeart.isResourcePage=true;
    for(var i=0;i<Id_Video.length;i++)
    {
        dataHeart.activityId = Id_Video[i];
        console.log("正在努力发送视频心跳包中,当前正在执行的课程ID为:"+Id_Video[i]);
        for(var k=0;k<20;k++)
        {
            sendHeartBeatAjax();
        }
    }
}
function AudioHeart_Send()//音频类
{
    var Id_Audio = GetAudioId();
    dataHeart.isStuLearningRecord=2;
    dataHeart.type=6;
    for(var i=0;i<Id_Audio.length;i++)
    {
        dataHeart.activityId = Id_Audio[i];
        console.log("正在努力发送音频心跳包中,当前正在执行的课程ID为:"+Id_Audio[i]);
        for(var k=0;k<10;k++)
        {
            sendHeartBeatAjax();
        }
    }
}

function MainRun()
{
    if(location.href.includes("display"))
    {
        InjectClickButton();//观看页面保留手动模式
    }
    else
    {
        unsafeWindow.DocHeart_Send = DocHeart_Send;
        unsafeWindow.VideoHeart_Send = VideoHeart_Send;
        unsafeWindow.AudioHeart_Send = AudioHeart_Send;
        console.info(`%c+`,`background-image:url(https://s3.bmp.ovh/imgs/2022/03/5e6d432c16060d22.jpg);background-size: contain;
  background-repeat: no-repeat;
  color: transparent;padding: 122px 217px;`)
        console.info("%c当你打开控制台的时候,请记住以下几个规则:\n1.DocHeart_Send函数可以帮你刷全部的文档课程\n2.VideoHeart_Send函数可以帮你刷全部的视频课程\n3.AudioHeart_Send函数可以帮你刷全部的音频课程\n按需使用,不要一次性全部输入,不然程序会混乱,使用过程中感觉浏览器有点卡顿是正常现象,程序在无延迟的发送网络请求,所以会发生卡顿\n当你发现一排红报错的时候,请不要犹豫,立马刷新页面,重新开始刷课。","color:red;margin-top:10px");
    }
}
MainRun();