您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
🚀针对U校园,实现在必修章节保持挂机积累学习时长
// ==UserScript== // @name 💯【U校园】挂必修学习时长防检测 // @namespace http://tampermonkey.net/ // @version 1.21 // @description 🚀针对U校园,实现在必修章节保持挂机积累学习时长 // @author ConRain7 // @match https://ucontent.unipus.cn/_pc_default/pc.html?cid=* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // 定义启动滚动的时间(毫秒) let intervalArticle = getRandomInterval(2, 3) * 1000; let intervalLeft = getRandomInterval(4, 7) * 1000; let intervalRight = getRandomInterval(5, 11) * 1000; // 开始滚动 setTimeout(scrollArticle, intervalArticle); setTimeout(scrollLeft, intervalLeft); setTimeout(scrollRight, intervalRight); function scrollArticle() { let element = document.querySelector('.presentationContent--presentation-article-1vwbU'); if (element) { let scrollAmount = element.clientHeight; element.scrollBy(0, scrollAmount); } setTimeout(scrollArticle, getRandomInterval(2, 300) * 1000); } function scrollLeft() { let element = document.querySelector('.undefined.left'); if (element) { let scrollAmount = element.clientHeight; element.scrollBy(0, scrollAmount); } setTimeout(scrollLeft, getRandomInterval(4, 400) * 1000); } function scrollRight() { let element = document.querySelector('.undefined.right'); if (element) { let scrollAmount = element.clientHeight / 2; element.scrollBy(0, scrollAmount); } setTimeout(scrollRight, getRandomInterval(1, 500) * 1000); } /////////////////////////////// setTimeout(() => { //关闭必修提示弹窗 var x = document.getElementsByClassName("dialog-header-pc--close-yD7oN"); x[0].click(); document.querySelector("div.dialog-header-pc--dialog-header-2qsXD").parentElement.querySelector('button').click(); }, 2500); function getRandomInterval(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } })(); // 弹窗 (function() { 'use strict'; const modalCSS = ` .modal { display: flex; align-items: center; justify-content: center; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.4); } .modal-content { background-color: #fefefe; padding: 20px; border: 1px solid #888; max-width: 34%; max-height: 80%; overflow: auto; } .close { color: #aaa; float: right; font-size: 28px; font-weight: bold; } .close:hover, .close:focus { color: black; cursor: pointer; } `; const style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = modalCSS; document.head.appendChild(style); const modalHTML = ` <div id="myModal" class="modal"> <div class="modal-content"> <span class="close">×</span> <h1>欢迎使用U校园学习时长脚本</h1><br> <h2>U校园学习时长计分规则:</h2> <p>学习时长大于等于20小时得满分;小于等于0小时不得分;学习时长在0小时至20小时之间,得分为学习时长/20*100*20%。</p> <h2>U校园学习时长统计规则:</h2> <p>各必修Task学习时长相加后的累计时长。PC端和App端同时在线学习时,系统只记录其中最近活跃一端的学习时间。</p> <h2>脚本使用方法:</h2> <p>打开U校园对应必修学习章节后挂机即可,本脚本会定时翻滚页面,防止出现“长时间未操作”而导致的学习时间无法计入的情况。</p> <h2>注意:</h2> <p>※本脚本目前仅支持U校园Reading comprehension和Reading in detail两个模块的挂机,二者任选其一即可。 <br>※挂机时请勿最小化浏览器,防止脚本失灵。</p> <p>作者/GitHub:@ConRain7 <br>2023.11.25</p> </div> </div> `; document.body.insertAdjacentHTML('beforeend', modalHTML); const modal = document.getElementById("myModal"); const span = document.getElementsByClassName("close")[0]; modal.style.display = "flex"; span.onclick = function() { modal.style.display = "none"; }; window.onclick = function(event) { if (event.target == modal) { modal.style.display = "none"; } }; })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址