// ==UserScript==
// @name 超星学习通|知到智慧树-阅读助手增强版
// @namespace noshuang
// @version 1.0.0
// @author isMobile
// @description 阅读助手,自动滚动、翻页、任务点跳转,自动保存进度。
// @license MIT
// @icon https://vitejs.dev/logo.svg
// @match *://*.chaoxing.com/*
// @match *://*.edu.cn/*
// @match *://*.zhihuishu.com/*
// @grant GM_xmlhttpRequest
// @grant GM_notification
// @grant GM_setValue
// @grant GM_getValue
// @run-at document-start
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js
// @downloadURL https://update.greasyfork.icu/scripts/529074/%E8%B6%85%E6%98%9F%E5%AD%A6%E4%B9%A0%E9%80%9A%EF%BD%9C%E7%9F%A5%E5%88%B0%E6%99%BA%E6%85%A7%E6%A0%91-%E9%98%85%E8%AF%BB%E5%8A%A9%E6%89%8B%E5%A2%9E%E5%BC%BA%E7%89%88.user.js
// @updateURL https://update.greasyfork.icu/scripts/529074/%E8%B6%85%E6%98%9F%E5%AD%A6%E4%B9%A0%E9%80%9A%EF%BD%9C%E7%9F%A5%E5%88%B0%E6%99%BA%E6%85%A7%E6%A0%91-%E9%98%85%E8%AF%BB%E5%8A%A9%E6%89%8B%E5%A2%9E%E5%BC%BA%E7%89%88.meta.js
// ==/UserScript==
(function() {
'use strict';
const config = {
scrollSpeed: 3000, // 自动滚动间隔(毫秒)
pageCheckInterval: 15, // 翻页检测间隔(秒)
retryLimit: 3, // 最大重试次数
debugMode: true // 调试模式
};
let state = {
active: true,
currentPage: 1,
retryCount: 0
};
// 启动脚本时加载资源和页面初始化
window.addEventListener('load', () => {
initializeUI();
startAutomation();
});
// 初始化界面
function initializeUI() {
const panel = document.createElement('div');
panel.id = 'reading-helper-panel';
panel.innerHTML = `
阅读助手 v1.0
当前页:1
`;
document.body.appendChild(panel);
document.getElementById('toggle-btn').addEventListener('click', toggleScript);
}
// 切换脚本状态
function toggleScript() {
state.active = !state.active;
document.getElementById('toggle-btn').textContent = state.active ? '暂停' : '开始';
}
// 开始自动化操作
function startAutomation() {
// 自动滚动功能
setInterval(() => {
if (state.active) {
autoScroll();
}
}, config.scrollSpeed);
// 翻页检测功能
setInterval(async () => {
if (state.active) {
const success = await checkNextPage();
if (success) {
state.currentPage++;
document.getElementById('current-page').textContent = state.currentPage;
}
}
}, config.pageCheckInterval * 1000);
}
// 自动滚动页面
function autoScroll() {
const step = window.innerHeight * 0.85; // 每次滚动页面的高度
const maxScroll = document.documentElement.scrollHeight - window.innerHeight;
if (window.scrollY + step >= maxScroll) {
window.scrollTo(0, maxScroll);
console.log('已到达页面底部,准备翻页');
} else {
window.scrollBy(0, step);
}
}
// 检查并翻页
async function checkNextPage() {
try {
const nextPageButton = document.querySelector('.next-page-button'); // 这里要根据实际页面元素调整
if (nextPageButton && nextPageButton.offsetParent !== null) {
nextPageButton.click();
await waitForPageLoad();
console.log('成功翻页');
return true;
} else {
console.log('未找到翻页按钮');
return false;
}
} catch (error) {
console.error('翻页出错:', error);
return false;
}
}
// 等待页面加载
function waitForPageLoad() {
return new Promise(resolve => {
const observer = new MutationObserver(() => {
if (document.readyState === 'complete') {
observer.disconnect();
resolve();
}
});
observer.observe(document, { childList: true, subtree: true });
});
}
// 发送通知
function sendNotification(message) {
GM_notification({
title: '阅读助手通知',
text: message,
timeout: 5000
});
}
})();