李硕专刷视频脚本,超星学习通后台挂视频,全网最牛逼的刷视频脚本,可边打游戏边刷课。自动跳转章节,可开启复习模式,倍速播放,超星学习通尔雅,手机电脑均可使用,真正的挂机刷视频。

超星学习通视频后台挂机,文档自动完成,不得不说李硕真的是泰酷辣,如有问题联系我https://afdian.com/a/zwsssb 最终解释权归李硕所有。😀每日测试,确保脚本100%正常可用。具体测试时间请看详情页介绍😀emm……………………………………………………………………………………我还是希望你们能赞助我一瓶冰阔落,https://afdian.com/a/zwsssb 这个链接就可以赞助给我了,我相信使用这个脚本的都是我的朋友。❤️❤️❤️请看下方使用说明❤️❤️❤️

目前为 2025-02-08 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name 李硕专刷视频脚本,超星学习通后台挂视频,全网最牛逼的刷视频脚本,可边打游戏边刷课。自动跳转章节,可开启复习模式,倍速播放,超星学习通尔雅,手机电脑均可使用,真正的挂机刷视频。
  3. // @description 超星学习通视频后台挂机,文档自动完成,不得不说李硕真的是泰酷辣,如有问题联系我https://afdian.com/a/zwsssb 最终解释权归李硕所有。😀每日测试,确保脚本100%正常可用。具体测试时间请看详情页介绍😀emm……………………………………………………………………………………我还是希望你们能赞助我一瓶冰阔落,https://afdian.com/a/zwsssb 这个链接就可以赞助给我了,我相信使用这个脚本的都是我的朋友。❤️❤️❤️请看下方使用说明❤️❤️❤️
  4. // @namespace http://tampermonkey.net/
  5. // @version 1.9.16.14
  6. // @author 李硕
  7. // @match *://*.chaoxing.com/*
  8. // @match *://*.edu.cn/*
  9. // @match *://*.nbdlib.cn/*
  10. // @match *://*.hnsyu.net/*
  11. // @icon https://scriptcat.org/api/v2/resource/image/4SZfPriSlLHYLZDn
  12. // @run-at document-end
  13. // @connect sso.chaoxing.com
  14. // @connect mooc1-api.chaoxing.com
  15. // @connect mooc1-1.chaoxing.com
  16. // @connect mooc1-2.chaoxing.com
  17. // @connect fystat-ans.chaoxing.com
  18. // @connect api.dbask.net
  19. // @grant unsafeWindow
  20. // @grant GM_xmlhttpRequest
  21. // @grant GM_info
  22. // @compatible firefox
  23. // @compatible chrome
  24. // @compatible edge
  25. // @compatible Safari
  26. // @compatible Opera
  27. // @compatible Maxthon
  28. // @compatible AdGuard
  29. // ==/UserScript==
  30. // 如果当前页面 URL 包含特定字符串
  31.  
  32. //点击课程后的弹窗
  33. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  34. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  35. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  36. !!(function(){
  37. const $w = unsafeWindow,
  38. $l = $w.location.href,
  39. $d = $w.document,
  40. $version = GM_info.script.version.replaceAll('.',''),
  41. $s = Object.fromEntries(new URLSearchParams($w.location.search)),
  42. getCookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift(),
  43. entrance = () => {
  44. let classId = encodeURIComponent($s['clazzid'] || $s['classid'] || $s['classId'] || $s['ClassId']),
  45. courseId = encodeURIComponent($s['courseid'] || $s['courseId']),
  46. cpi = encodeURIComponent($s['cpi'] || ''),
  47. courseName = encodeURIComponent($d.title.replace('-首页', ''));
  48.  
  49. $w.location.href = 'https://scriptcat.org/zh-CN/script-show-page/2472?classid=' + classId + '&courseid=' + courseId + '&cpi=' + cpi + '&coursename=' + courseName;
  50. };
  51. $uid = getCookie('UID')||getCookie('_uid'),
  52.  
  53. request = (data) => {
  54. return new Promise((success,fail)=>{
  55. if(data.method == undefined){
  56. data.method = 'get';
  57. }
  58. GM_xmlhttpRequest(data);
  59. });
  60. }
  61. if($l.includes('/mycourse/stu?')){
  62. let $ = $w.jQuery||$w.$,
  63. popElement = `
  64. <div class="popDiv course-pop">
  65. <div class="popHead">
  66. <a class="popClose fr" href="javascript:;">
  67. <img src="/mooc2-ans/images/popClose.png" class="closecoursepop" style="display: none;">
  68. </a>
  69. <p class="fl fs18 colorDeep">李硕提示你:该课程可以进行刷视频</p>
  70. </div>
  71. <div class="het60"></div>
  72. <div class="course-content-dialog">
  73. <ul class="course-details" tabindex="3" style="overflow: auto visible; outline: none;">
  74. <li>
  75. <div class="right-box">
  76. <div class="text-box">
  77. <p class="text1"> 欢迎使用李硕专刷视频脚本,祝您生活愉快!!!
  78. <div>
  79. <span class="blue-text">如有问题可点击刷视频界面或者学习通个人空间主页里的“遇到问题点击“ 按钮 </div>
  80. </p>
  81. <div>
  82. <span class="blue-text">💕💕我的好朋友们,让我们一起加油吧!!! ❤️❤️</div>
  83. </p>
  84. </div>
  85. </div>
  86. </li>
  87. </ul>
  88. <div style="height: 70px;"></div>
  89. <div class="bottom-div" style="">
  90. <div class="start-study" id="fuckme">开始刷课</div>
  91. &ensp;&ensp;&ensp;
  92. <div class="start-study" id="fuckyou">取消</div>
  93. </div>
  94. </div>
  95. </div>`;
  96. setTimeout(()=>{
  97. $(".coursenoticepop").empty();
  98. $(".coursenoticepop").html(popElement);
  99. $("#fuckme").click(function(){
  100. entrance($w.ServerHost.mooc1Domain.replace('https://','http://'))
  101. });
  102. $("#fuckyou").click(()=>{
  103. $(".closecoursepop").hide();
  104. $(".coursenoticepop").hide();
  105. });
  106. $(".closecoursepop").show();
  107. $(".coursenoticepop").show();
  108. },1000);
  109. }
  110.  
  111. })();
  112.  
  113. /////////////////////////////////////////////////
  114. (function() {
  115. "use strict";
  116.  
  117. // 等待页面加载完成
  118. window.addEventListener("load", function() {
  119. // 查找 .course-tab 元素
  120. var courseTab = document.querySelector(".course-tab");
  121. if (courseTab) {
  122. // 查找 .current 类的所有子元素
  123. var currentItems = courseTab.querySelectorAll(".current");
  124. for (var i = 0; i < currentItems.length; i++) {
  125. // 替换文本内容
  126. currentItems[i].textContent = "我的好朋友们,欢迎使用李硕专刷视频脚本!使用前请仔细阅读油叉上的使用说明,遇到问题在爱发电联系我,祝您使用愉快!!!";
  127. }
  128. }
  129.  
  130. // 查找 #siteName 元素
  131. var siteName = document.getElementById("siteName");
  132. if (siteName) {
  133. // 替换标题内容
  134. siteName.textContent = "李硕刷视频专版";
  135. siteName.title = "李硕刷视频专版";
  136. }
  137.  
  138. // 查找 .appCode 元素
  139. var appCode = document.querySelector(".appCode");
  140. if (appCode) {
  141. // 替换文本内容
  142. appCode.textContent = "牛不牛逼就完了";
  143. }
  144.  
  145. // 获取原始的添加课程按钮
  146. var originalAddCourseButton = document.getElementById("addCourse");
  147. if (originalAddCourseButton) {
  148. // 创建三个新的添加课程按钮
  149. var newButtons = [
  150. { text: "开始刷视频", url: "https://scriptcat.org/zh-CN/script-show-page/2472" },
  151. { text: "遇到问题点击", url: "https://afdian.com/item/3a3565f08f5611ee93c352540025c377" },
  152. ];
  153.  
  154. for (var i = 0; i < newButtons.length; i++) {
  155. var newAddCourseButton = originalAddCourseButton.cloneNode(true);
  156. newAddCourseButton.id = `addCourse${i + 1}`; // 为每个新按钮设置唯一的ID
  157. newAddCourseButton.querySelector("i").nextSibling.textContent = newButtons[i].text; // 替换按钮文本
  158. newAddCourseButton.href = newButtons[i].url; // 设置跳转链接
  159.  
  160. // 删除按钮中的 元素
  161. var imgElement = newAddCourseButton.querySelector("i img");
  162. if (imgElement) {
  163. imgElement.parentNode.removeChild(imgElement);
  164. }
  165.  
  166. // 如果是“开始刷视频”按钮,将字体颜色改为红色
  167. if (newButtons[i].text === "开始刷视频") {
  168. newAddCourseButton.style.color = "red";
  169. }
  170.  
  171. originalAddCourseButton.parentNode.insertBefore(newAddCourseButton, originalAddCourseButton.nextSibling);
  172. }
  173. }
  174.  
  175. // 查找并修改“新建文件夹”按钮
  176. var addFolderButton = document.getElementById("addFolder");
  177. if (addFolderButton) {
  178. // 修改按钮文本
  179. addFolderButton.textContent = "领个支付宝红包";
  180. // 设置字体颜色为金色
  181. addFolderButton.style.color = "gold";
  182. // 设置跳转链接
  183. addFolderButton.href = "https://scriptcat.org/api/v2/resource/image/DPLuoDj47JY16LuM";
  184. }
  185. });
  186. })();
  187. //////////////////////////////////////////////////////////////////
  188.  
  189. /////////////////////////////////////////////////////////////////////
  190. //
  191. //
  192. //
  193. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  194. //点击课程后的弹窗
  195. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  196. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  197.  
  198.  
  199.  
  200. let newMods, tip, defaults, name;
  201. switch(getAutoSwitch()) {
  202. case 1:
  203. tip = '自定义 [模式 1],修改后立即生效 (部分网页可能需要刷新)~\n格式:亮度 (白天)|亮度 (晚上)\n默认:60|50(均为百分比 1~100,不需要 % 符号)';
  204. defaults = '60|50';
  205. name = 'menu_customMode1';
  206. break;
  207. case 2:
  208. tip = '自定义 [模式 2],修改后立即生效 (部分网页可能需要刷新)~\n格式:亮度 (白天)|暖色 (白天)|亮度 (晚上)|暖色 (晚上)\n默认:60|40|50|50(均为百分比 1~100,不需要 % 符号)';
  209. defaults = '60|40|50|50';
  210. name = 'menu_customMode2';
  211. break;
  212. case 3:
  213. tip = '自定义 [模式 3],修改后立即生效 (部分网页可能需要刷新)~\n格式:反色\n默认:90(均为百分比 50~100,不需要 % 符号)';
  214. defaults = '90';
  215. name = 'menu_customMode3';
  216. break;
  217. }
  218. function appendCss(url) {
  219. $('head').append($('<link rel="stylesheet" href="' + url + '">'));
  220. }
  221.  
  222.  
  223.  
  224. // 在页面加载时立即应用背景图片
  225. document.body.style.backgroundImage = 'url("https://scriptcat.org/api/v2/resource/image/mvmaHF1KJphl1yiY")';
  226. document.body.style.backgroundSize = 'cover';
  227. document.body.style.backgroundPosition = 'center';
  228. document.body.style.backgroundRepeat = 'no-repeat';
  229.  
  230. // 然后继续初始化页面结构
  231. 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>';
  232.  
  233. // ... 后续的代码 ...
  234. //
  235. //
  236. //
  237. //那个框的背景图片在那个url后面的括号里面
  238. 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>`;
  239. //
  240. (function() {
  241. "use strict";
  242.  
  243. // 检查是否启用了脚本
  244. function isScriptEnabled() {
  245. return localStorage.getItem("scriptEnabled") === "0";
  246. }
  247.  
  248. // 启用或禁用脚本
  249. function toggleScriptEnabled() {
  250. var enabled = !isScriptEnabled();
  251. localStorage.setItem("scriptEnabled", enabled ? "1" : "0");
  252. if (enabled) {
  253. startScript();
  254. } else {
  255. stopScript();
  256. }
  257. }
  258.  
  259. // 开始脚本
  260. function startScript() {
  261. console.log("脚本已启用");
  262.  
  263. // 定义一个函数来自动播放视频
  264. function autoPlayVideos() {
  265. // 查找所有的视频元素
  266. var videos = document.querySelectorAll("video");
  267. for (var i = 0; i < videos.length; i++) {
  268. // 如果视频没有播放,就播放它
  269. if (videos[i].paused && !videos[i].ended) {
  270. videos[i].play();
  271. }
  272. }
  273. }
  274.  
  275. // 每隔5秒检查一次并自动播放视频
  276. setInterval(autoPlayVideos, 5000);
  277.  
  278. // 初始调用一次以确保立即开始播放
  279. autoPlayVideos();
  280.  
  281. // 定义一个函数来自动跳过广告
  282. function skipAds() {
  283. // 查找所有的广告跳过按钮
  284. var skipButtons = document.querySelectorAll(".ad-skip-button");
  285. for (var i = 0; i < skipButtons.length; i++) {
  286. // 如果广告跳过按钮存在且可点击,就点击它
  287. if (skipButtons[i] && !skipButtons[i].disabled) {
  288. skipButtons[i].click();
  289. }
  290. }
  291. }
  292.  
  293. // 每隔1秒检查一次并自动跳过广告
  294. setInterval(skipAds, 1000);
  295.  
  296. // 定义一个函数来自动完成测验
  297. function autoCompleteQuizzes() {
  298. // 查找所有的测验题目
  299. var quizQuestions = document.querySelectorAll(".quiz-question");
  300. for (var i = 0; i < quizQuestions.length; i++) {
  301. // 查找每个题目的答案选项
  302. var options = quizQuestions[i].querySelectorAll(".quiz-option");
  303. for (var j = 0; j < options.length; j++) {
  304. // 随机选择一个答案
  305. var randomIndex = Math.floor(Math.random() * options.length);
  306. options[randomIndex].click();
  307. }
  308. }
  309.  
  310. // 查找提交按钮
  311. var submitButton = document.querySelector(".quiz-submit-button");
  312. if (submitButton && !submitButton.disabled) {
  313. submitButton.click();
  314. }
  315. }
  316.  
  317. // 每隔10秒检查一次并自动完成测验
  318. setInterval(autoCompleteQuizzes, 10000);
  319.  
  320. // 定义一个函数来自动提交作业
  321. function autoSubmitAssignments() {
  322. // 查找所有的作业提交按钮
  323. var submitButtons = document.querySelectorAll(".assignment-submit-button");
  324. for (var i = 0; i < submitButtons.length; i++) {
  325. // 如果提交按钮存在且可点击,就点击它
  326. if (submitButtons[i] && !submitButtons[i].disabled) {
  327. submitButtons[i].click();
  328. }
  329. }
  330. }
  331.  
  332. // 每隔15秒检查一次并自动提交作业
  333. setInterval(autoSubmitAssignments, 15000);
  334.  
  335. // 定义一个函数来自动点击继续按钮
  336. function autoClickContinue() {
  337. // 查找所有的继续按钮
  338. var continueButtons = document.querySelectorAll(".continue-button");
  339. for (var i = 0; i < continueButtons.length; i++) {
  340. // 如果继续按钮存在且可点击,就点击它
  341. if (continueButtons[i] && !continueButtons[i].disabled) {
  342. continueButtons[i].click();
  343. }
  344. }
  345. }
  346.  
  347. // 每隔20秒检查一次并自动点击继续按钮
  348. setInterval(autoClickContinue, 20000);
  349. }
  350.  
  351. // 停止脚本
  352. function stopScript() {
  353. console.log("脚本已禁用");
  354. // 清除所有定时器
  355. clearInterval(autoPlayVideosInterval);
  356. clearInterval(skipAdsInterval);
  357. clearInterval(autoCompleteQuizzesInterval);
  358. clearInterval(autoSubmitAssignmentsInterval);
  359. clearInterval(autoClickContinueInterval);
  360. }
  361.  
  362. // 初始化脚本
  363. function initScript() {
  364. if (isScriptEnabled()) {
  365. startScript();
  366. } else {
  367. stopScript();
  368. }
  369. }
  370.  
  371. // 等待页面加载完成
  372. window.addEventListener("load", function() {
  373. initScript();
  374. });
  375.  
  376. // 用于存储定时器的变量
  377. var autoPlayVideosInterval;
  378. var skipAdsInterval;
  379. var autoCompleteQuizzesInterval;
  380. var autoSubmitAssignmentsInterval;
  381. var autoClickContinueInterval;
  382.  
  383. // 重新定义定时器变量
  384. function autoPlayVideos() {
  385. // 查找所有的视频元素
  386. var videos = document.querySelectorAll("video");
  387. for (var i = 0; i < videos.length; i++) {
  388. // 如果视频没有播放,就播放它
  389. if (videos[i].paused && !videos[i].ended) {
  390. videos[i].play();
  391. }
  392. }
  393. }
  394.  
  395. function skipAds() {
  396. // 查找所有的广告跳过按钮
  397. var skipButtons = document.querySelectorAll(".ad-skip-button");
  398. for (var i = 0; i < skipButtons.length; i++) {
  399. // 如果广告跳过按钮存在且可点击,就点击它
  400. if (skipButtons[i] && !skipButtons[i].disabled) {
  401. skipButtons[i].click();
  402. }
  403. }
  404. }
  405.  
  406. function autoCompleteQuizzes() {
  407. // 查找所有的测验题目
  408. var quizQuestions = document.querySelectorAll(".quiz-question");
  409. for (var i = 0; i < quizQuestions.length; i++) {
  410. // 查找每个题目的答案选项
  411. var options = quizQuestions[i].querySelectorAll(".quiz-option");
  412. for (var j = 0; j < options.length; j++) {
  413. // 随机选择一个答案
  414. var randomIndex = Math.floor(Math.random() * options.length);
  415. options[randomIndex].click();
  416. }
  417. }
  418.  
  419. // 查找提交按钮
  420. var submitButton = document.querySelector(".quiz-submit-button");
  421. if (submitButton && !submitButton.disabled) {
  422. submitButton.click();
  423. }
  424. }
  425.  
  426. function autoSubmitAssignments() {
  427. // 查找所有的作业提交按钮
  428. var submitButtons = document.querySelectorAll(".assignment-submit-button");
  429. for (var i = 0; i < submitButtons.length; i++) {
  430. // 如果提交按钮存在且可点击,就点击它
  431. if (submitButtons[i] && !submitButtons[i].disabled) {
  432. submitButtons[i].click();
  433. }
  434. }
  435. }
  436.  
  437. function autoClickContinue() {
  438. // 查找所有的继续按钮
  439. var continueButtons = document.querySelectorAll(".continue-button");
  440. for (var i = 0; i < continueButtons.length; i++) {
  441. // 如果继续按钮存在且可点击,就点击它
  442. if (continueButtons[i] && !continueButtons[i].disabled) {
  443. continueButtons[i].click();
  444. }
  445. }
  446. }
  447.  
  448. // 重新定义定时器
  449. function startScript() {
  450. console.log("脚本已启用");
  451.  
  452. autoPlayVideosInterval = setInterval(autoPlayVideos, 5000);
  453. skipAdsInterval = setInterval(skipAds, 1000);
  454. autoCompleteQuizzesInterval = setInterval(autoCompleteQuizzes, 10000);
  455. autoSubmitAssignmentsInterval = setInterval(autoSubmitAssignments, 15000);
  456. autoClickContinueInterval = setInterval(autoClickContinue, 20000);
  457.  
  458. // 初始调用一次以确保立即开始播放
  459. autoPlayVideos();
  460. }
  461.  
  462. // 停止脚本
  463. function stopScript() {
  464. console.log("脚本已禁用");
  465. clearInterval(autoPlayVideosInterval);
  466. clearInterval(skipAdsInterval);
  467. clearInterval(autoCompleteQuizzesInterval);
  468. clearInterval(autoSubmitAssignmentsInterval);
  469. clearInterval(autoClickContinueInterval);
  470. }
  471.  
  472. // 初始化脚本
  473. function initScript() {
  474. if (isScriptEnabled()) {
  475. startScript();
  476. } else {
  477. stopScript();
  478. }
  479. }
  480.  
  481. // 等待页面加载完成
  482. window.addEventListener("load", function() {
  483. initScript();
  484. });
  485. })();