您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
文档课2倍速倒计时 + 自动10秒提交进度 + 跳过心跳提示
// ==UserScript== // @name 云学堂文档课学习加速(2倍速 + 每10秒提交) // @namespace http://tampermonkey.net/ // @version 1.2 // @description 文档课2倍速倒计时 + 自动10秒提交进度 + 跳过心跳提示 // @match https://asiainfo.yunxuetang.cn/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; console.log('[学习加速脚本] 正在初始化...'); const waitFor = (condFn, callback, timeout = 10000) => { const start = Date.now(); const timer = setInterval(() => { if (condFn()) { clearInterval(timer); callback(); } else if (Date.now() - start > timeout) { clearInterval(timer); console.warn('[学习加速脚本] 条件等待超时'); } }, 100); }; // 等待页面中 countDown 函数被定义 waitFor(() => typeof window.countDown === 'function', () => { console.log('[学习加速脚本] 尝试覆盖 countDown 函数为 2 倍速版本...'); const originalCountDown = window.countDown; window.countDown = function (a, b) { clearInterval(window.timer); console.log('[学习加速脚本] countDown 已被加速处理'); let c = 2; // 2倍速 a = parseInt(a / c); window.timer = setInterval(function () { window.timerCount = (window.timerCount || 0) + 1; window.heartNum = (window.heartNum || 0) + 1; window.reZero = (window.reZero || 0) + 1; window.phaseTrackIntervalNum = (window.phaseTrackIntervalNum || 0) + 1; window.actualStudyHours = (window.actualStudyHours || 0) + 1; --a; if (typeof b === 'function') { const days = Math.floor(a / 86400); const hours = Math.floor((a % 86400) / 3600); const minutes = Math.floor((a % 3600) / 60); const seconds = a % 60; let f = ''; if (days > 0) f += days + '天'; if (hours > 0) f += hours + '小时'; if (minutes > 0) f += minutes + '分'; if (seconds >= 0) f += seconds + '秒'; b(f); } // 提交进度或心跳 if (window.reZero >= window.validtimeSpan) { window.reZero = 0; window.heartNum = 0; if (typeof submitStudy === 'function') submitStudy(); } else if (window.heartNum >= window.heartbeatTime) { window.heartNum = 0; if (typeof checkHeart === 'function') checkHeart(() => {}); } if (a <= 0) clearInterval(window.timer); }, 1000); }; console.log('[学习加速脚本] 成功覆盖 countDown()!'); }); // 设置为每10秒提交一次进度 waitFor(() => typeof window.validtimeSpan !== 'undefined', () => { window.validtimeSpan = 10; console.log('[学习加速脚本] 已设置 validtimeSpan = 10 秒'); }); // 跳过心跳提示(iframe遮罩) waitFor(() => typeof window.showHeartTip === 'function', () => { const originalShowHeartTip = window.showHeartTip; window.showHeartTip = function (msg) { console.log('[学习加速脚本] 拦截 showHeartTip,自动继续学习'); if (typeof learnKng === 'function') { learnKng(); // 自动继续 } }; }); })();