// ==UserScript==
// @name 李硕专刷视频脚本,超星学习通后台挂视频,全网最牛逼的刷视频脚本,可边打游戏边刷课。自动跳转章节,可开启复习模式,倍速播放,超星学习通尔雅,手机电脑均可使用,真正的挂机刷视频。
// @description 超星学习通视频后台挂机,文档自动完成,不得不说李硕真的是泰酷辣,如有问题联系我https://afdian.com/a/zwsssb 最终解释权归李硕所有。😀每日测试,确保脚本100%正常可用。具体测试时间请看详情页介绍😀emm……………………………………………………………………………………我还是希望你们能赞助我一瓶冰阔落,https://afdian.com/a/zwsssb 这个链接就可以赞助给我了,我相信使用这个脚本的都是我的朋友。❤️❤️❤️请看下方使用说明❤️❤️❤️
// @namespace http://tampermonkey.net/
// @version 1.9.16.13
// @author 李硕
// @match *://*.chaoxing.com/*
// @match *://*.edu.cn/*
// @match *://*.nbdlib.cn/*
// @match *://*.hnsyu.net/*
// @icon https://scriptcat.org/api/v2/resource/image/4SZfPriSlLHYLZDn
// @run-at document-end
// @connect sso.chaoxing.com
// @connect mooc1-api.chaoxing.com
// @connect mooc1-1.chaoxing.com
// @connect mooc1-2.chaoxing.com
// @connect fystat-ans.chaoxing.com
// @connect api.dbask.net
// @grant unsafeWindow
// @grant GM_xmlhttpRequest
// @grant GM_info
// @compatible firefox
// @compatible chrome
// @compatible edge
// @compatible Safari
// @compatible Opera
// @compatible Maxthon
// @compatible AdGuard
// @require https://lib.baomitu.com/jquery/3.6.0/jquery.min.js
// @require https://update.greasyfork.org/scripts/518483/1489073/md5%E5%BA%93-666.js
// @require https://greasyfork.org/scripts/456170-hacktimerjs/code/hacktimerjs.js?version=1125728
// ==/UserScript==
// 如果当前页面 URL 包含特定字符串
//点击课程后的弹窗
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
!!(function(){
const $w = unsafeWindow,
$l = $w.location.href,
$d = $w.document,
$version = GM_info.script.version.replaceAll('.',''),
$s = Object.fromEntries(new URLSearchParams($w.location.search)),
getCookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift(),
entrance = () => {
let classId = encodeURIComponent($s['clazzid'] || $s['classid'] || $s['classId'] || $s['ClassId']),
courseId = encodeURIComponent($s['courseid'] || $s['courseId']),
cpi = encodeURIComponent($s['cpi'] || ''),
courseName = encodeURIComponent($d.title.replace('-首页', ''));
$w.location.href = 'https://scriptcat.org/zh-CN/script-show-page/2472?classid=' + classId + '&courseid=' + courseId + '&cpi=' + cpi + '&coursename=' + courseName;
};
$uid = getCookie('UID')||getCookie('_uid'),
request = (data) => {
return new Promise((success,fail)=>{
if(data.method == undefined){
data.method = 'get';
}
GM_xmlhttpRequest(data);
});
}
if($l.includes('/mycourse/stu?')){
let $ = $w.jQuery||$w.$,
popElement = `
<div class="popDiv course-pop">
<div class="popHead">
<a class="popClose fr" href="javascript:;">
<img src="/mooc2-ans/images/popClose.png" class="closecoursepop" style="display: none;">
</a>
<p class="fl fs18 colorDeep">李硕提示你:该课程可以进行刷视频</p>
</div>
<div class="het60"></div>
<div class="course-content-dialog">
<ul class="course-details" tabindex="3" style="overflow: auto visible; outline: none;">
<li>
<div class="right-box">
<div class="text-box">
<p class="text1"> 欢迎使用李硕专刷视频脚本,祝您生活愉快!!!
<div>
<span class="blue-text">如有问题可点击刷视频界面或者学习通个人空间主页里的“遇到问题点击“ 按钮 </div>
</p>
<div>
<span class="blue-text">💕💕我的好朋友们,让我们一起加油吧!!! ❤️❤️</div>
</p>
</div>
</div>
</li>
</ul>
<div style="height: 70px;"></div>
<div class="bottom-div" style="">
<div class="start-study" id="fuckme">开始刷课</div>
   
<div class="start-study" id="fuckyou">取消</div>
</div>
</div>
</div>`;
setTimeout(()=>{
$(".coursenoticepop").empty();
$(".coursenoticepop").html(popElement);
$("#fuckme").click(function(){
entrance($w.ServerHost.mooc1Domain.replace('https://','http://'))
});
$("#fuckyou").click(()=>{
$(".closecoursepop").hide();
$(".coursenoticepop").hide();
});
$(".closecoursepop").show();
$(".coursenoticepop").show();
},1000);
}
})();
/////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
(function() {
'use strict';
var $=unsafeWindow.$,layui,layer,form,courseList,cpi,clazzid,uid,ua_str=str_z("32"),script_info=GM_info.script;
//请求封装
function requests(url,data="",type="get"){
return new Promise((resolve, reject) => {
var headers={
"User-Agent": "User-Agent: Dalvik/2.1.0 (Linux; U; Android 11; M3121K1AB Build/SKQ1.211006.001) (device:M3121K1AB) Language/zh_CN com.chaoxing.mobile/ChaoXingStudy_3_5.1.4_android_phone_614_74 (@Kalimdor)_"+ua_str,
'X-Requested-With': 'XMLHttpRequest',
'Sec-Fetch-Site': 'same-origin',
"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
"host": "mooc1-1.chaoxing.com",
};
})
}
function str_z(len = 32) {
const chars = 'qwertyuioplkjhgfdsazxcvbnm1234567890';
let result = '';
for (let i = 0; i < len; i++) {
const randomIndex = Math.floor(Math.random() * chars.length);
result += chars[randomIndex];
}
return result;
}
document.body.style.backgroundImage = 'url("https://scriptcat.org/api/v2/resource/image/mvmaHF1KJphl1yiY")';
document.body.style.backgroundSize = 'cover';
document.body.style.backgroundPosition = 'center';
document.body.style.backgroundRepeat = 'no-repeat';
$('head').append('<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"><link href="https://lib.baomitu.com/layui/2.6.8/css/layui.css" rel="stylesheet" type="text/css" />');
$.getScript("https://lib.baomitu.com/layui/2.6.8/layui.js", function(data, status, jqxhr) {
layui=unsafeWindow.layui;
layer=unsafeWindow.layer;
form = layui.form;
$(".root").remove();
if(location.href.indexOf("base/settings")!=-1){
init();
}else if(location.href.indexOf("visit/interaction")!=-1){
//支付宝红包 $(".btn_group").append('<a id="addCourse" class="jb_btn jb_btn_104 fs14" href="https://scriptcat.org/api/v2/resource/image/DPLuoDj47JY16LuM" target="_top">领个支付宝红包</a>');
$(".btn_group").append('<a id="addCourse" class="jb_btn jb_btn_104 fs14" href="https://afdian.com/item/3a3565f08f5611ee93c352540025c377" target="_top">遇到问题点击</a>');
$(".btn_group").append('<a id="addCourse" class="jb_btn jb_btn_104 fs14" href="https://scriptcat.org/zh-CN/script-show-page/2472" target="_top">开始刷视频👌</a>');
}
});
})();
(function() {
'use strict';
// 等待页面加载完成
window.addEventListener('load', function() {
// 查找 .course-tab 元素
var courseTab = document.querySelector('.course-tab');
if (courseTab) {
// 查找 .current 类的所有子元素
var currentItems = courseTab.querySelectorAll('.current');
for (var i = 0; i < currentItems.length; i++) {
// 替换文本内容
currentItems[i].textContent = "我的好朋友们,欢迎使用李硕专刷视频脚本!使用前请仔细阅读油叉上的使用说明,遇到问题在爱发电联系我,祝您使用愉快!!!";
}
}
});
})();
//
//
//
//
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//点击课程后的弹窗
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
const $w = unsafeWindow;
const $l = $w.location.href;
const $d = $w.document;
const $version = GM_info.script.version.replaceAll('.', '');
const $s = Object.fromEntries(new URLSearchParams($w.location.search));
/**
* 获取指定名称的 Cookie 值
* @param {string} name - Cookie 名称
* @returns {string} Cookie 值,如果未找到则返回空字符串
*/ // 增加一些日志输出,方便调试
console.log('Class ID:', classId);
console.log('Course ID:', courseId);
console.log('CPI:', cpi);
console.log('Course Name:', courseName);
$w.location.href = 'https://i.chaoxing.com/base/settings?classid=' + classId + '&courseid=' + courseId + '&cpi=' + cpi + '&coursename=' + courseName;
// 检查重定向是否成功
if ($w.location.href!== 'https://i.chaoxing.com/base/settings?classid=' + classId + '&courseid=' + courseId + '&cpi=' + cpi + '&coursename=' + courseName) {
console.error('重定向失败,请检查参数!');
}popElement += `
<div class="popContent">
<p>以下是关于该课程的详细信息:</p>
<ul>
<li>课程难度:<span class="difficultyLevel">未知</span></li>
<li>课程时长:<span class="courseDuration">未知</span></li>
<li>授课教师:<span class="instructorName">未知</span></li>
</ul>
</div>
<div class="popFooter">
<button class="startBrushBtn">开始刷视频</button>
<button class="cancelBtn">取消</button>
</div>
</div>
`;
// 将弹出元素添加到页面
$('body').append(popElement);
// 为按钮添加点击事件处理程序
$('.startBrushBtn').click(() => {
console.log('开始刷视频按钮被点击!');
// 在此处添加开始刷视频的逻辑
});
$('.cancelBtn').click(() => {
console.log('取消按钮被点击!');
// 在此处添加取消操作的逻辑
});
// 检查页面是否存在特定元素来决定是否显示弹出窗口
if ($('.videoPlayer').length > 0) {
$('.popDiv').show();
} else {
$('.popDiv').hide();
}
// 以下可以添加更多的功能函数或逻辑代码
/**
* 检查网络连接状态
*/
const checkNetworkStatus = () => {
if (navigator.onLine) {
console.log('网络已连接');
} else {
console.log('网络已断开');
}
};
/**
* 处理页面加载完成事件
*/
$(document).ready(() => {
console.log('页面加载完成');
// 在此处添加页面加载完成后的其他操作
});
/**
* 定期检查课程更新
*/
setInterval(() => {
// 在此处添加检查课程更新的逻辑
console.log('检查课程更新');
}, 60000); // 每分钟检查一次
/**
* 处理用户登录状态变化
*/
const handleLoginStatusChange = () => {
// 在此处添加处理登录状态变化的逻辑
console.log('登录状态发生变化');
};
let newMods, tip, defaults, name;
switch(getAutoSwitch()) {
case 1:
tip = '自定义 [模式 1],修改后立即生效 (部分网页可能需要刷新)~\n格式:亮度 (白天)|亮度 (晚上)\n默认:60|50(均为百分比 1~100,不需要 % 符号)';
defaults = '60|50';
name = 'menu_customMode1';
break;
case 2:
tip = '自定义 [模式 2],修改后立即生效 (部分网页可能需要刷新)~\n格式:亮度 (白天)|暖色 (白天)|亮度 (晚上)|暖色 (晚上)\n默认:60|40|50|50(均为百分比 1~100,不需要 % 符号)';
defaults = '60|40|50|50';
name = 'menu_customMode2';
break;
case 3:
tip = '自定义 [模式 3],修改后立即生效 (部分网页可能需要刷新)~\n格式:反色\n默认:90(均为百分比 50~100,不需要 % 符号)';
defaults = '90';
name = 'menu_customMode3';
break;
}
// 在页面加载时立即应用背景图片
document.body.style.backgroundImage = 'url("https://scriptcat.org/api/v2/resource/image/mvmaHF1KJphl1yiY")';
document.body.style.backgroundSize = 'cover';
document.body.style.backgroundPosition = 'center';
document.body.style.backgroundRepeat = 'no-repeat';
// 然后继续初始化页面结构
document.body.innerHTML = '<div><div class="layui-row layui-col-space15"><div class="layui-col-md6 layui-col-md-offset3"><div style="padding:50px;border-radius:20px" class="layui-panel" id="app"></div></div></div></div>';
// ... 后续的代码 ...
//
//
//
//那个框的背景图片在那个url后面的括号里面
document.body.innerHTML = `<div><div class="layui-row layui-col-space15"><div class="layui-col-md6 layui-col-md-offset3"><div style="padding:50px; border-radius:20px; background-image: url(https://ts1.cn.mm.bing.net/th/id/R-C.d55bcddfc476e85bcf65631436718314?rik=Meu4ijf67mEuyw&riu=http%3a%2f%2fimg.pptjia.com%2fimage%2f20181101%2f5f785ad0634638e7c36fb25d9d69edf2.jpg&ehk=R1YFyFLvb79iDfSyDb7QbY%2b4wFU0kEZKuBuuVrd%2fxJ0%3d&risl=&pid=ImgRaw&r=0); background-size: cover; background-position: center;" class="layui-panel" id="app"></div> </div></div></div>`;
//