// ==UserScript== // @name 🏅智学宝学习通自动|无需配置|免费试用|💡智能刷课+自动答题|🤖 AI智能答题|🔄长期维护更新 // @namespace http://tampermonkey.net/ // @version 1.9.50 // @description ✨【免费试用】✨ 采用DeepSeek-V4强力驱动,正确率高,题目识别准、作答快,所有题目均可作答。支持自动刷课、自动答题、自动完成章节测试,简洁界面、稳定服务,持续适配平台更新。 // @author kail // @match *://*.chaoxing.com/* // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_getResourceText // @connect api.116611.xyz // @connect 120.27.245.246 // @resource typrMd5Lib https://116611.xyz/typr-md5.js // @resource fontTableData https://116611.xyz/table.json // @tag AI答题 // @tag 网课助手 // @tag 免费试用 // @tag 工具类 // @tag 在线教育 // @tag 智学宝 // @tag 长期维护 // @antifeature payment 脚本存在第三方答题接口付费功能 // @icon data:image/jpeg;base64,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 // @license All Rights Reserved // ==/UserScript== const systemConfig = { buildTime: new Date().toISOString(), environment: 'production' }; class Logger { constructor(prefix) { this.prefix = prefix || 'System'; this.levels = ['DEBUG', 'INFO', 'WARN', 'ERROR']; } log(level, message) { if (this.levels.includes(level)) { const timestamp = new Date().toISOString(); } } debug(msg) { this.log('DEBUG', msg); } info(msg) { this.log('INFO', msg); } warn(msg) { this.log('WARN', msg); } error(msg) { this.log('ERROR', msg); } } const logger = new Logger('SmartStudy'); const browserCheck = { isChrome: () => /Chrome/.test(navigator.userAgent), isFirefox: () => /Firefox/.test(navigator.userAgent), isEdge: () => /Edge/.test(navigator.userAgent), isSafari: () => /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) }; class PerformanceMonitor { constructor() { this.metrics = new Map(); this.startTimes = new Map(); } start(name) { this.startTimes.set(name, performance.now()); } end(name) { const startTime = this.startTimes.get(name); if (startTime) { const duration = performance.now() - startTime; this.metrics.set(name, duration); this.startTimes.delete(name); return duration; } return 0; } getMetric(name) { return this.metrics.get(name) || 0; } } const perfMonitor = new PerformanceMonitor(); const utils = { generateId: (length = 8) => { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; for (let i = 0; i < length; i++) { result += chars.charAt(Math.floor(Math.random() * chars.length)); } return result; }, deepClone: (obj) => { if (obj === null || typeof obj !== 'object') return obj; if (obj instanceof Date) return new Date(obj.getTime()); if (obj instanceof Array) return obj.map(item => utils.deepClone(item)); if (typeof obj === 'object') { const cloned = {}; Object.keys(obj).forEach(key => { cloned[key] = utils.deepClone(obj[key]); }); return cloned; } }, debounce: (func, wait) => { let timeout; return function executedFunction(...args) { const later = () => { clearTimeout(timeout); func(...args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; }, throttle: (func, limit) => { let inThrottle; return function() { const args = arguments; const context = this; if (!inThrottle) { func.apply(context, args); inThrottle = true; setTimeout(() => inThrottle = false, limit); } } } }; class CacheManager { constructor(maxSize = 100) { this.cache = new Map(); this.maxSize = maxSize; } set(key, value, ttl = 300000) { // 默认5分钟过期 if (this.cache.size >= this.maxSize) { const firstKey = this.cache.keys().next().value; this.cache.delete(firstKey); } const item = { value: value, expiry: Date.now() + ttl }; this.cache.set(key, item); } get(key) { const item = this.cache.get(key); if (!item) return null; if (Date.now() > item.expiry) { this.cache.delete(key); return null; } return item.value; } clear() { this.cache.clear(); } } const cacheManager = new CacheManager(); logger.info('System initialization completed'); (function() { 'use strict'; (function(){ function _b64ToBytes(b64){ const bin = atob(b64); const out = new Uint8Array(bin.length); for(let i=0;ic-1); const __SALT = String.fromCharCode.apply(null, __S); const __ENC = "idiM9YBNCEBSu80fAcWJtglB3UgCOQSNSUCG2EFbmlWW7AyIJkSb/kgNWgCHsoEA"; function __getDSK(){ try { const step1 = __ENC.split('').reverse().join(''); const xored = _b64ToBytes(step1); const plainB64Bytes = _xor(xored, _strToBytes(__SALT)); const plainB64 = _bytesToStr(plainB64Bytes); return atob(plainB64); } catch (e) { return ''; } } window.__getDeepseekKey = __getDSK; })(); const DEEPSEEK_PROXY_BASE = 'https://api.116611.xyz'; const DEEPSEEK_MODEL = 'deepseek-chat'; const DEEPSEEK_API_URL = `${DEEPSEEK_PROXY_BASE}/v1/chat/completions`; function deepseekChat(messages, options = {}) { return new Promise((resolve, reject) => { try { GM_xmlhttpRequest({ method: 'POST', url: DEEPSEEK_API_URL, headers: { 'Content-Type': 'application/json', 'X-App-Token': __getDSAuth() }, data: JSON.stringify({ model: DEEPSEEK_MODEL, messages, ...options }), timeout: 60000, onload: (r) => { if (r.status >= 200 && r.status < 300) { try { resolve(JSON.parse(r.responseText)); } catch (e) { reject(e); } } else { reject(new Error(`HTTP ${r.status}: ${String(r.responseText || '').slice(0,200)}`)); } }, onerror: () => reject(new Error('Network error')), ontimeout: () => reject(new Error('Timeout')) }); } catch (err) { reject(err); } }); } let isAnswering = false; let isStudyingChapters = false; let studyIntervalId = null; const PANEL_REG_KEY = 'cx_helper_active_panel_v2'; const PANEL_INSTANCE_ID = `${Date.now()}_${Math.random().toString(36).slice(2, 8)}`; const FRAME_DEPTH = (() => { let d = 0; try { let w = window; while (w !== w.top) { d++; w = w.parent; } } catch { d = 999; } return d; })(); let isActiveOwner = false; let createdPanelEl = null; const HEARTBEAT_INTERVAL_MS = 2000; const STALE_MS = 7000; let heartbeatTimerId = null; let lastAutoSkipTs = 0; let emptyChecksCount = 0; let lastEmptySectionKey = ''; let currentStudySectionKey = ''; let chapterQuizHandledSectionKey = ''; let chapterQuizEnteringSectionKey = ''; let chapterQuizEnterRetryAt = 0; function isChapterStudyFrameHostUrl(url) { return /^https:\/\/mooc1\.chaoxing\.com\/mycourse\/studentstudy\?chapterId(?:=|%3D)/.test(String(url || '')); } function isChapterStudyPageContext() { try { if (isChapterStudyFrameHostUrl(window.top.location.href)) return true; } catch {} try { if (isChapterStudyFrameHostUrl(location.href)) return true; } catch {} return false; } function shouldPreferOuterFramePanel() { try { return isChapterStudyFrameHostUrl(window.top.location.href); } catch { return isChapterStudyFrameHostUrl(location.href); } } function isPanelBlockedPage(url) { try { const u = new URL(String(url || location.href), location.origin); if (u.hostname === 'passport2.chaoxing.com') return true; if (u.hostname === 'www.chaoxing.com' && (u.pathname === '/' || u.pathname === '')) return true; } catch {} return false; } const API_BASE = 'http://120.27.245.246:3000'; const MONEY_YUAN = (() => { try { const b64 = 'NS4wMA=='; return atob(b64); } catch { return '5.00'; } })(); const PAY_NAME = '我的学习助手'; const DEFAULT_PAY = 'alipay'; const QR_CODE_BASE64 = 'data:image/png;base64,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fMQE1kD6uv7zRbKuL/7q5MTgZ9mCtgHlgMtjJGXGdAVyZgIxc7OxsfHQQw9dvXr11a9+9fOf//zBYACfnUuTC+mhDmrr6+tPPPHE5cuXb7nllhe96EUf//jHOQd2dnam0ykKNIi+Om29ZXjLZbwB5CdSuFlHi3meP3HmzLkL5++8666bb7pJQsx8Pq2as2cvPvzI3tbO8OZb7jh56oa87Ed2/bQpMgtllhWqLB4zdWW3xzmuytxkSmYIa1evnj137tz5c4+feeKRRx995LFHzzz55Nlz5x5+5OHHnnj8ypUrly9fPXPm7P333//YY4+fv3DhEb4eO3P54pXJZAoRL1y8+vCjZx548JEHHnr04QcfefThRx57lFrrdcWNOSukm8dy6/LWuUfPrZ2/cu6Js2ceeezJx544/+TZK5cuswZ2t7cfI6SOH3n44QcBTZxJq+Lq7u7u+tr6xYsXz54998gjjz34IMY9ceH8xY31jfX1jd2d/bqKrDCFYjjuOYCK83nJRjEazi0uLh9bOXLq6Imbjp+69dSNt9908wtuue3Ft9xx9+nnvez0819++s5X3HzHS2+6/cWnTr/w2M0vWDp1W3/1ZHe0mBVd4UHLpRNMRYVg1nI9SdeEWQE54LAU+SmQ+1Tiz0Fyz75NWAtiTJsMAqCuahobpIe45PAgC4UuXLigqrD/9OnTMBVaA0qpC7k5EODQpz71qfn5+Ve84hUve9nLqPu5z33uYx/7GOsBHZptkcZuRkaE8Yb7WA1i08kEKpw7f35/PL7l1luPHTnKHUVM98fT8xeunLswvrLmdvbdmSc3P/LRBz/0kc/+8Qc//v73feh97/vj+97z/ne+8753v/u+9973vve//48/9KEPf/rTn93d2+dyMplM4NRHPvKR+95z3x+98w//8J1/eN973n3fe+577/ve88EPfeiBBx5kSX/i439Cxn3vfu973vPe++57zx/+0Tu5kzz00COT/cmly2sf/NDH7nvPB979nve/9/1/TLV3v+s973nP+z772c9vbu1aw3siX+81Tzz05Mc/+HHwwfd84L3vvO999733ox/68Oc/d//W+tal85c++Md//O53v+vd73zn+977Xiq/693v/sAH3vfggw9eXbt6+crlhx56+AMfeP99973n3e9mCJS/9wMf4Mb1qYsXLgRmRMXp9WSSryao89C/7A2Go6Wl1eNHTt504qbbTt36vBtuu/PG218EbrgNur/k5G0vPnHri4/dfOfKqectpv+f4U395RPl3IrvjjQr2WJMNGIUVEjWWBuxFyS02UIshLaE7794fAXsx7gYI0RnON57kghs0ghkwmDOhLW1NZjNGjh58uSdd965srIy4zoPANRFH5498cQT73rXuz70oQ+98pWvfN3rXsfe//KXvxy1X/7lX/7sZz9LIzQYOPvbSTWVJnAHmJDj84zA65H3vO+9Fy5dLDtlp9vNCi42Oq2bza29i5fW9yfN1Y29+977wL/75Xf903/2K//qX//KP/8//s0/+sf/9Bf+v//g7/39//n/9f/+f//8z//C//zz/5//6e/+T7/w87/wH375l3mWjTHs7+99/oEHoN6v/8df+5Vf/ZXf+I+/8fbfe/tb3/qbPJG/7/3ve+SRR3Z299/5rne/9a2/86533fe7v/v2X/u1X//N3/wtKH7/5x7Y358+eeb829/+B2//vT/8o3e9553vef87/ujdv/v7f/A7b3vHhz7y8UuXrtZVE5u4s7X78Ocf/tD7PnjfH7z7D373HW//7be/7a2/++4/fNcnPvqJKxevPvnEk/e9612/89bfBn/0B3/wjt/7/bf9zu/83u/9/p988k+w8MrVK59/4P7fffvv/u7bfvdtb//d3/3d3/6NX/+1X//VX6HKk2ee8D4q3Mdr4KtjErUtUVJFvM+75XBufuXYyombj910x/Fb7jp+6wuP3XrX6k0vWL7heQsnTo+Onu4fuaWzdGM+f8INjmh3QYqRFH3LOu2Ry03SAnsWVikftq4ZkA/6SNkpJWItZvJBTBbSLEb4c8FXxn5MSHuwCDyWa4HtnCS8XF9fh74f/vCHh8MhG//i4iJFM67fd999jz/++Pb29pNPPon88MMPl2UJ77n5sE7uvffem2666cyZM3/8x3/8yU9+klrKfOqBc9Q5n3E/kRAaet/c2qSL7a0t2j+yemxubtHlBdee8xc2Pnf/heEou/POIzfdtHLi5PKx4yunbrjh5KmbTp688YYbbr755ltuuuXWkydv6HZ7ly5zNVvj4t7UXMyl7HQw4CV3v+TVr33169/wdW/4+q977T2vec09r3n1a171kpe8hEZ46fHCF7743te9PuHe17/+9V/3jd/4ja985atuvvl00emurB591avv+bo3fMO9b/j617zu9a993evvuffrXnPP657/ghcsLS/leZ65bNgd3nrj6Vfe/ap7X3PvG+59wxvvAgOsiQAAEABJREFU/bp7X/O6l9/9sufddvvy4tLxYyde8bJXvuHer3v9va9/xSte+apXvvK1r33tPfe89vTpW0ej4eLiwo033XD3S1/8unte8/rXv+6ee17zhjd83Rvf+HUvfCH7y5ITnn0h1hcS6NoMfQXf+JzX8xrYoMU7X2Zlv+RlVX++M1jsjJY7w5VysFL0l/PuctZZ9MW8K+bUD8z1TDuihUhukkeuPcJllZe6B33TLtezg0T6SrObMpFnKyStABLX4+nUP9C+XuGrld2zbECvBeccIrUQiEMILVnVe88Gz1MsL3BmhC7LkisQLz3f9773fexjH4P38Btyv/vd76bKS1/60tnhMD8//6pXvYor0Gg0+sQnPvFHf/RH1OKxUkXTlKo677M8Zzk0Tc0RcfHiJdqMZjfccOOJ48eHc6OocnVt/ZFHzz788MVTp+a+6Rtf8M3f8rJv+Ruv/hvf+rpv/45v/c7v/K7v/u7v+743/+AP/uAP/9AP/8i3fvu3v/jFd4/m548cO3b69G2dskPL/dHwZS976Xd993f+2Fve8rf/zs/+3N/5uR99y4++5Sfe8mM//mPf/T3f/apXv5oRffd3ffdP/MRP/uiP/tiPv+XHf/qnf/pnf+Znv//NP/C61927snr0+Xfe9cM/8paf/Jm//eM/+TM/9CM/9sNv+Ykf/Ymf/JG3/Pg3fNM3nrrhVFl2clesLKy89hWv/YHv+f4f+1s/9lM//lM/85M/85Nv+fE3f8/3feMbv+GO06fvftGLfuD7fuCnfvKnf/qnfvpv/eAP/q0f+qG3vOUtP/IjP8xquPmWG289ffOrXv2KN7/5e3/sx3/0J3+S/n/sZ3/up3/2537m2779W0/fdtopz1TScuvpdGF6/kyglWgyWwCihbnStBTfEd+VrC/ZQPzQZoyXTrROsDKE3GKCWCaSqfJO2TN14GkmQHQgoszuDDIL9DkT/kJj9xX1pqpZxvBw9YG5bMZkcqvhZsx9BurffvvtL2DPW1qqqopNmp2eB9/nP//5x44dQ/6DP/gDGPwt3/ItP/dzP3fq1CmqsxI6nc4rX/nKH/uxH+t2u6yNf//v//1nPvPZ/ck4OUqZhjCejFlmdMlT6f2fv593IDfdfBN8LTolPzVdvnjpXfe9+9Of/sjiotx15x2vec29r73n3he/9OW333HnC194990vf9UrXv3al73ilS992ctf+fJXzs8tVHUTQ8TIb/22b109sqqeEYjPXLffXVicnxvNDfuD4WAwz7G/snLq1A13vfCue1/3uhMnjg0GPSzs9wfdTpeb3nA4On3r7S+888W33Hzb3PzSaGFptLQynF8YzM2xJucWRmWn29QSGmFfK/N8dWnlxLFT88P5uT59zC0srqyuHD159OStN52+6dTNy4vLw95w2B+RubqyOj+a63d7x44dff7z7rjj9ltvOHVieWlhbm4wHPVAt5sXpR8Oe91eCdOUaWSv+Irm8ksoq7K1OedFM1Mv5oTfFhongZfFubDHO7b5PIirTVv4RopgRWyp71ymPvc+dz5Tl5yb/Ju6s+QIBL6J/woAtz0rK6ApmKnOBgPjSXpGmeePPfbY29/+du4tXJFZBuzNv/3bv82lmY2cA4GNE37zw9ZHPvIRSMNOz67Plg+hAe2QyQq56667Xve61x05coRnOqq/653vvHT5Umh4FamZ96y66bT61Kc+/ce8et9Yp99er8eDAHWvXrn60INnxtPwkpc+/4abjo9GgzIvOkVByx/5yIcf+PzneT4u83LQH/T7w4cfeeTcufO33XH7C+6889ixY+gxLrPoM1/kKdBR7hEKi3HtytonPv7xjbX1V77qVaO5EazIcl9NJ2fOPPmHf/BH589fuOHGG7/12779Nfe8rj835yhzkLKTZYW6zLnMO+edALyspnlWdDq9stPPiw6y9xkvcx597Anerdxw6sb5+UVK87zAvWeeOMMuwGOu9+4Nb3j9G97whjvvfMGQcZXYmBVlFmLY298zic6xhRoHcMO1kEXGlHzVUFpgPanjD2NEvWgmLk/QIoqP5kILUxUlOAarDq6j5sV5VW+cSOIs8d2JqKRAKooEkVlMFvktrI3JaKESZ+lZ3Ob9uURY9mzbtWthVoEUgm8Dtxr2ddbA1tbWlStXPvKRj/zH//gfeYplGbC1z83NkQ+huWsvLi6ePn2azE996lM8JDzEu4yHH/7MZz7Dk8Du7u6tt956xx13bG5u8gKU5fTZz35mfW1NTYqiMJON9Y1PfOJPPvLRj+zt7XNfDyE69dubWyywi5fWh8O5V7z87qNH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'; const LS_KEY_DEV_ID = 'smartstudy_device_id_v2'; const LS_KEY_FREE = 'smartstudy_free_used_v2'; const LS_KEY_LICENSED = 'smartstudy_licensed_v2'; const POLL_MS_PAY = 3000; const POLL_MAX_PAY = 100; const getFreeLimit = (() => { let cached = null; return function() { if (cached != null) return cached; try { const b64 = 'IzIw'; const decoded = atob(b64); const n = parseInt(decoded.replace(/\D/g, ''), 10); cached = Number.isFinite(n) ? n : 20; } catch { cached = 20; } return cached; }; })(); function getDeviceIdPaid() { try { let id = ''; // Prefer cookie so all chaoxing subdomains share one deviceId. id = getCookie(LS_KEY_DEV_ID); if (!id) id = localStorage.getItem(LS_KEY_DEV_ID) || ''; if (!id) { id = ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); } try { localStorage.setItem(LS_KEY_DEV_ID, id); } catch {} try { setCookie(LS_KEY_DEV_ID, id, 3650, '.chaoxing.com'); } catch {} return id; } catch { return 'dev_' + Math.random().toString(36).slice(2); } } const DEVICE_ID_PAID = getDeviceIdPaid(); function getCookie(key) { try { const name = key + '='; const parts = document.cookie.split(';'); for (let part of parts) { const s = part.trim(); if (s.indexOf(name) === 0) return decodeURIComponent(s.substring(name.length)); } return ''; } catch { return ''; } } function setCookie(key, value, days, domain) { try { const d = new Date(); d.setTime(d.getTime() + ((days || 365) * 24 * 60 * 60 * 1000)); const expires = 'expires=' + d.toUTCString(); const dm = domain ? ';domain=' + domain : ''; document.cookie = key + '=' + encodeURIComponent(value) + ';path=/' + ';' + expires + dm; } catch {} } function isLocallyLicensed() { try { const c = getCookie(LS_KEY_LICENSED); if (c === '1') return true; return localStorage.getItem(LS_KEY_LICENSED) === '1'; } catch { return false; } } function setLocallyLicensed() { try { localStorage.setItem(LS_KEY_LICENSED, '1'); } catch {} try { setCookie(LS_KEY_LICENSED, '1', 365, '.chaoxing.com'); } catch {} } function getFreeUsedCount() { try { return parseInt(localStorage.getItem(LS_KEY_FREE) || '0', 10) || 0; } catch { return 0; } } function incFreeUsedCount() { try { const n = getFreeUsedCount() + 1; localStorage.setItem(LS_KEY_FREE, String(n)); return n; } catch { return 0; } } async function checkLicensePaid(forceCloud = false) { if (isLocallyLicensed()) return true; if (!forceCloud) return false; return new Promise((resolve) => { GM_xmlhttpRequest({ method: 'GET', url: `${API_BASE}/api/license/status?deviceId=${encodeURIComponent(DEVICE_ID_PAID)}`, onload: (resp) => { try { const data = JSON.parse(resp.responseText); const ok = !!(data && data.licensed); if (ok) setLocallyLicensed(); resolve(ok); } catch { resolve(false); } }, onerror: () => resolve(false), timeout: 10000 }); }); } async function startPaymentPaid(payType) { return new Promise((resolve) => { GM_xmlhttpRequest({ method: 'POST', url: `${API_BASE}/api/create`, headers: { 'Content-Type': 'application/json' }, data: JSON.stringify({ name: PAY_NAME, money: MONEY_YUAN, type: payType || DEFAULT_PAY, param: DEVICE_ID_PAID }), onload: (resp) => { if (resp.status >= 500) { alert('服务器错误:' + resp.responseText); resolve(false); return; } try { const data = JSON.parse(resp.responseText); if (data.success && data.payUrl) { window.open(data.payUrl, '_blank'); resolve(true); } else { alert('创建支付订单失败'); resolve(false); } } catch (e) { alert('解析支付信息失败'); resolve(false); } }, onerror: (e) => { alert('发起支付失败:' + (e.error || '网络错误')); resolve(false); }, timeout: 30000 }); }); } async function pollUntilLicensedPaid(onProgress) { for (let i = 0; i < POLL_MAX_PAY; i++) { if (onProgress) { try { onProgress(i); } catch {} } const ok = await checkLicensePaid(true); if (ok) { setLocallyLicensed(); return true; } await new Promise(r => setTimeout(r, POLL_MS_PAY)); } return false; } function showPayModalPaid(messageText) { return new Promise(resolve => { const mask = document.createElement('div'); mask.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:999998;backdrop-filter:blur(4px);'; const box = document.createElement('div'); box.style.cssText = 'position:fixed;left:50%;top:120px;transform:translateX(-50%);width:420px;background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,0.1), 0 10px 10px -5px rgba(0,0,0,0.04);overflow:hidden;z-index:999999;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial;'; const msg = messageText || '试用已用完,打赏5元永久解锁哦'; box.innerHTML = ( '
解锁全部功能(永久)
' + '
' + '
' + msg + '
' + '
' + '
使用支付宝扫码支付,支付完成后点击下方按钮验证
' + '
' + '
' + '' + '' + '
' ); document.body.appendChild(mask); document.body.appendChild(box); const tip = box.querySelector('#cx_tip_paid'); const btnPay = box.querySelector('#cx_go_pay'); const btnCancel = box.querySelector('#cx_cancel_paid'); function close() { try { box.remove(); mask.remove(); } catch {} } btnCancel.onclick = () => { close(); resolve(false); }; btnPay.onclick = async () => { btnPay.disabled = true; btnPay.textContent = '打开收银台...'; const payType = (box.querySelector('input[name="cx_pay"]:checked') || {}).value || DEFAULT_PAY; const ok = await startPaymentPaid(payType); if (!ok) { btnPay.disabled = false; btnPay.textContent = '去支付'; return; } btnPay.textContent = '检测支付中...'; if (tip) tip.innerHTML = '已打开收银台,请完成支付,完成后此处会自动解锁...
💡 若无法打开支付页面请尝试连接手机热点网络'; const done = await pollUntilLicensedPaid(); if (done) { if (tip) tip.textContent = '支付成功,正在解锁...'; setLocallyLicensed(); try { updateTrialBadge(); } catch {} setTimeout(() => { close(); resolve(true); }, 500); } else { btnPay.disabled = false; btnPay.textContent = '去支付'; if (tip) tip.textContent = '未检测到支付完成,可重试或稍后再次打开本面板。'; } }; }); } function showFeedbackModal() { const mask = document.createElement('div'); mask.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:999998;backdrop-filter:blur(4px);'; const box = document.createElement('div'); box.style.cssText = 'position:fixed;left:50%;top:120px;transform:translateX(-50%);width:400px;background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,0.1), 0 10px 10px -5px rgba(0,0,0,0.04);overflow:hidden;z-index:999999;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial;'; box.innerHTML = ( '
意见反馈
' + '
' + '
' + '如果您在使用过程中遇到问题或有任何建议,欢迎通过以下方式联系我们:' + '
' + '
' + '
联系邮箱
' + '
your@email.com
' + '
点击邮箱地址即可复制
' + '
' + '
我们将会认真对待每一条反馈,并且尽快回复您的问题。您的建议是我们改进产品的重要动力!
' + '
' + '
' + '' + '
' ); document.body.appendChild(mask); document.body.appendChild(box); const closeBtn = box.querySelector('#feedback-close'); function close() { try { box.remove(); mask.remove(); } catch {} } closeBtn.onclick = close; mask.onclick = close; const emailDiv = box.querySelector('[onclick*="clipboard"]'); if (emailDiv) { emailDiv.addEventListener('click', function() { const originalText = this.innerHTML; this.innerHTML = '✅ 已复制到剪贴板'; this.style.color = '#2563eb'; setTimeout(() => { this.innerHTML = originalText; this.style.color = '#333'; }, 2000); }); } } let paymentCancelled = false; async function ensureAccessAllowed() { if (await checkLicensePaid()) return true; const used = getFreeUsedCount(); if (used < getFreeLimit()) { incFreeUsedCount(); try { updateTrialBadge(); } catch {} return true; } if (paymentCancelled) throw new Error('试用已用完,请解锁后继续使用'); const ok = await showPayModalPaid(); if (ok) { setLocallyLicensed(); try { updateTrialBadge(); } catch {} return true; } paymentCancelled = true; throw new Error('试用已用完,请解锁后继续使用'); } function getActivePanelRecord() { try { const raw = localStorage.getItem(PANEL_REG_KEY); return raw ? JSON.parse(raw) : null; } catch { return null; } } function setActivePanelRecord(rec) { try { localStorage.setItem(PANEL_REG_KEY, JSON.stringify(rec)); } catch {} } function clearActivePanelRecordIfOwner() { try { const cur = getActivePanelRecord(); if (cur && cur.id === PANEL_INSTANCE_ID) { localStorage.removeItem(PANEL_REG_KEY); } } catch {} } function shouldWeOwn(current) { const nowTs = Date.now(); if (!current) return { own: true, ts: nowTs }; if (!current.aliveTs || nowTs - current.aliveTs > STALE_MS) return { own: true, ts: nowTs }; const currentDepth = Number.isFinite(current.depth) ? current.depth : 0; if (shouldPreferOuterFramePanel()) { if (FRAME_DEPTH < currentDepth) return { own: true, ts: nowTs }; if (FRAME_DEPTH > currentDepth) return { own: false, ts: nowTs }; } else { if (FRAME_DEPTH > currentDepth) return { own: true, ts: nowTs }; if (FRAME_DEPTH < currentDepth) return { own: false, ts: nowTs }; } try { if (current.url && current.url !== location.href) return { own: true, ts: nowTs }; } catch {} if (FRAME_DEPTH === currentDepth && nowTs > (current.ts || 0)) return { own: true, ts: nowTs }; return { own: false, ts: nowTs }; } function claimOwnership() { const cur = getActivePanelRecord(); const decision = shouldWeOwn(cur); if (decision.own) { setActivePanelRecord({ id: PANEL_INSTANCE_ID, depth: FRAME_DEPTH, ts: decision.ts, aliveTs: Date.now(), url: location.href }); isActiveOwner = true; } else { isActiveOwner = false; } return isActiveOwner; } function startHeartbeat() { if (heartbeatTimerId) return; heartbeatTimerId = setInterval(() => { if (!isActiveOwner) return; const cur = getActivePanelRecord(); if (!cur || cur.id !== PANEL_INSTANCE_ID) { stopHeartbeat(); return; } cur.aliveTs = Date.now(); try { cur.url = location.href; } catch {} setActivePanelRecord(cur); }, HEARTBEAT_INTERVAL_MS); } function stopHeartbeat() { if (heartbeatTimerId) { clearInterval(heartbeatTimerId); heartbeatTimerId = null; } } const cleanupOwnership = () => { stopHeartbeat(); clearActivePanelRecordIfOwner(); }; window.addEventListener('beforeunload', cleanupOwnership); window.addEventListener('pagehide', cleanupOwnership); function destroyPanelAndStop() { try { if (studyIntervalId) { clearInterval(studyIntervalId); studyIntervalId = null; } isStudyingChapters = false; isAnswering = false; stopHeartbeat(); const panel = document.getElementById('answer-helper-panel'); if (panel && panel.parentNode) panel.parentNode.removeChild(panel); createdPanelEl = null; } catch {} } window.addEventListener('storage', (e) => { if (e.key !== PANEL_REG_KEY) return; if (isPanelBlockedPage(location.href)) return; const rec = getActivePanelRecord(); if (!rec) return; if (rec.id === PANEL_INSTANCE_ID) { if (!createdPanelEl) { try { createdPanelEl = createPanel(); bindPanelEvents(); } catch {} } isActiveOwner = true; startHeartbeat(); } else { isActiveOwner = false; destroyPanelAndStop(); } }); GM_addStyle(` /* Panel: Modern Light Theme */ #answer-helper-panel { --ah-panel-height: 340px; position: fixed; top: 24px; left: 24px; width: 320px; min-width: 320px; max-width: 320px; height: var(--ah-panel-height) !important; min-height: var(--ah-panel-height) !important; max-height: var(--ah-panel-height) !important; background: #ffffff; border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 16px; padding: 0; z-index: 9999; box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05); font-family: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: #1f2937; user-select: none; overflow: hidden; transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, height 0.3s ease; } /* Header */ #answer-helper-header { cursor: move; height: 52px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; background: #ffffff; border-bottom: 1px solid #f3f4f6; font-size: 15px; color: #111827; } #answer-helper-header .title { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; color: #111827; } #answer-helper-header .title .accent { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15); } #answer-helper-header .cx-header-actions { display: inline-flex; align-items: center; gap: 10px; } #answer-helper-header .cx-collapse-btn { width: 32px; height: 32px; border-radius: 8px; background: #f9fafb; border: 1px solid #f3f4f6; cursor: pointer; color: #6b7280; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } #answer-helper-header .cx-collapse-btn:hover { background: #f3f4f6; color: #111827; border-color: #e5e7eb; transform: scale(1.05); } .cx-collapse-btn-inner { width: 16px; height: 16px; position: relative; } .cx-collapse-icon-bar.horizontal { width: 14px; height: 2px; background: currentColor; border-radius: 1px; position: absolute; left: 1px; top: 7px; } .cx-collapse-icon-bar.vertical { width: 2px; height: 14px; background: currentColor; border-radius: 1px; position: absolute; left: 7px; top: 1px; } /* Content */ #answer-helper-content { padding: 12px 16px; overflow-y: auto; height: calc(var(--ah-panel-height) - 52px); max-height: calc(var(--ah-panel-height) - 52px); } #answer-helper-panel.collapsed #answer-helper-content { display: none; } #answer-helper-panel.collapsed { width: 240px; min-width: 240px; max-width: 240px; height: 52px !important; min-height: 52px !important; border-radius: 12px; } /* Body: main on top, actions at bottom */ #answer-helper-content .panel-body { display: grid; grid-template-columns: 1fr; grid-template-rows: auto auto; grid-template-areas: "main" "actions"; gap: 12px; align-items: start; } .panel-main { min-width: 0; grid-area: main; } .panel-actions { grid-area: actions; } .panel-actions.panel-row { display: flex; flex-direction: column; gap: 10px; } .panel-actions.panel-row .primary-pair { display: flex; gap: 10px; width: 100%; } .panel-actions.panel-row .primary-pair .pair-slot { flex: 1; display: flex; } .panel-actions.panel-row .primary-pair .pair-slot .ah-btn { flex: 1; min-height: 44px; border-radius: 12px; } .panel-actions.panel-row .ah-btn { min-height: 40px; padding: 8px 12px; border-radius: 10px; } /* Toast */ #no-task-toast { position: fixed; top: 24px; right: 24px; background: #ffffff; border: 1px solid rgba(0,0,0,0.05); color: #111827; padding: 12px 20px; border-radius: 12px; font-size: 14px; font-weight: 500; z-index: 10000; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1); animation: fadeInOut 3s cubic-bezier(0.4, 0, 0.2, 1) forwards; } @keyframes fadeInOut { 0% { opacity: 0; transform: translateY(-20px) scale(0.95); } 10% { opacity: 1; transform: translateY(0) scale(1); } 90% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-20px) scale(0.95); } } /* Terminal Log */ #answer-log { height: 140px; overflow-y: auto; border: 1px solid #f3f4f6; border-radius: 12px; padding: 10px; margin-bottom: 8px; font-size: 12px; line-height: 1.6; font-family: 'JetBrains Mono', 'Fira Code', 'Menlo', monospace; background: #f9fafb; color: #4b5563; } #answer-log::-webkit-scrollbar { width: 6px; } #answer-log::-webkit-scrollbar-track { background: transparent; } #answer-log::-webkit-scrollbar-thumb { background: #e5e7eb; border-radius: 10px; } #answer-log::-webkit-scrollbar-thumb:hover { background: #d1d5db; } .log-item { margin: 4px 0; padding: 6px 10px; border-radius: 8px; background: #ffffff; border: 1px solid #f3f4f6; box-shadow: 0 1px 2px rgba(0,0,0,0.02); } .success { color: #059669; border-left: 3px solid #10b981; } .error { color: #dc2626; border-left: 3px solid #ef4444; } .info { color: #374151; border-left: 3px solid #6b7280; } .debug { color: #6b7280; border-left: 3px solid #9ca3af; } /* Buttons */ .ah-btn { flex: 1; padding: 8px 14px; border: 1px solid #e5e7eb; border-radius: 10px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; justify-content: center; gap: 6px; color: #374151; background: #ffffff; } .ah-btn:hover { background: #f9fafb; border-color: #d1d5db; transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05); } .ah-btn:active { transform: translateY(0); box-shadow: none; } .ah-primary { background: #6366f1; color: #ffffff; border-color: #4f46e5; } .ah-primary:hover { background: #4f46e5; border-color: #4338ca; box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3); } .ah-danger { background: #ffffff; color: #ef4444; border-color: #fee2e2; } .ah-danger:hover { background: #fef2f2; border-color: #fca5a5; } .ah-secondary { background: #f9fafb; color: #4b5563; border-color: #f3f4f6; } .ah-secondary:hover { background: #f3f4f6; border-color: #e5e7eb; } .ah-success { background: #10b981; color: #ffffff; border-color: #059669; } .ah-success:hover { background: #059669; box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3); } /* Speed buttons */ .speed-button { transition: all 0.2s ease; border-radius: 8px; } .speed-active { background: #6366f1 !important; color: #ffffff !important; border-color: #4f46e5 !important; } #playback-speed-controls.segmented { display: flex; gap: 6px; justify-content: flex-end; margin-top: 6px; } #playback-speed-controls.segmented .ah-btn { min-width: 60px; padding: 6px 8px; font-size: 12px; } /* Trial Badge */ #answer-helper-panel .cx-trial-badge { position: absolute; left: 16px; bottom: 12px; color: #9ca3af; font-size: 11px; } #answer-helper-panel .cx-trial-badge .trial-buy-btn { display: inline-block; margin-left: 8px; padding: 2px 8px; font-size: 11px; border: 1px solid #e0e7ff; background: #eef2ff; color: #4f46e5; border-radius: 6px; cursor: pointer; font-weight: 600; } #answer-helper-panel .cx-trial-badge .trial-buy-btn:hover { background: #e0e7ff; border-color: #c7d2fe; } `); function createPanel() { let isChapterPage = false; try { isChapterPage = window.top.location.href.startsWith('https://mooc1.chaoxing.com/mycourse/studentstudy?chapterId'); } catch (e) { // Fallback in case of cross-origin frame access error isChapterPage = location.href.startsWith('https://mooc1.chaoxing.com/mycourse/studentstudy?chapterId'); } const panel = document.createElement('div'); panel.id = 'answer-helper-panel'; panel.innerHTML = `
智学宝
检测中...
`; document.body.appendChild(panel); try { panel.style.setProperty('--ah-panel-height', '340px'); } catch {} try { const rect = panel.getBoundingClientRect(); const winW = window.innerWidth || document.documentElement.clientWidth; const winH = window.innerHeight || document.documentElement.clientHeight; const left = Math.max(12, Math.round((winW - rect.width) / 2)); let isQuizPage = false; try { forEachAllSameOriginDocs((doc) => { if (isQuizPage) return; if (isQuizPageDoc(doc)) isQuizPage = true; }); } catch {} const centerTop = Math.round((winH - rect.height) / 2); const offset = Math.round(winH * 0.1); const desiredTop = isQuizPage ? Math.round(winH * 0.08) : (centerTop - offset); const top = Math.max(12, Math.min(desiredTop, Math.max(12, winH - rect.height - 12))); panel.style.left = left + 'px'; panel.style.top = top + 'px'; panel.style.right = 'auto'; } catch {} let isDragging = false, offsetX = 0, offsetY = 0; const header = panel.querySelector('#answer-helper-header'); header.addEventListener('mousedown', function(e) { if (e.target.closest('.cx-collapse-btn')) return; isDragging = true; const rect = panel.getBoundingClientRect(); offsetX = e.clientX - rect.left; offsetY = e.clientY - rect.top; document.body.style.userSelect = 'none'; }); document.addEventListener('mousemove', function(e) { if (!isDragging) return; panel.style.left = (e.clientX - offsetX) + 'px'; panel.style.top = (e.clientY - offsetY) + 'px'; panel.style.right = 'auto'; }); document.addEventListener('mouseup', function() { isDragging = false; document.body.style.userSelect = ''; }); const collapseBtn = panel.querySelector('.cx-collapse-btn'); const collapseBtnInner = collapseBtn.querySelector('.cx-collapse-btn-inner'); collapseBtn.addEventListener('click', function() { panel.classList.toggle('collapsed'); collapseBtnInner.innerHTML = ''; if (panel.classList.contains('collapsed')) { const h = document.createElement('span'); h.className = 'cx-collapse-icon-bar horizontal'; const v = document.createElement('span'); v.className = 'cx-collapse-icon-bar vertical'; collapseBtnInner.appendChild(h); collapseBtnInner.appendChild(v); } else { const h = document.createElement('span'); h.className = 'cx-collapse-icon-bar horizontal'; collapseBtnInner.appendChild(h); } }); return panel; } function setPanelFixedHeight(px) { const panel = document.getElementById('answer-helper-panel'); if (!panel) return; const val = Math.max(200, Math.round(px || 0)) + 'px'; try { panel.style.setProperty('--ah-panel-height', val); } catch {} try { const rect = panel.getBoundingClientRect(); const winH = window.innerHeight || document.documentElement.clientHeight; const maxTop = Math.max(12, winH - rect.height - 12); if (rect.top > maxTop) panel.style.top = maxTop + 'px'; } catch {} } function bindPanelEvents() { document.getElementById('start-answer')?.addEventListener('click', () => { addLog('本助手仅供学习研究,请遵守课程与平台规则。', 'info'); addLog('开始自动答题...'); autoAnswer(); }); document.getElementById('pause-answer')?.addEventListener('click', () => { isAnswering = false; addLog('正在暂停自动答题...', 'info'); }); const startStudyBtn = document.getElementById('start-study'); const pauseStudyBtn = document.getElementById('pause-study'); if (startStudyBtn && pauseStudyBtn) { startStudyBtn.addEventListener('click', () => { addLog('本助手仅供学习研究,请遵守课程与平台规则。', 'info'); startStudyChapters(); }); pauseStudyBtn.addEventListener('click', () => { stopStudyChapters(); }); } document.getElementById('speed-1x')?.addEventListener('click', () => { setVideoPlaybackSpeed(1.0); }); document.getElementById('speed-1.5x')?.addEventListener('click', () => { setVideoPlaybackSpeed(1.5); if (isChapterStudyPageContext()) { addLog('⚠️ 章节视频请勿倍速观看,倍速观看可能导致账号异常哦', 'warning'); } }); document.getElementById('speed-2x')?.addEventListener('click', () => { setVideoPlaybackSpeed(2.0); if (isChapterStudyPageContext()) { addLog('⚠️ 章节视频请勿倍速观看,倍速观看可能导致账号异常哦', 'warning'); } }); updateSpeedButtonsState(); document.getElementById('cx-feedback-btn')?.addEventListener('click', () => { showFeedbackModal(); }); setTimeout(updateTrialBadge, 0); } function safeClick(el) { try { if (!el) return false; el.click(); el.dispatchEvent(new MouseEvent('click', { bubbles: true })); return true; } catch { return false; } } function forEachSameOriginFrame(callback) { const visit = (win) => { for (let i = 0; i < win.frames.length; i++) { const f = win.frames[i]; try { const doc = f.document || f.contentDocument; if (doc && doc.location && doc.location.href.includes('.chaoxing.com')) { callback(doc); visit(f); } } catch { } } }; try { callback(document); } catch {} try { visit(window); } catch {} } function forEachAllSameOriginDocs(callback) { const seen = new Set(); const visit = (win) => { if (!win || seen.has(win)) return; seen.add(win); try { const doc = win.document || win.contentDocument; if (doc) callback(doc); } catch {} try { const len = win.frames ? win.frames.length : 0; for (let i = 0; i < len; i++) { try { visit(win.frames[i]); } catch {} } } catch {} }; try { visit(window.top); } catch { visit(window); } } const QUESTION_CONTAINER_SELECTOR = '.question, .questionLi, .subject_item, .examPaper_subject, .questionContainer, .q-item, .subject_node, .ti-item, .exam-item, .TiMu, .singleQuesId'; function isNullPageDoc(doc) { try { const nullEl = doc.querySelector('.nullpage'); if (!nullEl) return false; const txt = (nullEl.textContent || '').trim(); return txt.includes('暂无内容'); } catch {} return false; } function isLikelyQuestionContainer(el) { try { if (!el) return false; if (el.closest('.translationBox, .func-pop, .colorPop, .nullpage')) return false; if (el.id === 'fanyaMarking') return false; if (el.querySelector('.singleQuesId, .questionLi') && !el.classList.contains('singleQuesId') && !el.classList.contains('questionLi')) return false; if (el.querySelector('.stem_answer, .subject_describe, .questionContent, .subject_stem, .type_title, .subject_type, .stem_type, [id^="answertype"], .Zy_TItle, ul.Zy_ulTop')) return true; if (el.querySelector('input[type="radio"], input[type="checkbox"], textarea, [id^="answerEditor"], iframe[id^="ueditor_"], div[contenteditable="true"]')) return true; const t = (el.textContent || '').trim(); if (/单选题|多选题|判断题|填空题|简答题|名词解释|论述题|计算题|完形填空|写作题|连线题|分录题/.test(t)) return true; } catch {} return false; } function isUtilityElement(el) { try { if (!el || !el.closest) return false; return !!el.closest('.translationBox, .func-pop, .colorPop, #markDiv, .code-tool-wrap'); } catch {} return false; } function isVisibleElement(el) { try { if (!el) return false; const win = (el.ownerDocument && el.ownerDocument.defaultView) || window; const st = win.getComputedStyle ? win.getComputedStyle(el) : null; if (st && (st.display === 'none' || st.visibility === 'hidden')) return false; const r = el.getBoundingClientRect ? el.getBoundingClientRect() : null; return !!(r && r.width > 0 && r.height > 0); } catch {} return true; } function getInteractiveInputs(doc) { try { const list = Array.from(doc.querySelectorAll('input[type="radio"], input[type="checkbox"], textarea, select, input[type="text"], div[contenteditable="true"], [id^="answerEditor"], iframe[id^="ueditor_"]')); return list.filter(el => !isUtilityElement(el) && isVisibleElement(el)); } catch {} return []; } function getQuestionContainers(doc) { try { if (!doc || isNullPageDoc(doc)) return []; const all = Array.from(doc.querySelectorAll(QUESTION_CONTAINER_SELECTOR)); return all.filter(isLikelyQuestionContainer); } catch {} return []; } function isQuizReviewDoc(doc) { try { if (!doc) return false; const hasQuizShell = !!doc.querySelector('.newTestCon, #RightCon .newTestTitle, form[name="form1"]'); if (!hasQuizShell) return false; const hasAnswerView = !!doc.querySelector('.newAnswerBx .myAnswer, .answerFont, .answerScore, .myAllAnswerBx'); if (!hasAnswerView) return false; const hasEditable = !!doc.querySelector('input[type="radio"], input[type="checkbox"], textarea:not([readonly]), input[type="text"]:not([readonly]), [id^="answerEditor"], iframe[id^="ueditor_"], div[contenteditable="true"]'); const hasSubmit = !!doc.querySelector('button[type="submit"], input[type="submit"], .submit-btn, [onclick*="submit"], .btnBlueSubmit'); return !hasEditable && !hasSubmit; } catch {} return false; } function isQuizEffectivelyCompletedDoc(doc) { try { if (!doc) return false; if (isQuizReviewDoc(doc)) return true; const pageText = String((doc.body && (doc.body.innerText || doc.body.textContent)) || '').replace(/\s+/g, ' ').trim(); if (/待批阅|已完成|已交|提交成功|成绩|得分|查看结果|答题结果|作答记录/.test(pageText)) { const hasSubmit = !!doc.querySelector('button[type="submit"], input[type="submit"], .submit-btn, [onclick*="submit"], .btnBlueSubmit'); if (!hasSubmit) return true; } if (isQuizPageDoc(doc) && !hasUnansweredQuestions(doc)) { const hasSubmit = !!doc.querySelector('button[type="submit"], input[type="submit"], .submit-btn, [onclick*="submit"], .btnBlueSubmit'); const hasEditable = !!doc.querySelector('input[type="radio"], input[type="checkbox"], textarea:not([readonly]), input[type="text"]:not([readonly]), [id^="answerEditor"], iframe[id^="ueditor_"], div[contenteditable="true"]'); if (!hasSubmit || !hasEditable) return true; } } catch {} return false; } async function waitForQuestionsRenderAny(timeoutMs = 8000) { const end = Date.now() + timeoutMs; while (Date.now() < end) { let hit = null; forEachAllSameOriginDocs((doc) => { if (hit) return; try { const qs = getQuestionContainers(doc); if (qs && qs.length > 0) hit = doc; } catch {} }); if (hit) return hit; await new Promise(r => setTimeout(r, 300)); } return null; } function scheduleSkipChapter(delay) { if (pendingSkipTimeoutId) { clearTimeout(pendingSkipTimeoutId); } pendingSkipTimeoutId = setTimeout(function() { pendingSkipTimeoutId = null; if (isStudyingChapters) skipChapter(); }, delay); } function skipChapter() { if (!isStudyingChapters) return; if (isSkippingChapter) return; if (Date.now() - lastChapterNavTs < 8000) { return; } addLog("跳过章节", 'info'); isSkippingChapter = true; lastChapterNavTs = Date.now(); processingBatch = false; arrayEchelon = []; autoSkipDone = false; stopProgressMonitor(); blankSectionChecks = 0; lastBlankSectionUrl = ''; var chapterNext = window.top.document.querySelector("#prevNextFocusNext"); if (chapterNext) { chapterNext.click(); } else { addLog("未找到 #prevNextFocusNext 元素", 'warning'); } setTimeout(function() { try { var tip = document.querySelector(".maskDiv.jobFinishTip.maskFadeOut"); if (tip) { var tipNextChapter = document.querySelector(".jb_btn.jb_btn_92.fr.fs14.nextChapter"); if (tipNextChapter) { tipNextChapter.click(); } } } catch(e) { addLog("未找到完成提示或下一章节按钮", 'warning'); } isSkippingChapter = false; }, 6000); } function videoHandler(entry) { var idocument = entry.document; addLog("处理视频任务中...", 'info'); var retries = 0; var maxRetries = 10; function tryFindVideo() { try { var video = idocument.querySelector("video"); var videoPlayButton = idocument.querySelector(".vjs-big-play-button"); var modalDialog = idocument.querySelector(".vjs-modal-dialog-content"); var closeButton = idocument.querySelector(".vjs-done-button"); if (!video || !videoPlayButton) { var iframes = idocument.querySelectorAll("iframe"); for (var i = 0; i < iframes.length; i++) { try { var innerDoc = iframes[i].contentDocument || iframes[i].contentWindow.document; video = innerDoc.querySelector("video"); videoPlayButton = innerDoc.querySelector(".vjs-big-play-button"); modalDialog = innerDoc.querySelector(".vjs-modal-dialog-content"); closeButton = innerDoc.querySelector(".vjs-done-button"); if (video && videoPlayButton) break; } catch(e) {} } } if (!video || !videoPlayButton) { retries++; if (retries < maxRetries) { setTimeout(tryFindVideo, 2000); } else { addLog("没有找到视频或播放按钮", 'error'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 3000); } return; } video.muted = true; if (!Number.isNaN(video.playbackRate)) video.playbackRate = currentPlaybackSpeed; var playVideo = function() { if (video && typeof video.play === 'function') { video.muted = true; video.play().catch(function(error) { videoPlayButton.click(); }); } else { videoPlayButton.click(); } }; var clickPlayVideo = function() { if (videoPlayButton && typeof videoPlayButton.click === 'function') { videoPlayButton.click(); } else { video.muted = true; video.play().catch(function() { videoPlayButton.click(); }); } }; var closeModalDialog = function() { if (modalDialog && closeButton && modalDialog.getAttribute("aria-hidden") !== "true") { setTimeout(function() { closeButton.click(); }, 2000); } }; var handlePause = function() { if (video.ended) return; clickPlayVideo(); closeModalDialog(); }; video.addEventListener("pause", handlePause); video.addEventListener("ended", function() { addLog("视频任务已完成", 'success'); video.removeEventListener("pause", handlePause); setTimeout(function() { document.dispatchEvent(dealEvent); }, 500); }, { once: true }); setTimeout(function() { if (video.paused && !video.ended) { playVideo(); } }, 10000); playVideo(); } catch(e) { retries++; if (retries < maxRetries) { setTimeout(tryFindVideo, 2000); } else { addLog('视频处理出错: ' + e.message, 'error'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); } } } tryFindVideo(); } function handlePPTInDocument(doc) { try { const nextSelectors = ['.next', '.vc-next', '.reader-next', 'a[title="下一页"]', '.btn-next', '#next']; for (const sel of nextSelectors) { const btn = doc.querySelector(sel); if (btn && !btn.className.includes('disabled') && !btn.getAttribute('disabled')) { if (safeClick(btn)) { return true; } } } return false; } catch { return false; } } function findChapterQuizTab(doc) { try { const byTitle = doc.querySelector('li[title*="章节测验"], li[title*="测验"], a[title*="章节测验"], a[title*="测验"]'); if (byTitle) return byTitle; const byOnClick = Array.from(doc.querySelectorAll('li[onclick], a[onclick], button[onclick]')).find(el => { const oc = (el.getAttribute('onclick') || '').toString(); return oc.includes('changeDisplayContent') && (oc.includes('(2,2') || oc.includes(',2)')); }); if (byOnClick) return byOnClick; const candidates = Array.from(doc.querySelectorAll('li, a, button, [role="tab"], [role="option"]')); const textEl = candidates.find(el => /章节测验|测验/.test(((el.textContent || el.getAttribute('title') || '') + '').trim())); if (textEl) return textEl; } catch {} return null; } async function waitForQuestionsRender(doc, timeoutMs = 6000) { const end = Date.now() + timeoutMs; while (Date.now() < end) { try { const qs = getQuestionContainers(doc); if (qs.length > 0) return true; } catch {} await new Promise(r => setTimeout(r, 300)); } return false; } let TYPR_MD5_LIB, FONT_TABLE_DATA; try { TYPR_MD5_LIB = GM_getResourceText('typrMd5Lib'); FONT_TABLE_DATA = GM_getResourceText('fontTableData'); if (TYPR_MD5_LIB) { window.TYPR_MD5_LIB = TYPR_MD5_LIB; } if (FONT_TABLE_DATA) { window.FONT_TABLE_DATA = FONT_TABLE_DATA; } } catch (e) { console.error('加载外部资源失败:', e); TYPR_MD5_LIB = ''; FONT_TABLE_DATA = '{}'; } function injectConsoleDecryptCode(doc, timeoutMs = 3000) { return new Promise((resolve) => { try { const consoleCode = ` if (!window.Typr || !window.md5) { ${TYPR_MD5_LIB || window.TYPR_MD5_LIB || ''} } if (!window.chaoXingFontTable) { window.chaoXingFontTable = ${FONT_TABLE_DATA || window.FONT_TABLE_DATA || '{}'}; } const decryptChaoXingFont = async () => { const { Typr, md5, chaoXingFontTable: table } = window; const base64ToUint8Array = (base64) => { const data = atob(base64); const buffer = new Uint8Array(data.length); for (let i = 0; i < data.length; i++) { buffer[i] = data.charCodeAt(i); } return buffer; }; const styleElements = [...document.querySelectorAll('style')]; const cxStyle = styleElements.find(el => el.textContent.includes('font-cxsecret') ); if (!cxStyle) { return; } const fontData = cxStyle.textContent.match(/base64,([\\w\\W]+?)'/)[1]; const parsedFont = Typr.parse(base64ToUint8Array(fontData))[0]; const charMap = {}; for (let charCode = 19968; charCode < 40870; charCode++) { const glyph = Typr.U.codeToGlyph(parsedFont, charCode); if (!glyph) continue; const path = Typr.U.glyphToPath(parsedFont, glyph); const pathHash = md5(JSON.stringify(path)).slice(24); charMap[String.fromCharCode(charCode)] = String.fromCharCode(table[pathHash]); } document.querySelectorAll('.font-cxsecret').forEach(element => { let htmlContent = element.innerHTML; Object.entries(charMap).forEach(([encryptedChar, decryptedChar]) => { const regex = new RegExp(encryptedChar, 'g'); htmlContent = htmlContent.replace(regex, decryptedChar); }); element.innerHTML = htmlContent; element.classList.remove('font-cxsecret'); }); }; decryptChaoXingFont().catch(console.error); `; const beforeCnt = (() => { try { return doc.querySelectorAll('.font-cxsecret').length; } catch { return -1; } })(); let script = doc.createElement('script'); script.type = 'text/javascript'; let blobUrl = ''; try { const blob = new Blob([consoleCode], { type: 'text/javascript' }); blobUrl = (doc.defaultView || window).URL.createObjectURL(blob); script.src = blobUrl; } catch { script.textContent = consoleCode; } (doc.head || doc.documentElement).appendChild(script); script.onload = () => { try { if (blobUrl) (doc.defaultView || window).URL.revokeObjectURL(blobUrl); } catch {} }; const start = Date.now(); const timer = setInterval(() => { try { const cnt = doc.querySelectorAll('.font-cxsecret').length; if (cnt === 0 || (beforeCnt >= 0 && cnt < beforeCnt)) { clearInterval(timer); resolve(); return; } } catch {} if (Date.now() - start > timeoutMs) { clearInterval(timer); resolve(); } }, 200); } catch { resolve(); } }); } async function tryEnterQuizAndAnswer(contextDoc) { try { if (!isStudyingChapters) return false; if (isChapterQuizEnteringForCurrentSection()) return true; let targetDoc = null; let tabEl = null; forEachAllSameOriginDocs((doc) => { if (tabEl) return; const el = findChapterQuizTab(doc); if (el) { tabEl = el; targetDoc = doc; } }); if (!tabEl || !targetDoc) return false; addLog('正在进入章节测验...', 'info'); markChapterQuizEnteringForCurrentSection(12000); await new Promise((r) => { let pending = 0; let done = false; forEachAllSameOriginDocs((doc) => { pending++; injectConsoleDecryptCode(doc).finally(() => { if (--pending === 0 && !done) { done = true; r(); } }); }); if (pending === 0) r(); }); safeClick(tabEl); const qDoc = await waitForQuestionsRenderAny(4000); if (!isStudyingChapters) return false; if (!qDoc) { clearChapterQuizEnteringForCurrentSection(); markChapterQuizHandledForCurrentSection(); addLog('章节测验未检测到题目', 'warning'); return false; } clearChapterQuizEnteringForCurrentSection(); await injectConsoleDecryptCode(qDoc); if (!isStudyingChapters) return false; await autoAnswerInDocument(qDoc); addLog('章节测验已完成', 'success'); markChapterQuizHandledForCurrentSection(); return true; } catch (e) { clearChapterQuizEnteringForCurrentSection(); addLog(`进入章节测验失败: ${e.message}`, 'error'); return false; } } function hasActionableStudyContent(doc) { try { if (isNullPageDoc(doc)) return false; if (isQuizReviewDoc(doc)) return false; if (isQuizPageDoc(doc)) return true; if (doc.querySelector('#form1, .newTestCon, .TiMu, .singleQuesId, [id^="answertype"], .Zy_TItle, ul.Zy_ulTop')) return true; if (doc.querySelector('video, .video-js video')) return true; const docSelectors = [ '.ans-attach-ct', '.reader', '.ppt', '.ppt-play', '.vjs-control', '.vjs-big-play-button' ]; if (docSelectors.some(sel => !!doc.querySelector(sel))) return true; if (getQuestionContainers(doc).length > 0) return true; if (getInteractiveInputs(doc).length > 0) return true; const iframes = Array.from(doc.querySelectorAll('iframe')); if (iframes.some(f => { const src = (f.getAttribute('src') || '').toLowerCase(); return src.includes('mooc-ans') || src.includes('document') || src.includes('ppt') || src.includes('video') || src.includes('knowledgeid'); })) return true; } catch {} return false; } function hasUnansweredQuestions(doc) { try { if (isNullPageDoc(doc)) return false; if (isQuizReviewDoc(doc)) return false; const containers = getQuestionContainers(doc); for (const q of containers) { try { if (!isQuestionAnswered(q)) return true; } catch {} } const radios = getInteractiveInputs(doc).filter(el => el.tagName && el.tagName.toLowerCase() === 'input' && el.type === 'radio'); if (radios.length > 0) { const groups = new Map(); radios.forEach(r => { const k = r.name || `__radio_${Math.random()}`; if (!groups.has(k)) groups.set(k, []); groups.get(k).push(r); }); for (const [, list] of groups) { if (!list.some(r => r.checked)) return true; } } const texts = getInteractiveInputs(doc).filter(el => { const tag = (el.tagName || '').toLowerCase(); return tag === 'textarea' || (tag === 'input' && el.type === 'text') || (tag === 'div' && el.getAttribute('contenteditable') === 'true'); }); if (texts.length > 0) { if (texts.some(el => { if (el.tagName && el.tagName.toLowerCase() === 'div') return ((el.innerText || el.textContent || '').trim().length === 0); return ((el.value || '').trim().length === 0); })) return true; } if (doc.querySelector('[id^="answertype"], .TiMu, .singleQuesId, .Zy_TItle, ul.Zy_ulTop')) return !isQuizReviewDoc(doc); } catch {} return false; } function getDocPathname(doc) { try { return new URL(doc.location.href).pathname || ''; } catch {} return ''; } function getQueryParamFromUrl(url, key) { try { return new URL(String(url || ''), location.origin).searchParams.get(key) || ''; } catch {} return ''; } function buildSectionKeyFromUrl(url) { const chapterId = getQueryParamFromUrl(url, 'chapterId'); const knowledgeId = getQueryParamFromUrl(url, 'knowledgeId') || getQueryParamFromUrl(url, 'knowledgeid'); if (!chapterId && !knowledgeId) return ''; return `chapter:${chapterId || ''}|knowledge:${knowledgeId || ''}`; } function getCurrentStudySectionKey() { const urls = []; try { urls.push(window.top.location.href); } catch {} try { urls.push(window.location.href); } catch {} forEachAllSameOriginDocs((doc) => { try { urls.push(doc.location.href); } catch {} }); for (const url of urls) { const key = buildSectionKeyFromUrl(url); if (key) return key; } return ''; } function markChapterQuizHandledForCurrentSection() { const key = currentStudySectionKey || getCurrentStudySectionKey(); if (!key) return; chapterQuizHandledSectionKey = key; chapterQuizEnteringSectionKey = ''; chapterQuizEnterRetryAt = 0; } function isChapterQuizHandledForCurrentSection() { const key = currentStudySectionKey || getCurrentStudySectionKey(); if (!key) return false; return chapterQuizHandledSectionKey === key; } function markChapterQuizEnteringForCurrentSection(waitMs = 12000) { const key = currentStudySectionKey || getCurrentStudySectionKey(); if (!key) return; chapterQuizEnteringSectionKey = key; chapterQuizEnterRetryAt = Date.now() + waitMs; } function clearChapterQuizEnteringForCurrentSection() { chapterQuizEnteringSectionKey = ''; chapterQuizEnterRetryAt = 0; } function isChapterQuizEnteringForCurrentSection() { const key = currentStudySectionKey || getCurrentStudySectionKey(); if (!key) return false; if (chapterQuizEnteringSectionKey !== key) return false; if (Date.now() >= chapterQuizEnterRetryAt) { clearChapterQuizEnteringForCurrentSection(); return false; } return true; } function findNestedDoc(root, predicate, depth = 0) { if (!root || depth > 4) return null; try { if (predicate(root)) return root; } catch {} try { const iframes = Array.from(root.querySelectorAll('iframe')); for (const iframe of iframes) { try { const nextDoc = iframe.contentDocument || iframe.contentWindow?.document; const result = findNestedDoc(nextDoc, predicate, depth + 1); if (result) return result; } catch {} } } catch {} return null; } function handlePPTInDocument(doc) { try { const nextSelectors = ['.next', '.vc-next', '.reader-next', 'a[title="下一页"]', '.btn-next', '#next']; for (const sel of nextSelectors) { const btn = doc.querySelector(sel); if (btn && !btn.className.includes('disabled') && !btn.getAttribute('disabled')) { if (safeClick(btn)) { return true; } } } return false; } catch { return false; } } var arrayEchelon = []; var completedJobCache = new Set(); var studyPageDefaults = null; var studyPageTasks = null; var dealEvent = new Event("redeal", { bubbles: false, cancelable: false }); var testDom = null; var ifTest = 'take'; var testType = 'submit'; var taskInterval = 6000; var isMainInstance = false; var autoSkipDone = false; var progressMonitor = null; function getReaderMissionApiPaths(mission) { const type = String((mission && mission.type) || '').toLowerCase(); if (type === 'ppt' || type === 'pdf' || type === 'reader') { return ['/ananas/job/document', '/ananas/job/readv2', '/ananas/job']; } return ['/ananas/job/document']; } async function handleQuizTest(doc) { try { if (!doc) return; await injectConsoleDecryptCode(doc); if (isQuizEffectivelyCompletedDoc(doc)) { addLog('章节测验已处于完成状态', 'success'); return; } const handled = await autoAnswerQuizInDocument(doc); if (handled) { addLog('章节测验已完成', 'success'); } } catch (e) { addLog(`章节答题出错: ${e.message}`, 'error'); } } async function autoAnswerInDocument(rootDoc) { try { if (!isStudyingChapters) return false; if (isQuizPageDoc(rootDoc)) { if (!isStudyingChapters) return false; const ok = await autoAnswerQuizInDocument(rootDoc); if (ok) return true; } const questions = getQuestionContainers(rootDoc); if (questions.length === 0) return false; addLog(`章节内发现 ${questions.length} 个题目,自动作答...`, 'info'); for (let q of questions) { if (!isStudyingChapters) return false; const info = getQuestionInfo(q); if (!info || !info.question) continue; const ans = await getAnswer(info); if (ans) { fillAnswer(ans, q, info.type); await new Promise(r => setTimeout(r, 1000)); } } return true; } catch (e) { addLog(`章节答题出错: ${e.message}`, 'error'); return false; } } function isStudyPage() { return /mycourse\/studentstudy|mooc2-ans|knowledgeId|chapterId/.test(location.href); } function hasStudyContentDeep() { let found = false; const tryDoc = (doc) => { try { if (doc.querySelector('video, .video-js, .ans-attach-ct, .reader, .ppt, .ppt-play, .catalog, .vjs-play-control')) { found = true; return; } if (getQuestionContainers(doc).length > 0) { found = true; return; } } catch {} }; forEachSameOriginFrame(tryDoc); return found; } let currentPlaybackSpeed = 1.0; const PLAYBACK_SPEED_KEY = 'cx_playback_speed'; const LS_KEY_ANSWERING_STATE = 'cx_answering_state'; function saveAnsweringState() { try { const state = { active: true, startTime: Date.now() }; localStorage.setItem(LS_KEY_ANSWERING_STATE, JSON.stringify(state)); setTimeout(() => { clearAnsweringState(); }, 15 * 1000); } catch {} } function clearAnsweringState() { try { localStorage.removeItem(LS_KEY_ANSWERING_STATE); } catch {} } function getAnsweringState() { try { const raw = localStorage.getItem(LS_KEY_ANSWERING_STATE); if (!raw) return null; const state = JSON.parse(raw); if (!state.active) return null; const elapsed = Date.now() - state.startTime; if (elapsed > 15 * 1000) { clearAnsweringState(); return null; } return state; } catch { return null; } } try { const savedSpeed = localStorage.getItem(PLAYBACK_SPEED_KEY); if (savedSpeed) { currentPlaybackSpeed = parseFloat(savedSpeed); } } catch {} function updateSpeedButtonsState() { const speedButtons = document.querySelectorAll('.speed-button'); speedButtons.forEach(btn => { btn.classList.remove('speed-active'); }); const activeButton = document.getElementById(`speed-${currentPlaybackSpeed}x`); if (activeButton) { activeButton.classList.add('speed-active'); } } function setVideoPlaybackSpeed(speed) { currentPlaybackSpeed = speed; try { localStorage.setItem(PLAYBACK_SPEED_KEY, speed.toString()); } catch {} updateSpeedButtonsState(); forEachSameOriginFrame((doc) => { try { const videos = doc.querySelectorAll('video, .video-js video'); videos.forEach(v => { if (!Number.isNaN(v.playbackRate)) v.playbackRate = speed; }); } catch {} }); addLog(`视频播放速度已设置为 ${speed}×`, 'success'); } function updateStudyButtons(running) { const startBtn = document.getElementById('start-study'); const pauseBtn = document.getElementById('pause-study'); const speedControls = document.getElementById('playback-speed-controls'); if (!startBtn || !pauseBtn) return; if (running) { startBtn.style.display = 'none'; pauseBtn.style.display = 'flex'; if (speedControls) speedControls.style.display = 'flex'; } else { startBtn.style.display = 'flex'; pauseBtn.style.display = 'none'; if (speedControls) speedControls.style.display = 'none'; } } function initAllInDoc(targetDoc) { if (!isStudyingChapters) return; autoSkipDone = false; isMainInstance = true; addLog('正在加载当前页面的任务...', 'info'); var rawPayload = extractStudyPayloadFromPage(targetDoc); if (rawPayload && rawPayload.defaults) { studyPageDefaults = rawPayload.defaults; } if (rawPayload && Array.isArray(rawPayload.attachments)) { studyPageTasks = rawPayload.attachments; } var arrayAns = targetDoc.querySelectorAll(".ans-attach-ct"); if (arrayAns.length === 0) { arrayAns = targetDoc.querySelectorAll(".ans-job-ct"); } if (arrayAns.length === 0) { arrayAns = targetDoc.querySelectorAll(".chapter-item"); } if (arrayAns.length === 0) { arrayAns = targetDoc.querySelectorAll('[class*="ans"], [class*="task"], [class*="chapter"]'); } addLog(`当前页面任务数量为: ${arrayAns.length}`, 'info'); var filteredArrayAns = targetDoc.querySelectorAll('.ans-attach-ct:not(.ans-job-finished), .ans-job-ct:not(.ans-job-finished)'); var taskCount = filteredArrayAns.length; if (taskCount > 0) { try { var arrayType = getIframesType(filteredArrayAns); var arrayDocument = getAllIframesDocument(filteredArrayAns); arrayEchelon = distributeAns(arrayType, arrayDocument); if (completedJobCache.size > 0) { var before = arrayEchelon.length; arrayEchelon = arrayEchelon.filter(function(item) { if (!item.dataStr) return true; try { var d = JSON.parse(item.dataStr); var jobid = d.jobid || (d.property && d.property.jobid) || ''; return !completedJobCache.has(jobid); } catch(e) { return true; } }); if (arrayEchelon.length < before) { addLog('已过滤 ' + (before - arrayEchelon.length) + ' 个缓存中已完成的任务', 'info'); } } startProgressMonitor(); document.dispatchEvent(dealEvent); } catch (error) { addLog('初始化过程中发生错误: ' + error, 'error'); } } else { addLog('当前页面没有可处理的任务,等待确认', 'info'); var retryKey = 'cx_retry_' + (targetDoc.location ? targetDoc.location.href : ''); if (!targetDoc[retryKey]) { targetDoc[retryKey] = true; setTimeout(function() { targetDoc[retryKey] = false; var retryTasks = targetDoc.querySelectorAll('.ans-attach-ct:not(.ans-job-finished), .ans-job-ct:not(.ans-job-finished)'); if (retryTasks.length > 0) { initAllInDoc(targetDoc); return; } addLog('确认无待处理任务,跳过章节', 'info'); scheduleSkipChapter(3000); }, 4000); } } } var studyObserver = null; var lastChapterNavTs = 0; var lastLoadingLogTs = 0; var processingBatch = false; var isSkippingChapter = false; var pendingSkipTimeoutId = null; var initRetryCount = 0; var blankSectionChecks = 0; var lastBlankSectionUrl = ''; async function startStudyChapters() { if (isStudyingChapters) { addLog('刷章节已在运行', 'info'); return; } try { await ensureAccessAllowed(); } catch (e) { addLog(String(e && e.message ? e.message : e), 'error'); return; } isStudyingChapters = true; setPanelFixedHeight(360); updateStudyButtons(true); addLog('正在初始化中', 'info'); initRetryCount = 0; setTimeout(function() { if (!isStudyingChapters) return; addLog('开始刷章节...', 'success'); function findCardsDoc() { var cd = null; forEachSameOriginFrame(function(doc) { if (cd) return; try { if (doc.location.pathname.includes('/knowledge/cards')) { cd = doc; } } catch(e) {} }); if (!cd && location.pathname.includes('/knowledge/cards')) { cd = document; } return cd; } function checkAndInit(cardsDoc) { if (!cardsDoc) return false; if (processingBatch) return false; if (Date.now() - lastChapterNavTs < 5000) { if (Date.now() - lastLoadingLogTs > 8000) { lastLoadingLogTs = Date.now(); addLog('页面内容加载中,请稍等', 'info'); } return false; } var unfinished = cardsDoc.querySelectorAll('.ans-attach-ct:not(.ans-job-finished), .ans-job-ct:not(.ans-job-finished)'); if (unfinished.length === 0) { var anyExists = cardsDoc.querySelectorAll('.ans-attach-ct, .ans-job-ct, .chapter-item').length; if (anyExists > 0) { blankSectionChecks = 0; lastBlankSectionUrl = ''; addLog('检测到章节任务均已完成,准备跳转', 'info'); scheduleSkipChapter(2000); return false; } var currentUrl = (cardsDoc.location ? cardsDoc.location.href : '') || location.href; if (currentUrl !== lastBlankSectionUrl) { blankSectionChecks = 0; lastBlankSectionUrl = currentUrl; } blankSectionChecks++; if (blankSectionChecks >= 2) { blankSectionChecks = 0; addLog('检测到空白小节,自动跳过', 'info'); scheduleSkipChapter(500); } else { addLog('检测到空白小节,等待确认', 'info'); } return false; } blankSectionChecks = 0; lastBlankSectionUrl = ''; processingBatch = true; addLog('发现 ' + unfinished.length + ' 个待处理任务', 'info'); initAllInDoc(cardsDoc); return true; } function setupObserver(cardsDoc) { if (!cardsDoc) return; try { if (studyObserver) studyObserver.disconnect(); } catch(e) {} var target = cardsDoc.querySelector('.wrap, .ans-cc, #coursetest, [class*="catalog"]') || cardsDoc.body || cardsDoc.documentElement; if (!target) return; try { studyObserver = new MutationObserver(function() { if (!isStudyingChapters || processingBatch) return; if (Date.now() - lastChapterNavTs < 5000) { if (Date.now() - lastLoadingLogTs > 8000) { lastLoadingLogTs = Date.now(); addLog('页面内容加载中,请稍等', 'info'); } return; } var cd = findCardsDoc(); if (!cd) return; var freshTasks = cd.querySelectorAll('.ans-attach-ct:not(.ans-job-finished), .ans-job-ct:not(.ans-job-finished)'); if (freshTasks.length > 0 && arrayEchelon.length === 0) { addLog('检测到章节内容变化,重新初始化任务', 'info'); checkAndInit(cd); } }); studyObserver.observe(target, { childList: true, subtree: true }); } catch(e) {} } var initialCardsDoc = findCardsDoc(); if (initialCardsDoc) { addLog('正在检测任务', 'info'); setupObserver(initialCardsDoc); checkAndInit(initialCardsDoc); } else { addLog('正在定位学习页面...', 'info'); } if (studyIntervalId) clearInterval(studyIntervalId); studyIntervalId = setInterval(function() { if (!isStudyingChapters) { clearInterval(studyIntervalId); studyIntervalId = null; return; } if (processingBatch) return; if (Date.now() - lastChapterNavTs < 5000) { if (Date.now() - lastLoadingLogTs > 8000) { lastLoadingLogTs = Date.now(); addLog('页面内容加载中,请稍等', 'info'); } return; } if (arrayEchelon.length > 0 && isMainInstance) { return; } var cardsDoc = findCardsDoc(); if (!cardsDoc) { initRetryCount++; if (initRetryCount === 3) { addLog('正在等待学习页面加载完成...', 'info'); } if (initRetryCount % 10 === 0) { addLog('仍在等待学习页面,请确认在课程章节页面中', 'warning'); } return; } initRetryCount = 0; setupObserver(cardsDoc); checkAndInit(cardsDoc); }, 3000); }, 3000); } function stopStudyChapters() { if (!isStudyingChapters) return; isStudyingChapters = false; isMainInstance = false; processingBatch = false; isSkippingChapter = false; if (pendingSkipTimeoutId) { clearTimeout(pendingSkipTimeoutId); pendingSkipTimeoutId = null; } autoSkipDone = false; arrayEchelon = []; completedJobCache.clear(); studyPageDefaults = null; studyPageTasks = null; setPanelFixedHeight(320); if (studyIntervalId) { clearInterval(studyIntervalId); studyIntervalId = null; } try { if (studyObserver) { studyObserver.disconnect(); studyObserver = null; } } catch(e) {} forEachSameOriginFrame((doc) => { try { doc.querySelectorAll('video, .video-js video').forEach(v => { try { v.pause(); } catch {} }); } catch {} }); updateStudyButtons(false); addLog('已暂停刷章节', 'info'); } function getIframesType(arrayAns) { return Array.from(arrayAns).map(function(ans) { const iframe = ans.querySelector("iframe"); const jsonStr = iframe ? iframe.getAttribute("data") : null; let type = null; if (!jsonStr) { const src = iframe ? iframe.getAttribute("src") : null; if (src) { if (src.includes('work') || src.includes('exam') || src.includes('test') || src.includes('quiz') || src.includes('homework')) { type = "workA"; } else if (src.includes('video') || src.includes('.mp4')) { type = ".mp4"; } else if (src.includes('.pdf') || src.includes('.ppt')) { type = ".pdf"; } } } else { try { const json = JSON.parse(jsonStr); if (json && json.type) { type = json.type; } else if (json && json.worktype) { type = json.worktype; } else if (json && json.resourceType) { type = json.resourceType; } } catch (error) {} } if (!type) { const className = ans.className || ''; if (className.includes('work') || className.includes('exam') || className.includes('test')) { type = "workA"; } } return type; }).filter(function(type) { return type !== null; }); } function getAllIframesDocument(arrayAns) { return Array.from(arrayAns).map(function(ans) { var iframe = ans.querySelector('iframe'); var idoc = iframe ? (iframe.contentWindow ? iframe.contentWindow.document : null) : null; var dataStr = iframe ? iframe.getAttribute('data') : null; return { doc: idoc, dataStr: dataStr }; }).filter(function(item) { return item !== undefined && item !== null; }); } const handlerMap = { ".mp4": videoHandler, ".wmv": videoHandler, ".avi": videoHandler, ".mkv": videoHandler, ".flv": videoHandler, ".mov": videoHandler, ".doc": pptxHandler, ".docx": pptxHandler, ".pptx": pptxHandler, ".pdf": pptxHandler, ".ppt": pptxHandler, ".mp3": audioHandler, ".wav": audioHandler, "workA": testHandler, "workB": testHandler, "workC": testHandler, "workD": testHandler, "homework": testHandler, "exam": testHandler, "test": testHandler, "quiz": testHandler }; function distributeAns(arrayType, arrayItems) { return arrayType.map(function(type, index) { var handler = handlerMap[type] || ignoreAns; return { document: arrayItems[index].doc, handler: handler, type: type, dataStr: arrayItems[index].dataStr }; }); } function dealSingleAns(singleAns) { if (!isStudyingChapters) { processingBatch = false; return; } if (singleAns && singleAns.handler && typeof singleAns.handler === 'function') { singleAns.handler(singleAns); } else { document.dispatchEvent(dealEvent); } } function dealAnsEchelon(echelonArray) { if (!isStudyingChapters) { processingBatch = false; return; } var remainingTasks = echelonArray.length; if (remainingTasks === 0) { stopProgressMonitor(); processingBatch = false; addLog('该章节任务已处理完成,即将跳转下一章节', 'success'); scheduleSkipChapter(3000); return; } processingBatch = true; var nextTask = echelonArray.shift(); try { dealSingleAns(nextTask); } catch (error) { addLog('处理任务时发生错误,继续处理下一个', 'error'); dealAnsEchelon(echelonArray); } } function testHandler(entry) { var idocument = entry.document; addLog("处理章节测试任务中...", 'info'); if (ifTest == 'skip') { setTimeout(function() { addLog("根据配置选项,跳过章节测试", 'info'); document.dispatchEvent(dealEvent); }, 1000); return; } var retryCount = 0; var maxRetries = 10; function tryFindQuestions() { try { var foundDoc = null; var foundQuestions = null; var iframe = idocument.querySelector("iframe"); if (iframe) { try { var sDocument = iframe.contentWindow ? iframe.contentWindow.document : null; if (sDocument) { var form = sDocument.querySelector("form"); if (form) { foundQuestions = form.querySelectorAll('.singleQuesId'); if (foundQuestions.length > 0) foundDoc = sDocument; } } } catch(e) {} } if (!foundDoc || foundQuestions.length === 0) { var qContainers = getQuestionContainers(idocument); if (qContainers.length > 0) { addLog('在页面中直接找到章节测验内容', 'info'); handleQuizTest(idocument).then(function() { addLog('章节测验答题完成', 'success'); submitQuizAndContinue(idocument); }).catch(function(e) { addLog('答题失败: ' + e.message, 'error'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); }); return; } } if (foundDoc && foundQuestions && foundQuestions.length > 0) { addLog('找到 ' + foundQuestions.length + ' 道章节测试题,开始答题', 'info'); handleQuizTest(foundDoc).then(function() { addLog('章节测试答题完成', 'success'); submitQuizAndContinue(foundDoc); }).catch(function(e) { addLog('答题失败: ' + e.message, 'error'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); }); return; } if (retryCount >= 3) { tryEnterQuizAndAnswer(document).then(function(handled) { if (handled) { addLog('章节测验标签页答题完成', 'success'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); } else { retryCount++; if (retryCount < maxRetries) { addLog("等待章节测验加载 (" + retryCount + "/" + maxRetries + ")", 'info'); setTimeout(tryFindQuestions, 2500); } else { addLog("无法找到章节测验内容,跳过", 'warning'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 1000); } } }); return; } retryCount++; if (retryCount < maxRetries) { addLog("等待章节测验加载 (" + retryCount + "/" + maxRetries + ")", 'info'); setTimeout(tryFindQuestions, 2500); } else { addLog("无法找到章节测验内容,跳过", 'warning'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 1000); } } catch(e) { retryCount++; if (retryCount < maxRetries) { addLog("等待章节测验加载 (" + retryCount + "/" + maxRetries + ")", 'info'); setTimeout(tryFindQuestions, 2500); } else { addLog("无法找到章节测验内容,跳过", 'warning'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 1000); } } } function submitQuizAndContinue(doc) { var btnDoc = doc.querySelector(".ZY_sub"); if (!btnDoc) btnDoc = doc; var submit_btn = btnDoc.querySelector('.btnSubmit') || doc.querySelector('.btnSubmit'); var save_btn = btnDoc.querySelector('.btnSave') || doc.querySelector('.btnSave'); if (submit_btn) { submit_btn.click(); addLog('章节测试答案已提交', 'success'); } else if (save_btn) { save_btn.click(); addLog('章节测试答案已保存', 'info'); } else { addLog('未找到提交/保存按钮', 'warning'); } setTimeout(function() { document.dispatchEvent(dealEvent); }, 3000); } tryFindQuestions(); } function audioHandler(entry) { var idocument = entry.document; addLog("处理音频任务中...", 'info'); var retries = 0; var maxRetries = 8; function tryFindAudio() { try { const audio = idocument.querySelector("audio"); const audioPlayButton = idocument.querySelector(".vjs-play-control.vjs-control.vjs-button, .vjs-big-play-button"); if (!audio) { retries++; if (retries < maxRetries) { setTimeout(tryFindAudio, 2000); } else { addLog("没有找到音频元素,跳过", 'warning'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 1000); } return; } if (audioPlayButton) audioPlayButton.click(); audio.addEventListener("ended", function() { addLog("音频任务已完成", 'success'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 500); }, { once: true }); audio.addEventListener("pause", function() { if (audioPlayButton) audioPlayButton.click(); }); } catch(e) { retries++; if (retries < maxRetries) { setTimeout(tryFindAudio, 2000); } else { addLog('音频处理出错: ' + e.message, 'error'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); } } } tryFindAudio(); } function getUrlParam(name) { var searchStr = ''; try { searchStr = window.top.location.search; } catch(e) { searchStr = location.search; } var match = searchStr.match(new RegExp('[?&]' + name + '=([^&]*)')); return match ? decodeURIComponent(match[1]) : ''; } function extractStudyPayloadFromPage(pageDoc) { if (!pageDoc || !pageDoc.scripts) return null; var scripts = Array.from(pageDoc.scripts); for (var i = 0; i < scripts.length; i++) { var content = String(scripts[i].textContent || ''); if (!content.includes('mArg') || !content.includes('attachments')) continue; var match = content.match(/try\s*\{\s*mArg\s*=\s*([\s\S]*?)\s*;\s*\}\s*catch/); if (!match || !match[1]) continue; var raw = match[1].trim(); if (!raw || raw === '""' || raw === '$mArg') continue; try { return JSON.parse(raw); } catch(e) {} } return null; } async function callDocApi(path, jobid, jtoken) { var courseid = (studyPageDefaults && (studyPageDefaults.courseId || studyPageDefaults.courseid)) || getUrlParam('courseId'); var clazzid = (studyPageDefaults && (studyPageDefaults.clazzId || studyPageDefaults.clazzid)) || getUrlParam('clazzId'); var knowledgeid = (studyPageDefaults && (studyPageDefaults.knowledgeId || studyPageDefaults.knowledgeid)) || getUrlParam('knowledgeId'); var url = new URL(path, location.origin); if (jobid) url.searchParams.set('jobid', jobid); if (knowledgeid) url.searchParams.set('knowledgeid', knowledgeid); if (courseid) url.searchParams.set('courseid', courseid); if (clazzid) url.searchParams.set('clazzid', clazzid); if (jtoken) url.searchParams.set('jtoken', jtoken); url.searchParams.set('_dc', String(Date.now())); try { var response = await fetch(url.toString(), { credentials: 'include' }); return response.ok; } catch(e) { return false; } } function pptxHandler(entry) { var idocument = entry.document; addLog("处理 PPT/PDF 任务中...", 'info'); var retries = 0; var maxRetries = 6; function markTaskDomFinished(jobid) { completedJobCache.add(jobid); setTimeout(function() { completedJobCache.delete(jobid); }, 120000); try { var cd = null; forEachSameOriginFrame(function(doc) { if (cd) return; try { if (doc.location.pathname.includes('/knowledge/cards')) cd = doc; } catch(e) {} }); if (!cd) return; var attachCts = cd.querySelectorAll('.ans-attach-ct'); for (var i = 0; i < attachCts.length; i++) { var iframe = attachCts[i].querySelector('iframe'); if (!iframe) continue; var dataStr = iframe.getAttribute('data'); if (!dataStr) continue; try { var d = JSON.parse(dataStr); var dj = d.jobid || (d.property && d.property.jobid) || ''; if (dj === jobid) { attachCts[i].classList.add('ans-job-finished'); break; } } catch(e) {} } } catch(e) {} } function tryApiThenDoc() { var taskData = null; if (entry.dataStr) { try { taskData = JSON.parse(entry.dataStr); } catch(e) {} } if (taskData && (taskData.jobid || (taskData.property && taskData.property.jobid))) { var jobid = taskData.jobid || (taskData.property && taskData.property.jobid); if (completedJobCache.has(jobid)) { addLog('该文档任务已完成(缓存中),跳过', 'info'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 500); return; } var jtoken = taskData.jtoken || ''; if (!jtoken && studyPageTasks) { for (var t = 0; t < studyPageTasks.length; t++) { var pt = studyPageTasks[t]; var ptJobid = (pt && pt.property && pt.property.jobid) || (pt && pt.jobid) || ''; if (ptJobid === jobid) { jtoken = pt.jtoken || ''; break; } } } var apiPaths = getReaderMissionApiPaths({ type: entry.type }); addLog('正在阅读', 'info'); tryApiRecursive(apiPaths, 0, jobid, jtoken); } else { addLog('未获取到任务数据,直接翻页处理', 'info'); fallbackToPageTurning(); } } function tryApiRecursive(paths, index, jobid, jtoken) { if (index >= paths.length) { addLog('API回调全部失败,转为翻页处理', 'warning'); fallbackToPageTurning(); return; } callDocApi(paths[index], jobid, jtoken).then(function(success) { if (success) { markTaskDomFinished(jobid); addLog('文档任务已完成 (' + paths[index] + ')', 'success'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 1500); } else { addLog('任务失败,尝试下一个', 'info'); tryApiRecursive(paths, index + 1, jobid, jtoken); } }); } function fallbackToPageTurning() { try { var handled = handlePPTInDocument(idocument); if (!handled) { var hasReader = idocument.querySelector('.reader, .ppt, .ppt-play, .reader-box, .reader_container, .np-viewer, .file-reader, .slide-content, .swiper-slide'); if (!hasReader) { retries++; if (retries < maxRetries) { setTimeout(tryApiThenDoc, 2000); } else { addLog('未找到文档阅读器,跳过', 'warning'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 1000); } return; } } setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); } catch(e) { retries++; if (retries < maxRetries) { setTimeout(tryApiThenDoc, 2000); } else { addLog('文档处理出错: ' + e.message, 'error'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); } } } tryApiThenDoc(); } function ignoreAns(entry) { var idocument = entry.document; addLog('忽略未知任务类型', 'info'); setTimeout(function() { document.dispatchEvent(dealEvent); }, 2000); } function removeNewlines(str) { return str.replace(/\n/g, ''); } function extractText(str) { var match = str.match(/【(.*?)】/); return match ? match[1] : null; } function getTrueStatusPercentage(arr) { var trueCount = arr.filter(function(item) { return item.status === true; }).length; return (trueCount / arr.length) * 100; } function formatTime(seconds) { var m = Math.floor(seconds / 60); var s = Math.floor(seconds % 60); return m + ':' + (s < 10 ? '0' : '') + s; } function startProgressMonitor() { if (progressMonitor) return; progressMonitor = setInterval(function() { var anyDone = false; forEachSameOriginFrame(function(doc) { if (anyDone) return; try { var at = doc.querySelectorAll('.ans-attach-ct, .ans-job-ct, .chapter-item'); var dt = doc.querySelectorAll('.ans-attach-ct.ans-job-finished, .ans-job-ct.ans-job-finished'); if (at.length > 0) { var taskPct = ((dt.length / at.length) * 100).toFixed(0); if (dt.length === at.length && !autoSkipDone) { autoSkipDone = true; addLog('[进度] 当前章节所有任务已全部完成,准备自动跳转下一章', 'info'); stopProgressMonitor(); scheduleSkipChapter(3000); } anyDone = true; } } catch(e) {} }); }, 30000); } function stopProgressMonitor() { if (progressMonitor) { clearInterval(progressMonitor); progressMonitor = null; } } document.addEventListener("redeal", function() { if (!isMainInstance || !isStudyingChapters) return; setTimeout(function() { dealAnsEchelon(arrayEchelon); }, 1500); }); const LOG_MAX_ITEMS = 120; function addLog(message, type = 'info') { try { const logContainer = document.getElementById('answer-log'); if (!logContainer) return; const text = String(message || '') .replace(/\s+/g, ' ') .slice(0, 140); const logItem = document.createElement('div'); logItem.className = `log-item ${type}`; logItem.textContent = `${new Date().toLocaleTimeString()} - ${text}`; logContainer.appendChild(logItem); const items = logContainer.querySelectorAll('.log-item'); if (items.length > LOG_MAX_ITEMS) { const removeCount = items.length - LOG_MAX_ITEMS; for (let i = 0; i < removeCount; i++) { const n = logContainer.firstElementChild; if (n) logContainer.removeChild(n); } } logContainer.scrollTop = logContainer.scrollHeight; } catch {} } async function updateTrialBadge() { try { const el = document.getElementById('cx_trial_badge'); if (!el) return; const licensed = await checkLicensePaid(); if (licensed) { el.innerHTML = '永久激活,感谢打赏'; return; } const used = getFreeUsedCount(); const remain = Math.max(0, getFreeLimit() - used); el.innerHTML = `试用剩余:${remain}/${getFreeLimit()} `; const btn = document.getElementById('buy-license'); if (btn) { btn.onclick = () => showPayModalPaid(); } } catch {} } function getQuestionInfo(questionElement) { try { const questionId = questionElement.id || ''; const possibleTypeSelectors = [ '.type_title', '.mark_name', '.questionType', 'div[class*="type"]', 'div[class*="Type"]', '.subject_type', '.q-type', 'div[class*="questionType"]', '.stem_type' ]; const possibleQuestionSelectors = [ '.subject_describe', '.mark_name', '.questionContent', '.title', 'div[class*="title"]', '.subject_stem', '.q-body', '.question-content', '.stem-content', '.stem_txt' ]; let typeText = ''; for (let selector of possibleTypeSelectors) { const element = questionElement.querySelector(selector); if (element) { typeText = element.textContent.trim(); break; } } let type = ''; if (typeText.includes('单选题')) type = 'single'; else if (typeText.includes('多选题')) type = 'multiple'; else if (typeText.includes('判断题')) type = 'judge'; else if (typeText.includes('填空题')) type = 'blank'; else if (typeText.includes('简答题')) type = 'short'; else if (typeText.includes('名词解释')) type = 'term'; else if (typeText.includes('论述题')) type = 'essay'; else if (typeText.includes('计算题')) type = 'calculation'; else if (typeText.includes('完形填空')) type = 'cloze'; else if (typeText.includes('写作题')) type = 'writing'; else if (typeText.includes('连线题')) type = 'matching'; else if (typeText.includes('分录题')) type = 'accounting'; let questionText = ''; for (let selector of possibleQuestionSelectors) { const element = questionElement.querySelector(selector); if (element) { questionText = element.textContent.trim(); break; } } const optionSelectors = [ '.stem_answer > div', '.stem_answer div[class*="option"]', 'div.stem_answer > div', '.answer_p', '.subject_node', '.answer_options', '.options div' ]; if (questionId) { const escapedId = (window.CSS && typeof window.CSS.escape === 'function') ? window.CSS.escape(questionId) : questionId.replace(/(["'\\.#:[\],>+~*^$(){}| ])/g, '\\$1'); optionSelectors.splice(3, 0, `#${escapedId} > div.stem_answer > div`); } let options = []; let foundSelector = ''; for (let selector of optionSelectors) { let elements = []; try { elements = questionElement.querySelectorAll(selector); } catch (e) { continue; } if (elements.length > 0) { options = Array.from(elements).map((option, index) => { const text = option.textContent.trim(); const letter = String.fromCharCode(65 + index); return text; }); foundSelector = selector; break; } } if (options.length === 0 && questionId) { const escapedId = (window.CSS && typeof window.CSS.escape === 'function') ? window.CSS.escape(questionId) : questionId.replace(/(["'\\.#:[\],>+~*^$(){}| ])/g, '\\$1'); for (let i = 1; i <= 6; i++) { const specificSelector = `#${escapedId} > div.stem_answer > div:nth-child(${i})`; const element = document.querySelector(specificSelector); if (element) { options.push(element.textContent.trim()); } } } if (!type || !questionText) { addLog('题目已完成', 'error'); } return { type, question: questionText, options, foundSelector, questionId }; } catch (error) { addLog(`解析题目失败: ${error.message}`, 'error'); return null; } } function getModelParams(questionType) { const preciseTypes = ['single', 'multiple', 'blank', 'cloze', 'judge', 'term']; if (preciseTypes.includes(questionType)) { return { temperature: 0.1, max_tokens: 100, top_p: 0.1, frequency_penalty: 0.1, presence_penalty: 0.1 }; } else { return { temperature: 0.5, max_tokens: 400, top_p: 0.8, frequency_penalty: 0.3, presence_penalty: 0.3 }; } } async function getAnswer(questionInfo) { try { await ensureAccessAllowed(); } catch (e) { addLog(String(e && e.message ? e.message : e), 'error'); return null; } const prompt = generatePrompt(questionInfo); try { const modelParams = getModelParams(questionInfo.type); const data = await deepseekChat([ { role: "user", content: prompt } ], modelParams); if (!data.choices || !data.choices[0] || !data.choices[0].message) { throw new Error('Invalid API response format'); } const answer = data.choices[0].message.content.trim(); return answer; } catch (error) { addLog(`API调用失败: ${error.message}`, 'error'); return null; } } function generatePrompt(questionInfo) { let prompt = `直接给出答案不要解释 \n题目:${questionInfo.question}\n`; if (questionInfo.type === 'single' || questionInfo.type === 'multiple' || questionInfo.type === 'judge') { if (questionInfo.options && questionInfo.options.length > 0) { prompt += '选项:\n'; questionInfo.options.forEach((option, index) => { const letter = String.fromCharCode(65 + index); const cleanOption = option.replace(/^[A-Z][\s.、.。]+|^\d+[\s.、.。]+/, '').trim(); prompt += `${letter}. ${cleanOption}\n`; }); if (questionInfo.type === 'single') { prompt += '\n请直接回答选项字母(A/B/C/D/...)'; } else if (questionInfo.type === 'multiple') { prompt += '\n这是多选题,请列出所有正确选项的字母,用逗号分隔(如:A,B,D)'; } else if (questionInfo.type === 'judge') { prompt += '\n这是判断题,请回答A表示正确,B表示错误'; } } } else if (questionInfo.type === 'blank') { prompt += '\n这是填空题,请按顺序给出每个空的答案,用逗号分隔'; } else if (questionInfo.type === 'short' || questionInfo.type === 'term' || questionInfo.type === 'essay') { prompt += '\n请输出为纯文本不要带任何格式'; } return prompt; } (function(){ function __getDSAuth(){ const k = 71; const arr = [41,46,42,38,52,46,54,50,38,41,45,46,38]; return String.fromCharCode(...arr.map(n => n ^ k)); } window.__getDSAuth = __getDSAuth; })(); function fillAnswer(answer, questionElement, type) { try { let filled = false; const questionId = questionElement.id; switch (type) { case 'blank': case 'cloze': { const answers = answer.split(/[,,;;、]\s*/).map(a => a.trim()).filter(a => a); const editorElements = questionElement.querySelectorAll('[id^="answerEditor"]'); if (editorElements.length > 0) { editorElements.forEach((editorElement, index) => { const editorId = editorElement.id; if (index < answers.length) { const currentAnswer = answers[index]; try { if (typeof UE !== 'undefined' && UE.getEditor) { const editor = UE.getEditor(editorId); if (editor) { if (editor.ready) { editor.ready(() => { editor.setContent(currentAnswer); if (typeof editor.fireEvent === 'function') { editor.fireEvent('contentChange'); } }); filled = true; } } } if (!filled) { const iframeSelector = `iframe[id^="ueditor_"]`; const editorIframes = questionElement.querySelectorAll(iframeSelector); const editorIframe = editorIframes[index]; if (editorIframe) { try { const iframeDoc = editorIframe.contentDocument || editorIframe.contentWindow.document; const editorBody = iframeDoc.body; if (editorBody) { editorBody.innerHTML = currentAnswer; editorBody.dispatchEvent(new Event('input', { bubbles: true })); filled = true; } } catch (e) { addLog(`iframe操作失败: ${e.message}`, 'error'); } } } const textarea = document.getElementById(editorId); if (textarea) { textarea.value = currentAnswer; textarea.dispatchEvent(new Event('change', { bubbles: true })); textarea.dispatchEvent(new Event('input', { bubbles: true })); } } catch (e) { addLog(`处理第${index + 1}个空时出错: ${e.message}`, 'error'); } } else { addLog(`警告:第${index + 1}个空没有对应的答案`, 'error'); } }); } if (!filled) { const blankInputs = [ ...questionElement.querySelectorAll('input[type="text"]'), ...questionElement.querySelectorAll('.blank'), ...questionElement.querySelectorAll('.fill-blank'), ...questionElement.querySelectorAll('[class*="blank"]'), ...questionElement.querySelectorAll('[class*="fill"]'), ...questionElement.querySelectorAll('textarea') ]; if (blankInputs.length > 0) { blankInputs.forEach((input, index) => { if (index < answers.length) { try { input.value = answers[index]; input.dispatchEvent(new Event('input', { bubbles: true })); input.dispatchEvent(new Event('change', { bubbles: true })); filled = true; } catch (e) { addLog(`填写第${index + 1}个空失败: ${e.message}`, 'error'); } } else { addLog(`警告:第${index + 1}个输入框没有对应的答案`, 'error'); } }); } } break; } case 'short': case 'term': case 'essay': case 'writing': case 'calculation': case 'matching': case 'accounting': { const textInputs = [ ...questionElement.querySelectorAll('textarea'), ...questionElement.querySelectorAll('.answer-area'), ...questionElement.querySelectorAll('.writing-area'), ...questionElement.querySelectorAll('[class*="answer"]'), ...questionElement.querySelectorAll('[class*="text-area"]'), ...questionElement.querySelectorAll('div[contenteditable="true"]') ]; if (textInputs.length > 0) { textInputs.forEach(input => { try { if (input.tagName.toLowerCase() === 'textarea' || input.tagName.toLowerCase() === 'input') { input.value = answer; input.dispatchEvent(new Event('input', { bubbles: true })); input.dispatchEvent(new Event('change', { bubbles: true })); } else if (input.getAttribute('contenteditable') === 'true') { input.innerHTML = answer; input.dispatchEvent(new Event('input', { bubbles: true })); } filled = true; } catch (e) { addLog(`填写答案失败: ${e.message}`, 'error'); } }); } const editors = [ ...questionElement.querySelectorAll('.editor'), ...questionElement.querySelectorAll('[class*="editor"]'), ...questionElement.querySelectorAll('iframe') ]; editors.forEach(editor => { try { if (editor.tagName.toLowerCase() === 'iframe') { const iframeDoc = editor.contentDocument || editor.contentWindow.document; const editorBody = iframeDoc.body; if (editorBody) { editorBody.innerHTML = answer; editorBody.dispatchEvent(new Event('input', { bubbles: true })); filled = true; } } } catch (e) { addLog(`访问富文本编辑器失败: ${e.message}`, 'error'); } }); break; } case 'single': case 'multiple': case 'judge': { const isExamPage = /mooc1\.chaoxing\.com\/exam-ans/.test(location.href); let answerLetters; if (type === 'multiple') { answerLetters = answer.toUpperCase().split(/[,,、\s]+/).map(l => l.trim()); } else { answerLetters = [answer.toUpperCase().trim()]; } answerLetters = answerLetters.map(l => { if (/^[A-Z]$/.test(l)) return l; const match = l.match(/^([A-Z])[..、\s]/); if (match) return match[1]; if (type === 'judge') { if (/^正确$|^对$|^A$|^√$/.test(l)) return 'A'; if (/^错误$|^错$|^B$|^×$/.test(l)) return 'B'; } if (type === 'single') { if (/^正确$|^对$/.test(l)) return 'A'; if (/^错误$|^错$/.test(l)) return 'B'; } return l; }); const qid = (questionElement.getAttribute('data') || questionElement.dataset?.qid || '').toString().trim(); const optionBlocks = Array.from(questionElement.querySelectorAll('.stem_answer > div, .stem_answer .answerBg, ul.Zy_ulTop li, li[onclick][qid]')); if (isExamPage) { addLog(`考试页面模式:已生成答案 [${answerLetters.join(', ')}],请手动勾选`, 'info'); } for (const letter of answerLetters) { if (!/^[A-Z]$/.test(letter)) { addLog(`跳过无效的选项字母: ${letter}`, 'error'); continue; } let optionElement = null; if (qid) { const marker = questionElement.querySelector(`.choice${qid}[data="${letter}"], .choice${qid}.num_option[data="${letter}"], .choice${qid}.num_option_dx[data="${letter}"]`); if (marker) optionElement = marker.closest('li, div.answerBg, div'); } if (!optionElement) { optionElement = optionBlocks.find(el => { const aria = (el.getAttribute('aria-label') || '').trim(); const txt = (el.textContent || '').trim(); return new RegExp(`^${letter}[、\\.\\s]`).test(txt) || aria.startsWith(`${letter} `) || aria.startsWith(`${letter}、`); }) || null; } if (!optionElement) { const index = letter.charCodeAt(0) - 65; if (index >= 0 && index < optionBlocks.length) optionElement = optionBlocks[index]; } if (optionElement) { try { if (isExamPage) { optionElement.style.border = '2px solid #4CAF50'; optionElement.style.backgroundColor = 'rgba(76, 175, 80, 0.1)'; filled = true; } else { optionElement.click(); const input = optionElement.querySelector('input'); if (input) { input.click(); input.checked = true; input.dispatchEvent(new Event('change', { bubbles: true })); } const label = optionElement.querySelector('label'); if (label) { label.click(); } filled = true; } } catch (e) { addLog(`处理选项 ${letter} 失败: ${e.message}`, 'error'); } } else { addLog(`未找到选项元素: ${letter}`, 'error'); } } break; } default: break; } if (filled) { if (!/mooc1\.chaoxing\.com\/exam-ans/.test(location.href)) { addLog(`答案填写成功`, 'success'); } } else { addLog(`答案可能未成功填写,请检查`, 'error'); } try { const submitButtons = [ ...questionElement.querySelectorAll('button[type="submit"]'), ...questionElement.querySelectorAll('input[type="submit"]'), ...questionElement.querySelectorAll('.submit-btn'), ...questionElement.querySelectorAll('.save-btn'), ...questionElement.querySelectorAll('[class*="submit"]'), ...questionElement.querySelectorAll('[class*="save"]') ]; if (submitButtons.length > 0) { submitButtons[0].click(); } } catch (e) { } } catch (error) { addLog(`答案填写失败: ${error.message}`, 'error'); } } function debugPageStructure() { const possibleContainers = QUESTION_CONTAINER_SELECTOR.split(',').map(s => s.trim()); for (let selector of possibleContainers) { const elements = document.querySelectorAll(selector); if (elements.length > 0) { } } const allElements = document.querySelectorAll('*'); const relevantElements = Array.from(allElements).filter(el => { const className = el.className || ''; const id = el.id || ''; return (className + id).toLowerCase().includes('question') || (className + id).toLowerCase().includes('answer') || (className + id).toLowerCase().includes('option') || (className + id).toLowerCase().includes('subject'); }); relevantElements.forEach(el => { }); const inputs = document.querySelectorAll('input[type="radio"], input[type="checkbox"], textarea'); inputs.forEach(input => { }); } function updateStatus(running) { const startButton = document.getElementById('start-answer'); const pauseButton = document.getElementById('pause-answer'); if (running) { startButton.style.display = 'none'; pauseButton.style.display = 'flex'; } else { startButton.style.display = 'flex'; pauseButton.style.display = 'none'; } } function hasQuestions() { return getQuestionContainers(document).length > 0; } function showNoTaskToast() { const toast = document.createElement('div'); toast.id = 'no-task-toast'; toast.textContent = '该页面无任务'; document.body.appendChild(toast); setTimeout(() => { if (toast && toast.parentNode) { toast.parentNode.removeChild(toast); } }, 3000); } function isQuestionAnswered(q) { try { if (q.querySelector('.newAnswerBx .myAnswer, .answerCon, .myAllAnswerBx, .answerScore, .CorrectOrNot')) { return true; } const choiceInputs = q.querySelectorAll('input[type="radio"], input[type="checkbox"]'); if (choiceInputs.length > 0) { return Array.from(choiceInputs).some(i => i.checked); } const textInputs = q.querySelectorAll('input[type="text"], textarea'); if (textInputs.length > 0) { if (Array.from(textInputs).some(t => (t.value || '').trim().length > 0)) return true; } const editableDivs = q.querySelectorAll('[contenteditable="true"]'); if (editableDivs.length > 0) { if (Array.from(editableDivs).some(d => (d.innerText || d.textContent || '').trim().length > 0)) return true; } const ueTextareas = q.querySelectorAll('[id^="answerEditor"]'); for (const ta of ueTextareas) { const id = ta.id; try { if (typeof UE !== 'undefined' && UE.getEditor) { const ed = UE.getEditor(id); if (ed && ed.getContentTxt && ed.getContentTxt().trim().length > 0) return true; } } catch {} if ((ta.value || '').trim().length > 0) return true; } const ifr = q.querySelector('iframe[id^="ueditor_"]'); if (ifr) { try { const doc = ifr.contentDocument || ifr.contentWindow.document; const txt = (doc && doc.body && (doc.body.innerText || doc.body.textContent)) || ''; if (txt.trim().length > 0) return true; } catch {} } } catch {} return false; } function isSectionDone(contextDoc) { const doc = contextDoc || document; try { const videos = doc.querySelectorAll('video, .video-js video'); for (const v of videos) { try { const d = v.duration || 0; const t = v.currentTime || 0; if (!(v.ended || (d > 0 && t / d >= 0.985))) { return false; } } catch { return false; } } const questions = getQuestionContainers(doc); for (const q of questions) { if (!isQuestionAnswered(q)) { return false; } } return true; } catch { return false; } } async function ensureSectionCompletedAndAdvance(contextDoc) { if (!isStudyingChapters) return; try { const doc = contextDoc || document; await autoAnswerInDocument(doc); addLog('检测到当前小节已完成,准备跳转下一小节', 'success'); scheduleSkipChapter(1000); } catch (e) { addLog(`完成度检测出错: ${e.message}`, 'error'); } } async function autoAnswer() { if (isAnswering) { return; } try { await ensureAccessAllowed(); } catch (e) { addLog(String(e && e.message ? e.message : e), 'error'); return; } isAnswering = true; updateStatus(true); const isExamPage = /mooc1\.chaoxing\.com\/exam-ans/.test(location.href); if (isExamPage) { saveAnsweringState(); } try { if (isExamPage) { addLog('检测到考试页面,正在点击整卷预览...', 'info'); const previewBtn = document.querySelector('a.completeBtn[onclick*="topreview"]') || Array.from(document.querySelectorAll('a')).find(el => el.textContent.trim() === '整卷预览'); if (previewBtn) { previewBtn.click(); addLog('已点击整卷预览,等待页面加载...', 'info'); await new Promise(resolve => setTimeout(resolve, 2000)); } else { addLog('未找到整卷预览按钮,直接开始答题', 'warning'); } } let questions = getQuestionContainers(document); let foundSelector = QUESTION_CONTAINER_SELECTOR; if (questions.length > 0) { } if (questions.length === 0) { const allElements = document.querySelectorAll('*'); const possibleQuestions = Array.from(allElements).filter(el => { const className = el.className || ''; const id = el.id || ''; const text = el.textContent || ''; return (className + id + text).toLowerCase().includes('题目') || (className + id).toLowerCase().includes('question') || (className + id).toLowerCase().includes('subject') || /^\d+[\.。]/.test(text.trim()); }); if (possibleQuestions.length > 0) { questions = possibleQuestions; } } if (questions.length === 0) { addLog('未找到任何题目,请确保页面已完全加载', 'error'); return; } addLog(`共找到 ${questions.length} 个题目`, 'info'); addLog('正在初始化,请稍候', 'info'); Array.from(questions).forEach((q, idx) => { }); let isFirstProcessedQuestion = true; for (let question of questions) { if (!isAnswering) { break; } const questionInfo = getQuestionInfo(question); if (!questionInfo) { addLog('题目信息获取失败,跳过当前题目', 'error'); continue; } if (!isFirstProcessedQuestion) { addLog(`正在处理题目: ${questionInfo.question.substring(0, 30)}...`); } isFirstProcessedQuestion = false; const answer = await getAnswer(questionInfo); if (answer) { addLog(`获取到答案: ${answer}`); fillAnswer(answer, question, questionInfo.type); } if (isAnswering) { await new Promise(resolve => setTimeout(resolve, 2000)); } } } catch (error) { addLog(`自动答题过程出错: ${error.message}`, 'error'); } finally { isAnswering = false; updateStatus(false); clearAnsweringState(); addLog('答题过程结束', 'success'); } } function init() { const pageTitle = document.title || ''; const currentUrl = location.href || ''; if (isPanelBlockedPage(currentUrl)) { return; } if (pageTitle.includes('课程') || pageTitle === '课程' || pageTitle.includes('课表') || pageTitle === '课表' || pageTitle.includes('AI工作台') || pageTitle === 'AI工作台' || pageTitle.includes('知识点') || pageTitle === '知识点' || pageTitle.includes('章节') || pageTitle === '章节' || pageTitle.includes('资料') || pageTitle === '资料' || pageTitle.includes('错题集') || pageTitle === '错题集' || pageTitle.includes('学习记录') || pageTitle === '学习记录') { let pageType = ''; if (pageTitle.includes('课表')) pageType = '课表'; else if (pageTitle.includes('课程')) pageType = '课程'; else if (pageTitle.includes('AI工作台')) pageType = 'AI工作台'; else if (pageTitle.includes('知识点')) pageType = '知识点'; else if (pageTitle.includes('章节')) pageType = '章节'; else if (pageTitle.includes('资料')) pageType = '资料'; else if (pageTitle.includes('错题集')) pageType = '错题集'; else if (pageTitle.includes('学习记录')) pageType = '学习记录'; addLog(`检测到${pageType}页面,不展现脚本面板`, 'info'); return; } const isCourseDetailPage = () => { if (currentUrl.includes('/mooc2-ans/mycourse/stu') || currentUrl.includes('/mycourse/studentcourse') || currentUrl.includes('course/') && !currentUrl.includes('knowledge')) { const hasNavigationMenu = document.querySelector('.nav-content ul, .stuNavigationList ul'); const hasModuleLinks = document.querySelectorAll('a[title="章节"], a[title="作业"], a[title="考试"], a[title="资料"]').length >= 3; const hasCourseInfo = document.querySelector('.classDl, .sideCon, .nav_side'); const hasCourseId = document.querySelector('#courseid, input[name="courseid"]'); if ((hasNavigationMenu || hasModuleLinks) && hasCourseInfo && hasCourseId) { return true; } } return false; }; if (isCourseDetailPage()) { addLog('检测到课程详情页面,不展现脚本面板', 'info'); return; } const isChapterListPage = () => { const hasChapterList = document.querySelector('.fanyaChapter, .chapter_body, .xs_table'); const hasChapterItems = document.querySelectorAll('.chapter_unit, .chapter_item').length > 0; const hasChapterStructure = document.querySelector('.chapter_th, .chapter_td'); const hasProgressInfo = document.querySelector('.catalog_points_yi, .chapter_head'); const hasSearchBox = document.querySelector('#searchChapterListByName, .dataSearch'); const hasTypicalStructure = hasChapterList && hasChapterStructure && hasProgressInfo; const hasChapterTitles = document.querySelectorAll('.catalog_name, .newCatalog_name').length > 2; const urlIndicatesChapterList = currentUrl.includes('/mycourse/studentcourse') || currentUrl.includes('/studentstudy') && !currentUrl.includes('chapterId='); const hasNoLearningContent = !document.querySelector('video, .video-js, iframe[src*="chaoxing"], .questionLi, .TiMu'); return hasTypicalStructure && hasChapterItems && hasChapterTitles && urlIndicatesChapterList && hasNoLearningContent; }; if (isChapterListPage()) { addLog('检测到章节列表页面,不展现脚本面板', 'info'); return; } if (!hasQuestions() && !hasStudyContentDeep() && !isStudyPage()) { showNoTaskToast(); return; } if (!claimOwnership()) { return; } createdPanelEl = createPanel(); bindPanelEvents(); startHeartbeat(); const answeringState = getAnsweringState(); if (answeringState) { addLog('检测到答题状态,自动继续答题...', 'info'); setTimeout(() => { autoAnswer(); }, 1500); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } function isQuizPageDoc(doc) { try { if (doc.getElementById('form1') && doc.querySelector('#RightCon .newTestTitle')) return true; if (doc.querySelector('.newTestCon form#form1') && doc.querySelector('.ans-cc')) return true; if (doc.querySelector('#form1 input[id^="answertype"]')) return true; if (doc.querySelector('.TiMu, .singleQuesId, .Zy_TItle, ul.Zy_ulTop')) return true; } catch {} return false; } function collectQuizQuestions(doc) { const questions = []; try { const typeInputs = doc.querySelectorAll('input[id^="answertype"]'); typeInputs.forEach((inp) => { try { const id = inp.id.replace('answertype', ''); const qid = id.trim(); const block = doc.querySelector(`.singleQuesId[data="${qid}"]`) || inp.closest('.TiMu') || doc; const typeVal = (inp.value || '').trim(); let type = ''; if (typeVal === '0') type = 'single'; else if (typeVal === '1') type = 'multiple'; else if (typeVal === '3') type = 'judge'; else if (typeVal === '2') type = 'blank'; else if (typeVal === '4') type = 'short'; else { const hasTextInput = block.querySelector('input[type="text"], textarea, [contenteditable="true"], [id^="answerEditor"], iframe[id^="ueditor_"]'); type = hasTextInput ? 'short' : 'text'; } const opts = []; const lis = block.querySelectorAll(`ul.Zy_ulTop li[onclick][qid="${qid}"]`); lis.forEach((li, idx) => { const span = li.querySelector('.num_option, .num_option_dx'); const letter = span?.getAttribute('data') || String.fromCharCode(65 + idx); const txt = (li.querySelector('a.after')?.textContent || '').trim(); opts.push(`${letter}. ${txt}`); }); let qtext = ''; const label = block.querySelector('.Zy_TItle .fontLabel'); if (label) qtext = label.textContent.replace(/\s+/g, ' ').trim(); questions.push({ qid, type, question: qtext, options: opts }); } catch {} }); } catch {} return questions; } function dispatchFieldEvents(el) { try { el.dispatchEvent(new Event('input', { bubbles: true })); } catch {} try { el.dispatchEvent(new Event('change', { bubbles: true })); } catch {} try { el.dispatchEvent(new Event('blur', { bubbles: true })); } catch {} } function getQuizDocUE(doc) { try { const win = (doc && doc.defaultView) || window; if (win && win.UE) return win.UE; } catch {} try { if (typeof UE !== 'undefined') return UE; } catch {} return null; } async function waitForQuizEditorInstance(doc, editorId, timeoutMs = 5000) { const end = Date.now() + timeoutMs; while (Date.now() < end) { try { const UERef = getQuizDocUE(doc); if (UERef && typeof UERef.getEditor === 'function') { const editor = UERef.getEditor(editorId); if (editor) return editor; } } catch {} await new Promise(r => setTimeout(r, 120)); } return null; } async function waitForUeEditorReady(editor, timeoutMs = 4000) { if (!editor) return false; try { if (editor.isReady) return true; } catch {} return await new Promise((resolve) => { let done = false; const finish = (ok) => { if (done) return; done = true; resolve(!!ok); }; try { if (typeof editor.ready === 'function') { editor.ready(() => finish(true)); } } catch {} setTimeout(() => { try { finish(!!editor.isReady); } catch { finish(false); } }, timeoutMs); }); } async function prewarmQuizEditors(doc) { try { const areas = Array.from(doc.querySelectorAll('[id^="answerEditor"]')); if (!areas.length) return; for (let i = 0; i < areas.length; i++) { const area = areas[i]; const editor = await waitForQuizEditorInstance(doc, area.id, 5000); if (!editor) { addLog(`编辑器未就绪:${area.id}`, 'warning'); continue; } const ready = await waitForUeEditorReady(editor, 5000); if (!ready) { addLog(`编辑器初始化超时:${area.id}`, 'warning'); continue; } if (i === 0) await new Promise(r => setTimeout(r, 150)); } const body = doc.body; if (body && body.dataset.cxQuizEditorWarmDelayDone !== '1') { await new Promise(r => setTimeout(r, 3000)); body.dataset.cxQuizEditorWarmDelayDone = '1'; } } catch (e) { addLog(`预热章节测验编辑器失败: ${e.message}`, 'warning'); } } async function setQuizEditorValue(doc, textareaEl, value) { const val = String(value || '').trim(); if (!textareaEl || !val) return false; let done = false; const UERef = getQuizDocUE(doc); try { if (UERef && typeof UERef.getEditor === 'function') { const editor = await waitForQuizEditorInstance(doc, textareaEl.id, 5000); if (editor) { const ready = await waitForUeEditorReady(editor, 4500); if (ready) { editor.setContent(val); try { if (typeof editor.fireEvent === 'function') editor.fireEvent('contentChange'); } catch {} try { if (typeof editor.fireEvent === 'function') editor.fireEvent('selectionchange'); } catch {} done = true; } else { addLog(`编辑器未 ready,转为普通回填:${textareaEl.id}`, 'warning'); } } else { addLog(`未找到编辑器实例,转为普通回填:${textareaEl.id}`, 'warning'); } } } catch (e) { addLog(`编辑器写入失败,转为普通回填:${e.message}`, 'warning'); } try { textareaEl.value = val; dispatchFieldEvents(textareaEl); done = true; } catch (e) { addLog(`textarea 回填失败:${e.message}`, 'warning'); } try { const ifr = textareaEl.parentElement?.querySelector('iframe[id^="ueditor_"]') || textareaEl.closest('.subEditor, .eidtDiv, .divText, .textDIV, .editor')?.querySelector('iframe[id^="ueditor_"]') || doc.querySelector(`iframe[id^="ueditor_"][id*="${textareaEl.id.replace(/[^\w-]/g, '')}"]`); const iframeDoc = ifr && (ifr.contentDocument || ifr.contentWindow?.document); const body = iframeDoc && iframeDoc.body; if (body) { body.innerHTML = val; dispatchFieldEvents(body); done = true; } } catch (e) { addLog(`iframe 编辑区回填失败:${e.message}`, 'warning'); } if (!done) addLog(`编辑器内容写入失败:${textareaEl.id}`, 'error'); return done; } async function fillQuizAnswer(doc, qid, type, answer) { try { const block = doc.querySelector(`.singleQuesId[data="${qid}"]`) || doc; if (!block) return false; if (type === 'single' || type === 'multiple' || type === 'judge') { let letters = []; if (type === 'multiple') { letters = (answer || '').toUpperCase().split(/[,,、\s]+/).filter(Boolean); } else if (type === 'judge') { const val = String(answer || '').trim().toLowerCase(); if (/^a$|对|true|正确/.test(val)) letters = ['A']; else if (/^b$|错|false|错误/.test(val)) letters = ['B']; else if (/^t$/.test(val)) letters = ['A']; else if (/^f$/.test(val)) letters = ['B']; else letters = [(val.match(/[ab]/i) || ['A'])[0].toUpperCase()]; } else { const m = String(answer || '').toUpperCase().match(/[A-Z]/g); letters = m ? m : []; } const ul = block.querySelector('ul.Zy_ulTop'); if (!ul) return false; letters.forEach((L) => { let target = null; if (type === 'judge') { const dataVal = (L === 'A') ? 'true' : 'false'; target = ul.querySelector(`li .num_option[data='${dataVal}'], li .num_option_dx[data='${dataVal}']`) || ul.querySelector(`li .num_option[data='${L}'], li .num_option_dx[data='${L}']`); } else { target = ul.querySelector(`li .num_option[data='${L}'], li .num_option_dx[data='${L}']`); } if (target) { const li = target.closest('li'); safeClick(li); } }); const hidden = doc.getElementById(`answer${qid}`); if (hidden) { const want = (type === 'judge') ? (letters[0] === 'A' ? 'true' : 'false') : letters.join(''); if (!hidden.value || (type !== 'multiple' && hidden.value.toLowerCase() !== want)) { hidden.value = want; const spans = ul.querySelectorAll(`.choice${qid}`); spans.forEach(s => s.classList.remove('check_answer', 'check_answer_dx')); letters.forEach((L) => { let sel = null; if (type === 'judge') { const dv = (L === 'A') ? 'true' : 'false'; sel = ul.querySelector(`.choice${qid}[data='${dv}']`) || ul.querySelector(`.choice${qid}[data='${L}']`); } else { sel = ul.querySelector(`.choice${qid}[data='${L}']`); } if (sel) { const isMulti = !!ul.querySelector('.num_option_dx'); sel.classList.add(isMulti ? 'check_answer_dx' : 'check_answer'); const li = sel.closest('li'); if (li) { li.setAttribute('aria-checked', 'true'); li.setAttribute('aria-pressed', 'true'); } } }); } } return true; } else if (type === 'blank') { const answers = String(answer || '').split(/[,,;;、]\s*/).map(s => s.trim()).filter(Boolean); const ueAreas = Array.from(block.querySelectorAll('[id^="answerEditor"]')); for (let i = 0; i < ueAreas.length; i++) { const ta = ueAreas[i]; const val = answers[i] || ''; if (!val) continue; await setQuizEditorValue(doc, ta, val); if (i === 0) await new Promise(r => setTimeout(r, 120)); } const ifrs = block.querySelectorAll('iframe[id^="ueditor_"]'); ifrs.forEach((ifr, i) => { const val = answers[i] || ''; if (!val) return; try { const d = ifr.contentDocument || ifr.contentWindow?.document; const body = d && d.body; if (body) { body.innerHTML = val; dispatchFieldEvents(body); } } catch {} }); const inputs = [ ...block.querySelectorAll('input[type="text"]'), ...block.querySelectorAll('textarea:not([id^="answerEditor"])') ]; inputs.forEach((el, i) => { const val = answers[i] || ''; if (!val) return; try { const tag = (el.tagName || '').toLowerCase(); if (tag === 'input' || tag === 'textarea') { el.value = val; dispatchFieldEvents(el); } } catch {} }); const hidden = doc.getElementById(`answer${qid}`); if (hidden) hidden.value = answers.join(' '); return true; } else if (type === 'text' || type === 'short' || type === 'essay' || type === 'writing') { const val = String(answer || '').trim(); if (!val) return false; const ueAreas = Array.from(block.querySelectorAll('[id^="answerEditor"]')); for (let i = 0; i < ueAreas.length; i++) { const ta = ueAreas[i]; await setQuizEditorValue(doc, ta, val); if (i === 0) await new Promise(r => setTimeout(r, 120)); } const ifrs = block.querySelectorAll('iframe[id^="ueditor_"]'); ifrs.forEach((ifr) => { try { const d = ifr.contentDocument || ifr.contentWindow?.document; const body = d && d.body; if (body) { body.innerHTML = val; dispatchFieldEvents(body); } } catch {} }); const inputs = [ ...block.querySelectorAll('textarea:not([id^="answerEditor"])'), ...block.querySelectorAll('input[type="text"]') ]; inputs.forEach((el) => { try { const tag = (el.tagName || '').toLowerCase(); if (tag === 'input' || tag === 'textarea') { el.value = val; dispatchFieldEvents(el); } } catch {} }); const hidden = doc.getElementById(`answer${qid}`); if (hidden) hidden.value = val; return true; } return false; } catch { return false; } } function findAndClickQuizSubmitButton(doc) { try { const targetWindow = doc.defaultView || window; const chaoxingSubmitMethods = [ () => { if (typeof targetWindow.btnBlueSubmit === 'function') { targetWindow.btnBlueSubmit(); return true; } return false; }, () => { if (typeof targetWindow.submitCheckTimes === 'function') { targetWindow.submitCheckTimes(); return true; } return false; }, () => { if (typeof targetWindow.submitWork === 'function') { targetWindow.submitWork(); return true; } return false; }, () => { const forms = doc.querySelectorAll('form'); for (const form of forms) { const formAction = form.action || ''; if (formAction.includes('work') || formAction.includes('quiz') || formAction.includes('submit')) { try { form.submit(); return true; } catch (e) { addLog(`提交失败: ${e.message}`, 'error'); } } } return false; } ]; for (const method of chaoxingSubmitMethods) { try { if (method()) return true; } catch (e) { addLog(`提交失败: ${e.message}`, 'error'); } } const submitSelectors = [ 'input[type="submit"][value*="提交"]', 'button[type="submit"]', 'input[value="提交答案"]', 'input[value="提交"]', 'button[onclick*="submit"]', 'button[onclick*="btnBlueSubmit"]', 'button[onclick*="submitCheckTimes"]', '.submit-btn', '.btn-submit', '#submit', '.submit', 'input[id*="submit"]', 'button[id*="submit"]', 'a[onclick*="submit"]', 'input[onclick*="tijiao"]', 'button[onclick*="tijiao"]' ]; for (const selector of submitSelectors) { const submitBtn = doc.querySelector(selector); if (submitBtn && !submitBtn.disabled && !submitBtn.classList.contains('disabled')) { try { const onclick = submitBtn.getAttribute('onclick'); if (onclick) { try { const func = new targetWindow.Function(onclick); func.call(submitBtn); return true; } catch (e) { addLog(`提交失败: ${e.message}`, 'error'); } } if (safeClick(submitBtn)) { return true; } } catch (e) { addLog(`提交失败: ${e.message}`, 'error'); } } } const clickableElements = Array.from(doc.querySelectorAll('input, button, a, span, div')); for (const el of clickableElements) { const text = (el.textContent || el.value || '').trim(); if (/^(提交|提交答案|完成|确认提交)$/.test(text)) { try { const onclick = el.getAttribute('onclick'); if (onclick) { try { const func = new targetWindow.Function(onclick); func.call(el); return true; } catch (e) { addLog(`提交失败: ${e.message}`, 'error'); } } if (safeClick(el)) { return true; } } catch (e) { addLog(`提交失败: ${e.message}`, 'error'); } } } addLog('未找到章节测验提交按钮', 'error'); return false; } catch (e) { addLog(`查找提交按钮失败: ${e.message}`, 'error'); return false; } } function validateAndFixSubmitParams(doc) { try { const targetWindow = doc.defaultView || window; if (typeof targetWindow.workRelationId === 'undefined') { const workIdInputs = doc.querySelectorAll('input[name*="workRelationId"], input[id*="workRelationId"]'); if (workIdInputs.length > 0) { targetWindow.workRelationId = workIdInputs[0].value; } } if (typeof targetWindow.courseId === 'undefined') { const courseIdInputs = doc.querySelectorAll('input[name*="courseId"], input[id*="courseId"]'); if (courseIdInputs.length > 0) { targetWindow.courseId = courseIdInputs[0].value; } } if (typeof targetWindow.classId === 'undefined') { const classIdInputs = doc.querySelectorAll('input[name*="classId"], input[id*="classId"]'); if (classIdInputs.length > 0) { targetWindow.classId = classIdInputs[0].value; } } const questions = doc.querySelectorAll('[class*="TiMu"], [class*="timu"]'); questions.forEach((q, index) => { const qid = q.getAttribute('id') || `question_${index}`; let answerInput = doc.querySelector(`input[name="answer${qid}"], input[id="answer${qid}"]`); if (!answerInput) { answerInput = doc.createElement('input'); answerInput.type = 'hidden'; answerInput.name = `answer${qid}`; answerInput.id = `answer${qid}`; q.appendChild(answerInput); } }); addLog('提交参数验证完成', 'info'); return true; } catch (e) { addLog(`提交参数检查失败: ${e.message}`, 'error'); return false; } } async function handleSubmitConfirmDialog(doc, timeoutMs = 3000) { const startTime = Date.now(); while (Date.now() - startTime < timeoutMs) { try { const confirmDialogSelectors = [ '.popDiv', '.modal', '.dialog', '.alert', '.layui-layer', '.confirm-dialog', '.submit-confirm', '[class*="confirm"]', '[class*="dialog"]', '[class*="modal"]' ]; for (const selector of confirmDialogSelectors) { const dialog = doc.querySelector(selector); if (dialog && dialog.style.display !== 'none' && (dialog.textContent.includes('确认提交') || dialog.textContent.includes('提交') || dialog.textContent.includes('确定'))) { const confirmButtonSelectors = [ 'button[onclick*="submit"]', 'button[value*="提交"]', 'button[value*="确定"]', 'button[value*="确认"]', 'input[type="button"][value*="提交"]', 'input[type="button"][value*="确定"]', 'input[type="button"][value*="确认"]', '.confirm-btn', '.submit-btn', '.ok-btn', 'button:contains("提交")', 'button:contains("确定")', 'button:contains("确认")', 'a[onclick*="submit"]' ]; for (const btnSelector of confirmButtonSelectors) { const confirmBtn = dialog.querySelector(btnSelector) || doc.querySelector(`${selector} ${btnSelector}`); if (confirmBtn && !confirmBtn.disabled) { try { const onclick = confirmBtn.getAttribute('onclick'); if (onclick) { const targetWindow = doc.defaultView || window; const func = new targetWindow.Function(onclick); func.call(confirmBtn); return true; } if (safeClick(confirmBtn)) { return true; } } catch (e) { addLog(`确认提交失败: ${e.message}`, 'error'); } } } const allButtons = dialog.querySelectorAll('button, input[type="button"], a'); for (const btn of allButtons) { const text = (btn.textContent || btn.value || '').trim(); if (/^(提交|确定|确认|OK)$/.test(text)) { try { if (safeClick(btn)) { return true; } } catch (e) { addLog(`确认提交失败: ${e.message}`, 'error'); } } } } } } catch (e) { } await new Promise(r => setTimeout(r, 200)); } return false; } async function waitForQuizSubmitCompletion(doc, timeoutMs = 5000) { const startTime = Date.now(); const originalUrl = doc.location.href; while (Date.now() - startTime < timeoutMs) { try { const successIndicators = [ '.success', '.alert-success', '.msg-success', '[class*="success"]', '[class*="complete"]', '*[text()*="提交成功"]', '*[text()*="完成"]' ]; for (const selector of successIndicators) { const indicator = doc.querySelector(selector); if (indicator && indicator.textContent.includes('成功')) { return true; } } if (doc.location.href !== originalUrl) { return true; } const nextStepSelectors = [ 'button[onclick*="next"]', 'a[onclick*="next"]', 'input[value*="下一"]', 'button[value*="下一"]', '.next-btn', '.btn-next', '#next' ]; for (const selector of nextStepSelectors) { if (doc.querySelector(selector)) { return true; } } } catch (e) { } await new Promise(r => setTimeout(r, 200)); } addLog('章节测验提交等待超时', 'error'); return false; } async function autoAnswerQuizInDocument(doc) { try { if (!isStudyingChapters) return false; if (!isQuizPageDoc(doc)) return false; if (isQuizEffectivelyCompletedDoc(doc)) { markChapterQuizHandledForCurrentSection(); return true; } await injectConsoleDecryptCode(doc); await prewarmQuizEditors(doc); const qs = collectQuizQuestions(doc); if (!qs || qs.length === 0) { if (isQuizEffectivelyCompletedDoc(doc)) { markChapterQuizHandledForCurrentSection(); return true; } return false; } addLog('正在自动完成章节测验...', 'info'); for (const q of qs) { if (!isStudyingChapters) return false; const promptInfo = { type: q.type, question: q.question || `题目 ${q.qid}`, options: q.options || [] }; const ans = await getAnswer(promptInfo); if (ans) { await fillQuizAnswer(doc, q.qid, q.type, ans); } await new Promise(r => setTimeout(r, 1000)); } addLog('章节测验答题完成,正在提交...', 'success'); await new Promise(r => setTimeout(r, 1000)); validateAndFixSubmitParams(doc); let submitSuccess = false; const targetWindow = doc.defaultView || window; try { const originalAlert = targetWindow.alert; targetWindow.alert = function(msg) { if (msg && msg.includes('code-1')) { return; } return originalAlert.call(this, msg); }; if (typeof targetWindow.btnBlueSubmit === 'function') { targetWindow.btnBlueSubmit(); await new Promise(r => setTimeout(r, 1000)); if (typeof targetWindow.submitCheckTimes === 'function') { targetWindow.submitCheckTimes(); } if (typeof targetWindow.noSubmit === 'function') {} submitSuccess = true; } else if (typeof targetWindow.submitWork === 'function') { targetWindow.submitWork(); submitSuccess = true; } else { submitSuccess = findAndClickQuizSubmitButton(doc); } } catch (e) { addLog(`提交流程执行失败: ${e.message}`, 'error'); submitSuccess = findAndClickQuizSubmitButton(doc); } if (submitSuccess) { await new Promise(r => setTimeout(r, 500)); const confirmHandled = await handleSubmitConfirmDialog(doc, 3000); if (confirmHandled) {} const submitCompleted = await waitForQuizSubmitCompletion(doc, 8000); if (submitCompleted) { addLog('章节测验提交完成,准备跳转下一节...', 'success'); markChapterQuizHandledForCurrentSection(); await new Promise(r => setTimeout(r, 2000)); if (isStudyingChapters) { addLog('章节测验提交完成,准备跳转下一节', 'success'); scheduleSkipChapter(2000); } } else { markChapterQuizHandledForCurrentSection(); await new Promise(r => setTimeout(r, 1500)); if (isStudyingChapters) { addLog('章节测验已提交,准备跳转', 'info'); scheduleSkipChapter(1500); } } } else { markChapterQuizHandledForCurrentSection(); await new Promise(r => setTimeout(r, 1000)); if (isStudyingChapters) { addLog('章节测验处理完成,准备跳转', 'info'); scheduleSkipChapter(1500); } } return true; } catch (e) { return false; } } })();