// ==UserScript==
// @name 超星学习通九九助手[AI答题][一键启动][最小化运行]
// @name:zh-TW 超星學習通九九助手[AI答題][一鍵啟動][最小化運行]
// @name:en Chaoxing Automatic Learning Tool[AI Answer][One-click start] [Minimize run]
// @description 【可手机挂机】支持【超星学习通】【学银在线】【超星系统的继续教育】的视频、章节测试、文档、直播、作业、考试;脚本一键启动、单页面全自动运行、可最小化运行不会中断;不占网速、不费流量,开热点也能用;【三亿题库】题目覆盖率99%,支持单选、多选、填空、判断【图片题、编程题、听力题】;题目答案实时收录,轻松拿高分
// @description:zh-TW 【可手机挂机】支援【超星學習通】【學銀線上】【超星系統的繼續教育】的影片、章節測驗、文件、直播、作業、考試;腳本一鍵啟動、單頁全自動運作、可最小化運作不會中斷;不佔網速、不費流量,開熱點也能用;【三億題庫】題目覆蓋率99%,支持單選、多選、填空、判斷【圖片題、程式設計題、聽力題】;題目答案即時收錄,輕鬆拿高分
// @description:en 【mobile phone supported】Supports videos, chapter tests, documents, live broadcasts, homework, and exams of [Chaoxing], [Xueyin Online]; scripts can be started with one click, run automatically on a single page, and can be minimized and run without interruption; does not occupy network speed or traffic; [300 millions questions] covers 99% of questions, supports single-choice, multiple-choice, fill-in-the-blank, judgment [picture questions, programming questions, listening questions]
// @antifeature payment 脚本会请求第三方收费题库进行答题,您可以选择付费或停用答题功能
// @antifeature:zh-TW payment 腳本會請求第三方收費題庫進行答題,您可以選擇付費或停用答案功能
// @antifeature:en payment The script will request a third-party paid question bank to answer questions. You can choose to pay or disable the answering function.
// @namespace 申禅姌
// @version 2.7.4
// @author 申禅姌
// @run-at document-end
// @storageName 申禅姌
// @match *://*/*
// @icon https://f12.cx/favicon.png
// @grant unsafeWindow
// @grant GM_xmlhttpRequest
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_addStyle
//👇👇👇👇👇👇👇👇Please fill in the code prompted by the script into the blanks below, one per line, and press Ctrl+S to save.👇👇👇👇👇👇👇👇
//👇👇👇👇👇👇👇👇請將腳本提示的程式碼填入下面空白中,一行一個,按Ctrl+S儲存👇👇👇👇👇👇👇
//👇👇👇👇👇👇👇👇请将脚本提示的代码填入下面空白中,一行一个,按Ctrl+S保存👇👇👇👇👇👇👇👇
//👆👆👆👆👆👆👆👆请将脚本提示的代码填入上面空白中,一行一个,按Ctrl+S保存👆👆👆👆👆👆👆👆
//👆👆👆👆👆👆👆👆請將腳本提示的程式碼填入上面空白中,一行一個,按Ctrl+S儲存👆👆👆👆👆👆👆
//👆👆👆👆👆👆👆👆Please fill in the code prompted by the script into the blanks above, one per line, and press Ctrl+S to save.👆👆👆👆👆👆👆
// @connect mooc1.wljx.hfut.edu.cn
// @connect mooc1.chaoxing.com
// @connect mooc1-1.chaoxing.com
// @connect mooc1-api.chaoxing.com
// @connect zhibo.chaoxing.com
// @connect mooc1.hnust.edu.cn
// @connect stat2-ans.hnust.edu.cn
// @connect stat2-ans.istudy.szpu.edu.cn
// @connect stat2-ans.chaoxing.com
// @connect mooc1.hnsyu.net
// @connect passport2.xust.edu.cn
// @connect stat2-ans.hnsyu.net
// @connect scriptcat.cn
// @connect passport2.hnsyu.net
// @connect mooc1.gdhkmooc.com
// @connect stat2-ans.gdhkmooc.com
// @connect mooc1.zut.edu.cn
// @connect passport2.hncj.edu.cn
// @connect stat2-ans.zut.edu.cn
// @connect scriptcat.org
// @connect passport2.jxjyzx.xust.edu.cn
// @connect passport2.zut.edu.cn
// @connect stat2-ans.wljx.hfut.edu.cn
// @connect tk.wanjuantiku.com
// @connect passport2.wljx.hfut.edu.cn
// @connect mooc1.hncj.edu.cn
// @connect stat2-ans.hncj.edu.cn
// @connect mooc1.qutjxjy.cn
// @connect stat2-ans.qutjxjy.cn
// @connect passport2.hnust.edu.cn
// @connect passport2.cqrspx.cn
// @connect ans2.tk.icu
// @connect passport2.gdhkmooc.com
// @connect passport2.qutjxjy.cn
// @connect mooc1.jxjyzx.xust.edu.cn
// @connect mooc2-ans.chaoxing.com
// @connect passport2.hnvist.cn
// @connect passport2.cugbonline.cn
// @connect passport2.chaoxing.com
// @connect stat2-ans.jxjyzx.xust.edu.cn
// @connect mooc1.xueyinonline.com
// @connect passport2.ynny.cn
// @connect passport2.ecnusole.com
// @connect stat2-ans.xueyinonline.com
// @connect ans.tk.icu
// @connect passport2.xueyinonline.com
// @connect mooc1.cqrspx.cn
// @connect stat2-ans.cqrspx.cn
// @connect mooc1-2.chaoxing.com
// @connect mooc1.ynny.cn
// @connect tk.tk.icu
// @connect stat2-ans.ynny.cn
// @connect mooc1.cugbonline.cn
// @connect stat2-ans.cugbonline.cn
// @connect mooc1.xust.edu.cn
// @connect stat2-ans.xust.edu.cn
// @connect mooc1.xynu.edu.cn
// @connect mooc1.ntu.edu.cn
// @connect stat2-ans.xynu.edu.cn
// @connect stat2-ans.ntu.edu.cn
// @connect mooc1.hnvist.cn
// @connect stat2-ans.hnvist.cn
// @connect passport2.xynu.edu.cn
// @connect passport2.ntu.edu.cn
// @connect mooc1.ecnusole.com
// @connect stat2-ans.ecnusole.com
// @connect mooc.s.ecust.edu.cn
// @connect webvpn.ahmu.edu.cn
// @connect 127.0.0.1
// @license 二开需获得原作者授权
// @compatible firefox
// @compatible chrome
// @compatible edge
// @supportURL https://tk.tk.icu/
// ==/UserScript==
!!(async function () {
const
//---------------------------------------------------------------------------
是否启用后台服务器 = '0',//改为1则启用后台服务器,请先学习使用方法:https://bbs.tampermonkey.net.cn/thread-5249-1-1.html
//Change 1/0 to enable background program,Please learn how to use it:https://bbs.tampermonkey.net.cn/thread-5249-1-1.html
服务器地址 = '127.0.0.1',//用于对接后台服务器,不懂不要修改
//Do not change this if you don't know how it works
端口 = '6503'; //后台服务器端口,不懂不要修改
//Do not change this if you don't know how it works
//---------------------------------------------------------------------------
// 音频文件的base64,是一段静音音频,在后台播放可以防止页面休眠
const audiofile = 'data:audio/ogg;base64,T2dnUwACAAAAAAAAAABwRPFFAAAAAGFtEqwBHgF2b3JiaXMAAAAAAUAfAAAAAAAAUHgAAAAAAACZAU9nZ1MAAAAAAAAAAAAAcETxRQEAAAA7J4IBDP8F////////////tQN2b3JiaXMvAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxNDAxMjIgKFR1cnBha8OkcsOkamlpbikGAAAAJQAAAEVOQ09ERVI9U291bmQgU3R1ZGlvLCBsaWJWb3JiaXMgMS4zLjEbAAAAQUxCVU0gQVJUSVNUPUFkdmVudHVyZSBMYW5kFAAAAEFMQlVNPUFkdmVudHVyZSBMYW5kIQAAAEVOQ09ESU5HIEFQUExJQ0FUSU9OPVNvdW5kIFN0dWRpbxUAAABBUlRJU1Q9QWR2ZW50dXJlIExhbmQjAAAAVElUTEU9RW1wdHkgTG9vcCBGb3IgSlMgUGVyZm9ybWFuY2UBBXZvcmJpcxJCQ1YBAAABAAxSFCElGVNKYwiVUlIpBR1jUFtHHWPUOUYhZBBTiEkZpXtPKpVYSsgRUlgpRR1TTFNJlVKWKUUdYxRTSCFT1jFloXMUS4ZJCSVsTa50FkvomWOWMUYdY85aSp1j1jFFHWNSUkmhcxg6ZiVkFDpGxehifDA6laJCKL7H3lLpLYWKW4q91xpT6y2EGEtpwQhhc+211dxKasUYY4wxxsXiUyiC0JBVAAABAABABAFCQ1YBAAoAAMJQDEVRgNCQVQBABgCAABRFcRTHcRxHkiTLAkJDVgEAQAAAAgAAKI7hKJIjSZJkWZZlWZameZaouaov+64u667t6roOhIasBADIAAAYhiGH3knMkFOQSSYpVcw5CKH1DjnlFGTSUsaYYoxRzpBTDDEFMYbQKYUQ1E45pQwiCENInWTOIEs96OBi5zgQGrIiAIgCAACMQYwhxpBzDEoGIXKOScggRM45KZ2UTEoorbSWSQktldYi55yUTkompbQWUsuklNZCKwUAAAQ4AAAEWAiFhqwIAKIAABCDkFJIKcSUYk4xh5RSjinHkFLMOcWYcowx6CBUzDHIHIRIKcUYc0455iBkDCrmHIQMMgEAAAEOAAABFkKhISsCgDgBAIMkaZqlaaJoaZooeqaoqqIoqqrleabpmaaqeqKpqqaquq6pqq5seZ5peqaoqp4pqqqpqq5rqqrriqpqy6ar2rbpqrbsyrJuu7Ks256qyrapurJuqq5tu7Js664s27rkearqmabreqbpuqrr2rLqurLtmabriqor26bryrLryratyrKua6bpuqKr2q6purLtyq5tu7Ks+6br6rbqyrquyrLu27au+7KtC7vourauyq6uq7Ks67It67Zs20LJ81TVM03X9UzTdVXXtW3VdW1bM03XNV1XlkXVdWXVlXVddWVb90zTdU1XlWXTVWVZlWXddmVXl0XXtW1Vln1ddWVfl23d92VZ133TdXVblWXbV2VZ92Vd94VZt33dU1VbN11X103X1X1b131htm3fF11X11XZ1oVVlnXf1n1lmHWdMLqurqu27OuqLOu+ruvGMOu6MKy6bfyurQvDq+vGseu+rty+j2rbvvDqtjG8um4cu7Abv+37xrGpqm2brqvrpivrumzrvm/runGMrqvrqiz7uurKvm/ruvDrvi8Mo+vquirLurDasq/Lui4Mu64bw2rbwu7aunDMsi4Mt+8rx68LQ9W2heHVdaOr28ZvC8PSN3a+AACAAQcAgAATykChISsCgDgBAAYhCBVjECrGIIQQUgohpFQxBiFjDkrGHJQQSkkhlNIqxiBkjknIHJMQSmiplNBKKKWlUEpLoZTWUmotptRaDKG0FEpprZTSWmopttRSbBVjEDLnpGSOSSiltFZKaSlzTErGoKQOQiqlpNJKSa1lzknJoKPSOUippNJSSam1UEproZTWSkqxpdJKba3FGkppLaTSWkmptdRSba21WiPGIGSMQcmck1JKSamU0lrmnJQOOiqZg5JKKamVklKsmJPSQSglg4xKSaW1kkoroZTWSkqxhVJaa63VmFJLNZSSWkmpxVBKa621GlMrNYVQUgultBZKaa21VmtqLbZQQmuhpBZLKjG1FmNtrcUYSmmtpBJbKanFFluNrbVYU0s1lpJibK3V2EotOdZaa0ot1tJSjK21mFtMucVYaw0ltBZKaa2U0lpKrcXWWq2hlNZKKrGVklpsrdXYWow1lNJiKSm1kEpsrbVYW2w1ppZibLHVWFKLMcZYc0u11ZRai621WEsrNcYYa2415VIAAMCAAwBAgAlloNCQlQBAFAAAYAxjjEFoFHLMOSmNUs45JyVzDkIIKWXOQQghpc45CKW01DkHoZSUQikppRRbKCWl1losAACgwAEAIMAGTYnFAQoNWQkARAEAIMYoxRiExiClGIPQGKMUYxAqpRhzDkKlFGPOQcgYc85BKRljzkEnJYQQQimlhBBCKKWUAgAAChwAAAJs0JRYHKDQkBUBQBQAAGAMYgwxhiB0UjopEYRMSielkRJaCylllkqKJcbMWomtxNhICa2F1jJrJcbSYkatxFhiKgAA7MABAOzAQig0ZCUAkAcAQBijFGPOOWcQYsw5CCE0CDHmHIQQKsaccw5CCBVjzjkHIYTOOecghBBC55xzEEIIoYMQQgillNJBCCGEUkrpIIQQQimldBBCCKGUUgoAACpwAAAIsFFkc4KRoEJDVgIAeQAAgDFKOSclpUYpxiCkFFujFGMQUmqtYgxCSq3FWDEGIaXWYuwgpNRajLV2EFJqLcZaQ0qtxVhrziGl1mKsNdfUWoy15tx7ai3GWnPOuQAA3AUHALADG0U2JxgJKjRkJQCQBwBAIKQUY4w5h5RijDHnnENKMcaYc84pxhhzzjnnFGOMOeecc4wx55xzzjnGmHPOOeecc84556CDkDnnnHPQQeicc845CCF0zjnnHIQQCgAAKnAAAAiwUWRzgpGgQkNWAgDhAACAMZRSSimllFJKqKOUUkoppZRSAiGllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimVUkoppZRSSimllFJKKaUAIN8KBwD/BxtnWEk6KxwNLjRkJQAQDgAAGMMYhIw5JyWlhjEIpXROSkklNYxBKKVzElJKKYPQWmqlpNJSShmElGILIZWUWgqltFZrKam1lFIoKcUaS0qppdYy5ySkklpLrbaYOQelpNZaaq3FEEJKsbXWUmuxdVJSSa211lptLaSUWmstxtZibCWlllprqcXWWkyptRZbSy3G1mJLrcXYYosxxhoLAOBucACASLBxhpWks8LR4EJDVgIAIQEABDJKOeecgxBCCCFSijHnoIMQQgghREox5pyDEEIIIYSMMecghBBCCKGUkDHmHIQQQgghhFI65yCEUEoJpZRSSucchBBCCKWUUkoJIYQQQiillFJKKSGEEEoppZRSSiklhBBCKKWUUkoppYQQQiillFJKKaWUEEIopZRSSimllBJC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'
const tipsPicBase64 = 'data:image/png;base64,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'
// ----------
// 别看了,屎山
// ----------
class PopupTool {
constructor(config = {}) {
/* ------------------ 可配置属性(带默认值) ------------------ */
this.POPUP_WIDTH = config.POPUP_WIDTH || 500;
this.HEADER_HEIGHT = config.HEADER_HEIGHT || 30;
this.MIN_HEADER_VISIBLE_RATIO = config.MIN_HEADER_VISIBLE_RATIO || 0.5;
this.LS_KEY = config.LS_KEY || "99toolset";
this.POPUP_NAME = config.POPUP_NAME || "超星学习通九九助手";
this.tokenR = setTimeout(() => { }, 100)
/* 日志缓存(内部使用)*/
this._logs = [];
/* 初始化界面 */
this.init();
}
/* ------------------ 工具方法 ------------------ */
clamp(v, min, max) { return Math.min(Math.max(v, min), max); }
loadState() {
try { return JSON.parse(GM_getValue(this.LS_KEY, false)) || {}; }
catch { return {}; }
}
saveState(obj) {
GM_setValue(this.LS_KEY, JSON.stringify(obj));
}
/* ===================================================================
初始化界面 —— 原闭包内容全部重写成对象内部 this.xxx
=================================================================== */
init() {
const winW = window.innerWidth;
const winH = window.innerHeight;
/* DOM 元素 */
this.popup = document.createElement("div");
this.header = document.createElement("div");
this.minimizeBtn = document.createElement("button");
this.content = document.createElement("div");
this.row1 = document.createElement("div");
this.tokenInput = document.createElement("input");
this.saveBtn = document.createElement("button");
this.AIBtn = document.createElement("button");
this.restCount = document.createElement("span");
this.row2 = document.createElement("div");
this.baseInfo = document.createElement("div");
this.row3 = document.createElement("div");
this.splitter = document.createElement("div");
this.logBox = document.createElement("div");
/* 默认坐标 */
const defaultLeft = winW - this.POPUP_WIDTH - 20;
const defaultTop = (winH * 0.8 - winH * 0.2) / 2;
const state = this.loadState();
this.minimized = false;
let popupLeft = defaultLeft;
let popupTop = defaultTop;
if (state.winW === winW && state.winH === winH) {
if (typeof state.left === "number") popupLeft = state.left;
if (typeof state.top === "number") popupTop = state.top;
this.minimized = !!state.minimized;
}
/* ------------------ 弹窗布局 ------------------ */
this.popup.style.cssText = `
position: fixed;
left: ${popupLeft}px;
top: ${popupTop}px;
width: ${this.POPUP_WIDTH}px;
height: ${Math.max(winH * 0.35, this.HEADER_HEIGHT + 100)}px;
background:#fff;
border-radius:10px;
border:1px solid #e5e7eb;
display:flex;
flex-direction:column;
overflow:hidden;
resize: vertical;
z-index:999999;
box-shadow:0 6px 18px rgba(0,0,0,.15);
`;
/* ------------------ 标题栏 ------------------ */
this.header.style.cssText = `
background:#fff;
padding:0 10px;
height:${this.HEADER_HEIGHT}px;
line-height:${this.HEADER_HEIGHT}px;
display:flex;
justify-content:space-between;
align-items:center;
border-bottom:1px solid #e5e7eb;
cursor:move;
user-select:none;
font-size:14px;
font-weight:600;
`;
this.header.textContent = this.POPUP_NAME;
this.minimizeBtn.textContent = this.minimized ? "▶" : "⏸";
this.minimizeBtn.style.cssText = `
background:transparent;
border:none;
font-size:14px;
width:24px;height:20px;
cursor:pointer;
border-radius:4px;
`;
this.minimizeBtn.onmouseover = () => this.minimizeBtn.style.background = "#eee";
this.minimizeBtn.onmouseout = () => this.minimizeBtn.style.background = "transparent";
this.header.appendChild(this.minimizeBtn);
/* ------------------ 主体 ------------------ */
this.content.style.cssText = `
flex:1;
display:flex;
flex-direction:column;
min-height:0;
overflow:hidden;
background:#fafafa;
`;
/* row1 */
this.row1.style.cssText = `padding:8px;display:flex;gap:8px;align-items:center;font-size:14px;`;
this.tokenInput.style.cssText = `
width:100%;
padding:6px 32px 6px 8px; /* 右侧留位置给图标 */
border:1px solid #ccc;
border-radius:6px;
box-sizing:border-box;
font-size:14px;
`;
this.tokenInput.type = "password";
this.tokenWrap = document.createElement("div");
this.tokenWrap.style.cssText = `
position: relative;
flex: 1;
display: flex;
`;
this.tokenWrap.appendChild(this.tokenInput);
this.saveBtn.textContent = "保存";
this.saveBtn.style.cssText = `padding:6px 12px;background:#1f76ff;color:#fff;border:none;border-radius:6px;cursor:pointer;`;
this.AIBtn.textContent = "AI答题";
this.AIBtn.style.cssText = `padding:6px 12px;background:gray;color:#fff;border:none;border-radius:6px;cursor:pointer;`;
if (GM_getValue('aiAnswer', false)) {
this.AIBtn.style.background = '#1f76ff'
}
this.restCount.textContent = "剩余次数:--";
this.eyeBtn = document.createElement("div");
this.eyeBtn.style.cssText = `
position: absolute;
right: 8px;
top: 50%;
transform: translateY(-50%);
width: 20px;
height: 20px;
cursor: pointer;
opacity: 0.6;
`;
this.eyeBtn.innerHTML = `
`;
this.eyeBtn.onmouseover = () => this.eyeBtn.style.opacity = "1";
this.eyeBtn.onmouseout = () => this.eyeBtn.style.opacity = "0.6";
this.tokenWrap.appendChild(this.eyeBtn);
this.eyeBtn.addEventListener("mousedown", () => {
this.tokenInput.type = "text";
});
this.eyeBtn.addEventListener("mouseup", () => {
this.tokenInput.type = "password";
});
this.eyeBtn.addEventListener("mouseleave", () => {
this.tokenInput.type = "password";
});
this.row1.append(this.tokenWrap, this.saveBtn, this.AIBtn, this.restCount);
/* row2 */
this.row2.style.cssText = `padding:8px;background:#fff;border-top:1px solid #e5e7eb;font-size:14px;`;
this.baseInfo.textContent = "内容加载中";
this.row2.appendChild(this.baseInfo);
/* row3 + split + logBox */
this.row3.style.cssText = `
flex:1;
display:flex;
flex-direction:column;
min-height:0;
overflow:hidden;
background:#fff;
border-top:1px solid #e5e7eb;
`;
this.splitter.style.cssText = `height:4px;background:#f3f4f6;cursor:row-resize;`;
this.logBox.style.cssText = `
flex:1;
min-height:0;
overflow-y:auto;
padding:8px;
font-size:14px; /* ★ 从 12 改为 14 */
line-height:1.5;
background:#fff;
white-space:pre-wrap;
word-wrap:break-word;
overflow-wrap:break-word;
`;
this.logBox.textContent = "日志输出:\n";
this.row3.append(this.splitter, this.logBox);
this.content.append(this.row1, this.row2, this.row3);
this.popup.append(this.header, this.content);
document.body.appendChild(this.popup);
/* 拖动、最小化、高度调整逻辑 */
this.bindEvents();
/* 恢复最小化状态 */
this.applyMinimize();
}
/* ===================================================================
行为绑定(拖动、分割条、最小化、位置保持)
=================================================================== */
bindEvents() {
const popup = this.popup;
/* ------------------ 拖动 ------------------ */
let isDragging = false, offsetX = 0, offsetY = 0;
this.header.addEventListener("mousedown", (e) => {
isDragging = true;
offsetX = e.clientX - popup.offsetLeft;
offsetY = e.clientY - popup.offsetTop;
});
window.addEventListener("mouseup", () => {
if (!isDragging) return;
isDragging = false;
this.saveState({
left: popup.offsetLeft,
top: popup.offsetTop,
minimized: this.minimized,
winW: window.innerWidth,
winH: window.innerHeight
});
});
window.addEventListener("mousemove", (e) => {
if (!isDragging) return;
let left = e.clientX - offsetX;
let top = e.clientY - offsetY;
const vw = window.innerWidth;
const vh = window.innerHeight;
const minVisible = this.POPUP_WIDTH * this.MIN_HEADER_VISIBLE_RATIO;
const minLeft = -(this.POPUP_WIDTH - minVisible);
const maxLeft = vw - minVisible;
left = this.clamp(left, minLeft, maxLeft);
top = this.clamp(top, 0, vh - this.HEADER_HEIGHT);
popup.style.left = left + "px";
popup.style.top = top + "px";
});
/* ------------------ 分割条拖高度 ------------------ */
let draggingSplit = false;
this.splitter.addEventListener("mousedown", () => draggingSplit = true);
window.addEventListener("mouseup", () => draggingSplit = false);
window.addEventListener("mousemove", (e) => {
if (!draggingSplit) return;
if (this.minimized) return;
let newHeight = popup.offsetHeight + e.movementY;
if (newHeight < this.HEADER_HEIGHT) newHeight = this.HEADER_HEIGHT;
popup.style.height = newHeight + "px";
});
/* ------------------ 最小化 ------------------ */
this.minimizeBtn.onclick = () => {
this.minimized = !this.minimized;
this.applyMinimize();
};
/* ------------------ 保持标题栏可见 ------------------ */
setInterval(() => {
const vw = window.innerWidth, vh = window.innerHeight;
popup.style.left = this.clamp(
popup.offsetLeft,
-(this.POPUP_WIDTH - this.POPUP_WIDTH * this.MIN_HEADER_VISIBLE_RATIO),
vw - this.POPUP_WIDTH * this.MIN_HEADER_VISIBLE_RATIO
) + "px";
popup.style.top = this.clamp(
popup.offsetTop, 0, vh - this.HEADER_HEIGHT
) + "px";
}, 120);
/* ------------------ 保存按钮(写入日志) ------------------ */
this.saveBtn.onclick = () => {
this.addLog(`Token 保存:${this.tokenInput.value || "(空)"}`);
};
this.AIBtn.onclick = () => {
let aiAnswer = GM_getValue('aiAnswer', false)
if (aiAnswer) {
this.AIBtn.style.background = 'gray'
this.addLog('已关闭AI答题')
GM_setValue('aiAnswer', false)
} else {
this.AIBtn.style.background = '#1f76ff'
this.addLog('已开启AI答题')
GM_setValue('aiAnswer', true)
}
};
}
/* ===================================================================
最小化处理
=================================================================== */
applyMinimize() {
if (this.minimized) {
this.content.style.display = "none";
this.popup.style.height = this.HEADER_HEIGHT + "px";
this.popup.style.resize = "none";
this.minimizeBtn.textContent = "▶";
this.minimizeBtn.title = "恢复";
} else {
this.content.style.display = "flex";
this.popup.style.height = Math.max(window.innerHeight * 0.35, this.HEADER_HEIGHT + 100) + "px";
this.popup.style.resize = "vertical";
this.minimizeBtn.textContent = "⏸";
this.minimizeBtn.title = "暂停并最小化";
}
this.saveState({
left: this.popup.offsetLeft,
top: this.popup.offsetTop,
minimized: this.minimized,
winW: window.innerWidth,
winH: window.innerHeight
});
}
/* ===================================================================
日志操作方法(你要求的3个)
=================================================================== */
/* ✔ 添加一条日志:自动加时间前缀 */
addLog(str) {
const now = new Date();
const t = `[${now.getHours().toString().padStart(2, "0")}:${now.getMinutes().toString().padStart(2, "0")}:${now.getSeconds().toString().padStart(2, "0")}] `;
const finalLine = t + str;
// 内部缓存追加
this._logs.push(finalLine);
// ★ 使用 innerHTML 支持富文本
this.logBox.innerHTML += finalLine + "
";
// 滚动到底部
this.logBox.scrollTop = this.logBox.scrollHeight;
}
/* ✔ 批量载入日志(不清空原有日志,直接追加) */
loadLogs(arr) {
if (!Array.isArray(arr)) return;
for (const line of arr) {
this._logs.push(line);
this.logBox.innerHTML += line + "
";
}
this.logBox.scrollTop = this.logBox.scrollHeight;
}
/* ✔ 导出当前日志为一维字符串数组 */
exportLogs() {
return this._logs.slice();
}
/* 自定义信息栏内容 */
setBaseInfo(htmlString) {
this.baseInfo.innerHTML = htmlString;
}
/* ✔ 设置剩余次数 */
setRestCount(n) {
this.restCount.textContent = "剩余次数:" + n;
}
/* ✔ 设置 Token(并记录为旧值) */
setToken(token) {
this._lastValidToken = token; // 保存合法 token
this.tokenInput.value = token;
}
/*
✔ 设置 Token 验证与保存逻辑
validator(token) → true/false
onSave(token) → 用户点击保存且验证通过后执行
*/
setTokenHandler(validator = (token) => {
const reg = /^[0-9a-z]{32}$/ig
return reg.test(token)
}, onSave = function (token) {
GM_setValue('shenchanranToken', token)
ctk(token)
clearInterval(this.tokenR)
this.tokenR = setInterval(() => {
this.setRestCount($w.left)
}, 500)
}) {
this._validator = validator;
this._onSave = onSave;
// 输入框监听:实时验证
this.tokenInput.addEventListener("input", () => {
const value = this.tokenInput.value;
const ok = this._validator(value);
this._tokenIsValid = ok; // 保存验证状态
// 你可以在这里扩展输入实时提示
});
// 保存按钮点击逻辑(覆盖原有 onclick)
this.saveBtn.onclick = () => {
const value = this.tokenInput.value;
if (this._tokenIsValid) {
// 通过验证 —— 正常保存
this._lastValidToken = value;
// 调用外部保存回调
this._onSave(value);
// 写入日志
this.addLog("Token 保存成功。");
} else {
// 验证失败 —— 恢复旧 token
if (this._lastValidToken !== undefined) {
this.tokenInput.value = this._lastValidToken;
}
// 显示红色错误提示
this.setBaseInfo(`
token格式不符,已为您还原上一个token
`);
// 写入日志
this.addLog("Token 保存失败(格式不符)");
}
};
}
}
let pass = true,
$qqgroup = '1051811266',
$w = unsafeWindow,
$l = $w.location.href,
$d = $w.document,
$version = GM_info.script.version.replaceAll('.', ''),
// 调用$s[value]可以获取url查询值
$s = Object.fromEntries(new URLSearchParams($w.location.search)),
$protocol = $w.location.protocol + "//",
getCookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift(),
$uid = getCookie('UID') || getCookie('_uid') || $s['uid'],
// 自己封装的仿layer弹窗,因为从外部调用js可能受网络影响
$layer = (info, title = '提示', closeButton = '确定') => {
GM_addStyle(`.shadow {
position: absolute;
top: -20px;
left: 0;
width: 100%;
height: 110%;
background-color: #000;
opacity: 0.3;
z-index:9998
}
.alert {
position: absolute;
top: 50vh;
left: 50vw;
transform: translate(-50%, -50%);
min-width: 260px;
max-width: 400px;
background-color: #fff;
border-radius: 2px;
box-shadow: 1px 1px 50px rgba(0, 0, 0, .3);
padding: 0;
z-index:9999;
}
.alert .alertHead {
padding: 0 80px 0 20px;
height: 42px;
line-height: 42px;
border-bottom: 1px solid #eee;
font-size: 14px;
color: #333;
overflow: hidden;
background-color: #F8F8F8;
border-radius: 2px 2px 0 0;
}
.alert .alertBody {
padding: 20px;
line-height: 24px;
word-break: break-all;
overflow: hidden;
font-size: 14px;
overflow-x: hidden;
overflow-y: auto;
}
.alert .buttons {
text-align: right;
padding: 0 15px 12px;
pointer-events: auto;
user-select: none;
-webkit-user-select: none;
}
.alert .buttons .button {
display: inline-block;
height: 28px;
line-height: 28px;
margin: 5px 5px 0;
padding: 0 15px;
border-radius: 2px;
border-color: #1E9FFF;
background-color: #1E9FFF;
color: #fff;
cursor: pointer;
}
.alert .buttons span:hover {
opacity: .9;
text-decoration: none;
}`)
const body = $d.body;
const shadow = $d.createElement('div');
const alert = $d.createElement('div');
const alertHead = $d.createElement('div');
const alertBody = $d.createElement('div');
const closeFunction = () => {
shadow.remove();
alert.remove();
}
shadow.classList.add('shadow');
alert.classList.add('alert');
alertHead.classList.add('alertHead');
alertBody.classList.add('alertBody');
alertHead.innerHTML = title
alertBody.innerHTML = info;
alert.appendChild(alertHead)
alert.appendChild(alertBody)
if (closeButton !== false) {
const buttons = $d.createElement('div');
const button = $d.createElement('span');
buttons.classList.add('buttons');
button.classList.add('button');
button.innerHTML = closeButton;
button.addEventListener('click', closeFunction);
buttons.appendChild(button);
alert.appendChild(buttons)
}
body.appendChild(shadow);
body.appendChild(alert);
return closeFunction
},
// 根据ascii排序数组元素
$ascii = (str) => {
return str.split('').sort((a, b) => a.charCodeAt(0) - b.charCodeAt(0)).join('');
},
// 生成随机32位字符串
randomString = (z = false) => {
let t = "abcdef1234567890",
result = ''
z && (t += "ghijklmnopqrstuvwxyz")
for (let i = 0; i < 32; i++) {
const randomIndex = Math.floor(Math.random() * t.length);
result += t[randomIndex];
}
return result
},
// 生成随机毫秒数,例如$(1,2)可能返回1500
$n = function (min, max) {
if (arguments.length == 1) {
max = min + 1;
if (min > 1) {
min = min - 1
}
} else if (arguments.length == 0) {
min = 4;
max = 6;
}
return (Math.random() * (max - min) + min).toFixed(3) * 1000;
},
// sleep函数,使用await调用
sleep = (interval) => {
return new Promise((success, fail) => {
setTimeout(success, interval);
});
},
hostList = [
'https://tk.tk.icu/',
'https://tk.wanjuantiku.com/',
'https://scriptcat.cn/'
],
host = '',
handleImgs = (s) => {
// 去除字符串中的style与script标签和其中的内容
s = s.replace(/