// ==UserScript== // @name U助手 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 自动作答U校园ai版上的一定题目,支持选择,填空,长文本输入框 // @author 恶搞之家 // @match *://ucontent.unipus.cn/* // @grant GM_xmlhttpRequest // ==/UserScript== const QUESTION_BANKS = { '新一代大学英语(基础篇)综合教程1': 'https://raw.githubusercontent.com/python-demon1234/question/refs/heads/main/%E6%96%B0%E4%B8%80%E4%BB%A3%E5%A4%A7%E5%AD%A6%E8%8B%B1%E8%AF%AD%EF%BC%88%E5%9F%BA%E7%A1%80%E7%AF%87%EF%BC%89%E7%BB%BC%E5%90%88%E6%95%99%E7%A8%8B1', '新四级强化辅导 听力(新版)': 'https://raw.githubusercontent.com/python-demon1234/question/refs/heads/main/%E6%96%B0%E5%9B%9B%E7%BA%A7%E5%BC%BA%E5%8C%96%E8%BE%85%E5%AF%BC%20%E5%90%AC%E5%8A%9B%EF%BC%88%E6%96%B0%E7%89%88%EF%BC%89' }; let currentQuestionBankUrl = QUESTION_BANKS['新一代大学英语(基础篇)综合教程1']; let currentTopicUsedAnswers = new Set(); let lastActiveTopicName = ''; function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } function createFloatingButton() { const container = document.createElement('div'); container.style.cssText = ` position: fixed; top: 20px; right: 20px; z-index: 10000; display: flex; flex-direction: column; background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 20px; border: 1px solid rgba(255, 255, 255, 0.4); box-shadow: 0 8px 32px rgba(31, 38, 135, 0.15); transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); overflow: hidden; width: 280px; min-width: 280px; max-width: 280px; opacity: 0; transform: translateY(-20px) scale(0.95); `; setTimeout(() => { container.style.opacity = '1'; container.style.transform = 'translateY(0) scale(1)'; }, 100); const titleBar = document.createElement('div'); titleBar.style.cssText = ` display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: rgba(255, 255, 255, 0.95); font-weight: 500; cursor: move; user-select: none; font-size: 14px; position: relative; overflow: hidden; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid rgba(255, 255, 255, 0.15); `; titleBar.innerHTML = '
U助手
'; const buttonContainer = document.createElement('div'); buttonContainer.style.cssText = ` display: flex; gap: 8px; `; const minimizeButton = document.createElement('button'); minimizeButton.innerHTML = '⚊'; minimizeButton.style.cssText = ` background: none; border: none; color: white; font-size: 20px; cursor: pointer; padding: 0 5px; display: flex; align-items: center; justify-content: center; height: 24px; width: 24px; border-radius: 6px; transition: all 0.2s; &:hover { background-color: rgba(255, 255, 255, 0.2); transform: translateY(-1px); } `; const contentContainer = document.createElement('div'); contentContainer.style.cssText = ` display: flex; flex-direction: column; gap: 12px; padding: 16px; background: rgba(255, 255, 255, 0.1); width: 100%; min-width: 280px; max-width: 280px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); `; let isDragging = false; let currentX; let currentY; let initialX; let initialY; let xOffset = 0; let yOffset = 0; function dragStart(e) { if (e.type === "mousedown") { initialX = e.clientX - xOffset; initialY = e.clientY - yOffset; } isDragging = true; } function dragEnd(e) { initialX = currentX; initialY = currentY; isDragging = false; } function drag(e) { if (isDragging) { e.preventDefault(); currentX = e.clientX - initialX; currentY = e.clientY - initialY; xOffset = currentX; yOffset = currentY; container.style.transform = `translate(${currentX}px, ${currentY}px)`; } } titleBar.addEventListener('mousedown', dragStart); document.addEventListener('mousemove', drag); document.addEventListener('mouseup', dragEnd); let isMinimized = false; minimizeButton.addEventListener('click', () => { isMinimized = !isMinimized; contentContainer.style.display = isMinimized ? 'none' : 'flex'; minimizeButton.innerHTML = isMinimized ? '+' : '⚊'; container.style.width = isMinimized ? 'auto' : ''; }); const selectContainer = document.createElement('div'); selectContainer.style.cssText = ` display: flex; flex-direction: column; gap: 6px; width: 100%; `; const label = document.createElement('label'); label.textContent = '选择题库'; label.style.cssText = ` font-size: 13px; color: rgba(0, 0, 0, 0.7); font-weight: 500; `; const select = document.createElement('select'); select.style.cssText = ` padding: 8px 12px; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 12px; font-size: 13px; color: rgba(0, 0, 0, 0.8); background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); cursor: pointer; outline: none; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); width: 100%; box-sizing: border-box; box-shadow: 0 2px 6px rgba(31, 38, 135, 0.07); &:hover { border-color: rgba(102, 126, 234, 0.5); background: rgba(255, 255, 255, 0.9); transform: translateY(-2px) scale(1.02); box-shadow: 0 4px 12px rgba(31, 38, 135, 0.1); } &:focus { border-color: rgba(102, 126, 234, 0.5); box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.2); transform: translateY(-1px); } `; Object.keys(QUESTION_BANKS).forEach(bankName => { const option = document.createElement('option'); option.value = QUESTION_BANKS[bankName]; option.textContent = bankName; select.appendChild(option); }); select.addEventListener('change', (event) => { currentQuestionBankUrl = event.target.value; console.log('已切换题库到:', select.options[select.selectedIndex].textContent); }); const infoDisplay = document.createElement('div'); infoDisplay.style.cssText = ` margin-top: 4px; padding: 10px; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 16px; font-size: 13px; color: rgba(0, 0, 0, 0.8); width: 100%; max-height: 300px; overflow-y: auto; overflow-x: hidden; overflow-wrap: break-word; white-space: pre-wrap; line-height: 1.3; display: none; border: 1px solid rgba(255, 255, 255, 0.4); opacity: 0; transform: translateY(-10px) scale(0.98); transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); box-sizing: border-box; box-shadow: 0 4px 16px rgba(31, 38, 135, 0.07); /* 自定义滚动条样式 */ &::-webkit-scrollbar { width: 6px; height: 6px; } &::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.1); border-radius: 3px; } &::-webkit-scrollbar-thumb { background: rgba(102, 126, 234, 0.3); border-radius: 3px; transition: all 0.3s; } &::-webkit-scrollbar-thumb:hover { background: rgba(102, 126, 234, 0.5); } `; const buttonStyle = ` padding: 8px 16px; border: none; border-radius: 12px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; justify-content: center; gap: 6px; position: relative; overflow: hidden; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); color: rgba(255, 255, 255, 0.95); width: 100%; box-sizing: border-box; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); &:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } &:active { transform: translateY(0) scale(0.98); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } &::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent); transform: translateX(-100%); transition: transform 0.6s; } &:hover::before { transform: translateX(100%); } `; const toggleInfoButton = document.createElement('button'); toggleInfoButton.style.cssText = buttonStyle + ` background: rgba(255, 255, 255, 0.15); color: rgba(0, 0, 0, 0.7); border: 1px solid rgba(255, 255, 255, 0.3); &:hover { background: rgba(255, 255, 255, 0.25); transform: translateY(-1px); } `; toggleInfoButton.innerHTML = '显示信息'; let isInfoVisible = false; toggleInfoButton.addEventListener('click', () => { isInfoVisible = !isInfoVisible; if (isInfoVisible) { infoDisplay.style.display = 'block'; requestAnimationFrame(() => { infoDisplay.style.opacity = '1'; infoDisplay.style.transform = 'translateY(0)'; }); } else { infoDisplay.style.opacity = '0'; infoDisplay.style.transform = 'translateY(-10px)'; setTimeout(() => { infoDisplay.style.display = 'none'; }, 300); } toggleInfoButton.innerHTML = isInfoVisible ? '收起信息' : '显示信息'; }); const infoButton = document.createElement('button'); infoButton.style.cssText = buttonStyle + ` background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); &:hover { background: linear-gradient(135deg, #5a6fd6 0%, #6a4494 100%); } `; infoButton.innerHTML = '获取章节信息'; const autoSelectButton = document.createElement('button'); autoSelectButton.style.cssText = buttonStyle + ` background: linear-gradient(135deg, #06B6D4 0%, #3B82F6 100%); &:hover { background: linear-gradient(135deg, #0AA2C0 0%, #3574E3 100%); } `; autoSelectButton.innerHTML = '自动选择答案'; infoButton.addEventListener('mouseover', () => { infoButton.style.backgroundColor = '#45a049'; }); infoButton.addEventListener('mouseout', () => { infoButton.style.backgroundColor = '#4CAF50'; }); autoSelectButton.addEventListener('mouseover', () => { autoSelectButton.style.backgroundColor = '#F57C00'; }); autoSelectButton.addEventListener('mouseout', () => { autoSelectButton.style.backgroundColor = '#FF9800'; }); const addRippleEffect = (button) => { button.addEventListener('click', (e) => { const ripple = document.createElement('div'); ripple.style.cssText = ` position: absolute; width: 10px; height: 10px; background: rgba(255, 255, 255, 0.3); border-radius: 50%; transform: scale(1); transition: transform 0.6s, opacity 0.6s; pointer-events: none; `; ripple.style.left = (e.offsetX - 5) + 'px'; ripple.style.top = (e.offsetY - 5) + 'px'; button.appendChild(ripple); requestAnimationFrame(() => { ripple.style.transform = 'scale(20)'; ripple.style.opacity = '0'; }); setTimeout(() => ripple.remove(), 600); }); }; infoButton.addEventListener('click', async () => { const info = await getContentInfo(); if (info) { let displayContent = `
章节内容:
${info.chapter}
主题内容:
${info.topic}
当前主题:
${info.activeTopicName || '未找到'}
下一主题:
${info.nextTopicName || '没有下一个主题'}
主题总数:
${info.totalTopics}
匹配到的答案`; if (info.answers && info.answers.length > 0) { info.answers.forEach((answer, index) => { displayContent += `
答案组 ${index + 1}
${answer.split('\n').join('
')}
`; }); } else { displayContent += `
未找到匹配的答案
`; } displayContent += '
'; infoDisplay.style.cssText = ` margin-top: 4px; padding: 10px; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 16px; font-size: 13px; color: rgba(0, 0, 0, 0.8); width: 100%; max-height: 300px; overflow-y: auto; overflow-x: hidden; overflow-wrap: break-word; white-space: pre-wrap; line-height: 1.3; display: none; border: 1px solid rgba(255, 255, 255, 0.4); opacity: 0; transform: translateY(-10px); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-sizing: border-box; box-shadow: 0 4px 16px rgba(31, 38, 135, 0.07); /* 自定义滚动条样式 */ &::-webkit-scrollbar { width: 6px; height: 6px; } &::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.1); border-radius: 3px; } &::-webkit-scrollbar-thumb { background: rgba(102, 126, 234, 0.3); border-radius: 3px; transition: all 0.2s; } &::-webkit-scrollbar-thumb:hover { background: rgba(102, 126, 234, 0.5); } `; infoDisplay.innerHTML = displayContent; if (!isInfoVisible) { isInfoVisible = true; infoDisplay.style.display = 'block'; requestAnimationFrame(() => { infoDisplay.style.opacity = '1'; infoDisplay.style.transform = 'translateY(0)'; }); toggleInfoButton.innerHTML = '收起信息'; } } }); autoSelectButton.addEventListener('click', () => { autoSelectAnswers(); }); addRippleEffect(infoButton); addRippleEffect(autoSelectButton); addRippleEffect(toggleInfoButton); const footerBar = document.createElement('div'); footerBar.style.cssText = ` width: 100%; padding: 8px 0; margin-top: 8px; border-top: 1px solid rgba(255, 255, 255, 0.2); font-size: 12px; text-align: center; font-weight: 500; letter-spacing: 0.5px; background: linear-gradient(135deg, rgba(102, 126, 234, 0.05), rgba(118, 75, 162, 0.05)); border-radius: 0 0 20px 20px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: all 0.3s; position: relative; overflow: hidden; `; const link = document.createElement('a'); link.href = 'javascript:void(0);'; link.innerHTML = 'By恶搞之家'; link.style.cssText = ` color: rgba(0, 0, 0, 0.6); text-decoration: none; cursor: pointer; user-select: none; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); position: relative; z-index: 1; background: linear-gradient(90deg, #667eea, #764ba2); -webkit-background-clip: text; background-clip: text; &:hover { color: transparent; letter-spacing: 2px; text-shadow: 0 2px 10px rgba(102, 126, 234, 0.3); transform: translateY(-1px); } `; const underline = document.createElement('div'); underline.style.cssText = ` position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, #667eea, #764ba2); transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; border-radius: 1px; `; link.appendChild(underline); link.addEventListener('mouseenter', () => { underline.style.width = '100%'; underline.style.opacity = '1'; }); link.addEventListener('mouseleave', () => { underline.style.width = '0'; underline.style.opacity = '0'; }); const imagePopup = document.createElement('div'); imagePopup.style.cssText = ` display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 10001; justify-content: center; align-items: center; opacity: 0; transition: opacity 0.3s ease; `; const imageContainer = document.createElement('div'); imageContainer.style.cssText = ` position: relative; max-width: 90%; max-height: 90%; border-radius: 20px; overflow: hidden; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); transform: scale(0.9); transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); `; const image = document.createElement('img'); image.src = 'data:image/png;base64,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'; // 替换为你想要显示的图片URL image.style.cssText = ` display: block; max-width: 100%; max-height: 90vh; border-radius: 20px; `; const closeButton = document.createElement('button'); closeButton.innerHTML = '×'; closeButton.style.cssText = ` position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border: none; background: rgba(255, 255, 255, 0.2); color: white; font-size: 24px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s; backdrop-filter: blur(5px); &:hover { background: rgba(255, 255, 255, 0.3); transform: rotate(90deg); } `; const shine = document.createElement('div'); shine.style.cssText = ` position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s; `; footerBar.appendChild(shine); footerBar.addEventListener('mouseenter', () => { shine.style.left = '100%'; }); footerBar.addEventListener('mouseleave', () => { shine.style.left = '-100%'; }); imageContainer.appendChild(image); imageContainer.appendChild(closeButton); imagePopup.appendChild(imageContainer); document.body.appendChild(imagePopup); link.addEventListener('click', () => { imagePopup.style.display = 'flex'; requestAnimationFrame(() => { imagePopup.style.opacity = '1'; imageContainer.style.transform = 'scale(1)'; }); }); const closeImage = () => { imagePopup.style.opacity = '0'; imageContainer.style.transform = 'scale(0.9)'; setTimeout(() => { imagePopup.style.display = 'none'; }, 300); }; closeButton.addEventListener('click', closeImage); imagePopup.addEventListener('click', (e) => { if (e.target === imagePopup) { closeImage(); } }); document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && imagePopup.style.display === 'flex') { closeImage(); } }); footerBar.appendChild(link); buttonContainer.appendChild(minimizeButton); titleBar.appendChild(buttonContainer); container.appendChild(titleBar); selectContainer.appendChild(label); selectContainer.appendChild(select); contentContainer.appendChild(selectContainer); contentContainer.appendChild(infoButton); contentContainer.appendChild(autoSelectButton); contentContainer.appendChild(toggleInfoButton); contentContainer.appendChild(infoDisplay); contentContainer.appendChild(footerBar); container.appendChild(contentContainer); document.body.appendChild(container); } function processSpecialNumbering(answers) { const result = []; for (let i = 0; i < answers.length; i++) { let answer = answers[i]; let lines = answer.split(/\n/).map(line => line.trim()).filter(Boolean); let processedLines = []; for (let j = 0; j < lines.length; j++) { let currentLine = lines[j]; let nextLine = j + 1 < lines.length ? lines[j + 1] : ''; if (/^\d+$/.test(currentLine) && nextLine.match(/^[00][\.\、\))]/)) { const prefix = currentLine; const match = nextLine.match(/^[00]([\.\、\))].*)/); if (match) { processedLines.push(`${prefix}${match[1]}`); j++; } else { processedLines.push(currentLine); } } else { processedLines.push(currentLine); } } result.push(processedLines.join('\n')); } return result; } async function searchAnswers(questionBankContent, chapterContent, topicContent, nextTopicName) { try { chapterContent = chapterContent.trim(); topicContent = topicContent.trim(); nextTopicName = nextTopicName ? nextTopicName.trim() : ''; const chapterMatch = chapterContent.match(/(\d+[-\.]\d+)\s*(.*)/); const chapterNumber = chapterMatch ? chapterMatch[1] : ''; const chapterName = chapterMatch ? chapterMatch[2] : chapterContent; const lines = questionBankContent.split('\n').map(line => line.trim()).filter(line => line); let chapterIndex = -1; for (let i = 0; i < lines.length; i++) { const line = lines[i]; const lineChapterMatch = line.match(/(\d+[-\.]\d+)/); if (lineChapterMatch) { const lineChapterNum = lineChapterMatch[1]; const normalizedLineNum = lineChapterNum.replace('-', '.').trim(); const normalizedChapterNum = chapterNumber.replace('-', '.').trim(); if (normalizedLineNum === normalizedChapterNum) { chapterIndex = i; break; } } } if (chapterIndex === -1) { console.log('未找到对应章节,章节编号:', chapterNumber, '章节名称:', chapterName); return []; } let topicIndex = -1; let searchRange = Math.min(chapterIndex + 100, lines.length); const topicParts = topicContent.split(':').map(part => part.trim()); const mainTopic = topicParts[topicParts.length - 1].trim(); for (let i = chapterIndex; i < searchRange; i++) { if (lines[i].includes(mainTopic)) { topicIndex = i; break; } } if (topicIndex === -1) { console.log('未在章节附近找到对应主题:', mainTopic); return []; } let answers = []; let currentAnswer = ''; let lastNumber = 0; let answerBuffer = []; for (let i = topicIndex + 1; i < searchRange; i++) { let line = lines[i].trim(); if (nextTopicName && line.includes(nextTopicName)) { line = line.replace(nextTopicName, '').trim(); if (line) { const numberMatch = line.match(/^(\d+)[\.\、\))]/); if (numberMatch) { const currentNumber = parseInt(numberMatch[1]); if (currentNumber === 1) { if (answerBuffer.length > 0) { answers.push(answerBuffer.join(' ')); answerBuffer = []; } } answerBuffer.push(line); lastNumber = currentNumber; } else if (answerBuffer.length > 0) { answerBuffer[answerBuffer.length - 1] += ' ' + line; } } break; } const numberMatch = line.match(/^(\d+)[\.\、\))]/); if (numberMatch) { const currentNumber = parseInt(numberMatch[1]); if (currentNumber === 1) { if (answerBuffer.length > 0) { answers.push(answerBuffer.join(' ')); answerBuffer = []; } } answerBuffer.push(line); lastNumber = currentNumber; } else if (answerBuffer.length > 0 && line) { answerBuffer[answerBuffer.length - 1] += ' ' + line; } } if (answerBuffer.length > 0) { answers.push(answerBuffer.join(' ')); } answers = processSpecialNumbering(answers); return answers; } catch (error) { console.error('搜索答案时发生错误:', error); return []; } } function fetchQuestionBank(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'GET', url: url, onload: function(response) { if (response.status === 200) { resolve(response.responseText); } else { reject(new Error('获取题库失败: ' + response.status)); } }, onerror: function(error) { reject(error); } }); }); } function formatAnswer(answer) { if (!answer) return ''; const lines = answer.split(/\n/).map(line => line.trim()).filter(Boolean); return '\n' + lines.join('\n') + '\n'; } function deduplicateAnswers(answers) { const uniqueAnswers = new Set(); const result = []; for (const answer of answers) { const lowerAnswer = answer.toLowerCase(); if (!uniqueAnswers.has(lowerAnswer)) { uniqueAnswers.add(lowerAnswer); result.push(answer); } } return result; } async function autoSelectAnswers() { try { const contentInfo = await getContentInfo(); if (!contentInfo || !contentInfo.answers || contentInfo.answers.length === 0) { console.log('%c未找到匹配的答案', 'color: #f44336; font-weight: bold;'); return; } if (contentInfo.activeTopicName !== lastActiveTopicName) { currentTopicUsedAnswers.clear(); lastActiveTopicName = contentInfo.activeTopicName; console.log('%c检测到主题切换,已重置答案使用记录', 'color: #2196F3;'); } const textareas = document.querySelectorAll('textarea.question-inputbox-input'); if (textareas && textareas.length > 0) { console.log('%c检测到文本框题,开始自动填写答案', 'color: #4CAF50; font-weight: bold;'); let selectedAnswer = null; for (const answer of contentInfo.answers) { if (!currentTopicUsedAnswers.has(answer)) { selectedAnswer = answer; currentTopicUsedAnswers.add(answer); console.log('%c使用新答案组', 'color: #2196F3;', answer); break; } } if (!selectedAnswer) { console.log('%c所有答案组都已使用,将重用第一组答案', 'color: #FFA500;'); selectedAnswer = contentInfo.answers[0]; } const answerMatches = selectedAnswer.match(/\d+[\.\、\))][\s\S]*?(?=\d+[\.\、\))]|$)/g); if (!answerMatches) { console.log('%c无法解析答案格式', 'color: #f44336;'); return; } textareas.forEach((textarea, index) => { try { if (answerMatches[index]) { const answer = answerMatches[index] .replace(/^\d+[\.\、\))]\s*/, '') .trim(); textarea.value = answer + '\n'; const events = [ new Event('focus', { bubbles: true }), new Event('input', { bubbles: true }), new MouseEvent('mousedown', { bubbles: true }), new MouseEvent('mouseup', { bubbles: true }), new MouseEvent('click', { bubbles: true }), new Event('change', { bubbles: true }), new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }), new KeyboardEvent('keyup', { key: 'Enter', bubbles: true }), new Event('blur', { bubbles: true }) ]; events.forEach((event, eventIndex) => { setTimeout(() => { textarea.dispatchEvent(event); if (event.type === 'click') { textarea.setSelectionRange(0, answer.length); } }, eventIndex * 50); }); textarea.focus(); textarea.scrollIntoView({ behavior: 'smooth', block: 'center' }); setTimeout(() => { textarea.setSelectionRange(0, 0); setTimeout(() => { textarea.setSelectionRange(answer.length, answer.length); }, 100); }, 500); console.log(`%c第 ${index + 1} 题已填写文本答案`, 'color: #2196F3;'); } else { console.log(`%c第 ${index + 1} 题未找到对应答案`, 'color: #f44336;'); } } catch (error) { console.error(`填写第 ${index + 1} 题时发生错误:`, error); } }); return; } const fillInBlanks = document.querySelectorAll('.fe-scoop'); if (fillInBlanks && fillInBlanks.length > 0) { console.log('%c检测到填空题,开始自动填写答案', 'color: #4CAF50; font-weight: bold;'); let selectedAnswer = null; for (const answer of contentInfo.answers) { if (!currentTopicUsedAnswers.has(answer)) { selectedAnswer = answer; currentTopicUsedAnswers.add(answer); console.log('%c使用新答案组', 'color: #2196F3;', answer); break; } } if (!selectedAnswer) { console.log('%c所有答案组都已使用,将重用第一组答案', 'color: #FFA500;'); selectedAnswer = contentInfo.answers[0]; } const answerMatches = selectedAnswer.match(/\d+[\.\、\))]\s*([^\d\n]+)/g); if (!answerMatches) { console.log('%c无法解析答案格式', 'color: #f44336;'); return; } fillInBlanks.forEach((blank, index) => { try { const inputContainer = blank.querySelector('.comp-abs-input'); const input = inputContainer ? inputContainer.querySelector('input') : null; if (input && answerMatches[index]) { const answer = answerMatches[index].replace(/^\d+[\.\、\))]\s*/, '').trim(); input.value = answer + '\n'; const event = new Event('input', { bubbles: true }); input.dispatchEvent(event); console.log(`%c第 ${index + 1} 题已填写答案: ${answer}`, 'color: #2196F3;'); } else { console.log(`%c第 ${index + 1} 题未找到输入框或答案`, 'color: #f44336;'); } } catch (error) { console.error(`填写第 ${index + 1} 题时发生错误:`, error); } }); return; } const choiceContainer = document.querySelector('.question-common-abs-choice'); const optionDivs = document.querySelectorAll('div.option'); if (!choiceContainer && (!optionDivs || optionDivs.length === 0)) { console.log('%c当前页面既不是选择题也不是填空题也不是文本框题', 'color: #f44336; font-weight: bold;'); return; } const questions = choiceContainer ? document.querySelectorAll('.question-common-abs-reply') : document.querySelectorAll('.question-common-abs-banked-cloze'); if (!questions || questions.length === 0) { console.log('%c未找到题目', 'color: #f44336; font-weight: bold;'); return; } console.log('%c开始自动选择答案', 'color: #4CAF50; font-weight: bold;'); let selectedAnswer = null; for (const answer of contentInfo.answers) { if (!currentTopicUsedAnswers.has(answer)) { selectedAnswer = answer; currentTopicUsedAnswers.add(answer); console.log('%c使用新答案组', 'color: #2196F3;', answer); break; } } if (!selectedAnswer) { console.log('%c所有答案组都已使用,将重用第一组答案', 'color: #FFA500;'); selectedAnswer = contentInfo.answers[0]; } questions.forEach((question, questionIndex) => { const options = choiceContainer ? question.querySelectorAll('.option.isNotReview') : question.querySelectorAll('div.option'); if (!options || options.length === 0) { console.log(`%c第 ${questionIndex + 1} 题未找到选项`, 'color: #f44336;'); return; } const answerPattern = /(\d+)[\.\、\))]\s*([A-K](?:\s*,\s*[A-K])*)/g; const answers = []; let match; answerPattern.lastIndex = 0; while ((match = answerPattern.exec(selectedAnswer)) !== null) { const questionNum = parseInt(match[1]); const answerChoices = match[2].split(/\s*,\s*/); answers[questionNum - 1] = answerChoices; } if (answers.length > 0 && questionIndex < answers.length) { const answerChoices = answers[questionIndex]; if (answerChoices && answerChoices.length > 0) { console.log(`%c第 ${questionIndex + 1} 题检测到答案: ${answerChoices.join(', ')}`, 'color: #2196F3;'); answerChoices.forEach((letter, letterIndex) => { let targetOption = null; for (let i = 0; i < options.length; i++) { const caption = options[i].querySelector('.caption'); if (caption && caption.textContent.trim() === letter) { targetOption = options[i]; break; } } if (targetOption) { setTimeout(() => { const isSelected = targetOption.classList.contains('selected'); if (!isSelected) { targetOption.click(); console.log(`%c第 ${questionIndex + 1} 题已选择选项 ${letter}`, 'color: #2196F3;'); } else { console.log(`%c第 ${questionIndex + 1} 题选项 ${letter} 已经被选中`, 'color: #FFA500;'); } }, (questionIndex * 500) + (letterIndex * 200)); } else { console.log(`%c第 ${questionIndex + 1} 题未找到选项 ${letter}`, 'color: #f44336;'); } }); } else { console.log(`%c第 ${questionIndex + 1} 题未找到答案`, 'color: #f44336;'); } } else { console.log(`%c第 ${questionIndex + 1} 题未找到答案`, 'color: #f44336;'); } }); } catch (error) { console.error('自动选择答案时发生错误:', error); } } async function getContentInfo() { try { const chapterElement = document.querySelector("#root > div:nth-child(1) > div.question-common-abs-question-container > section > section > header > div.pc-break-crumb-container > nav > ol > li:nth-child(3) > span.ant-breadcrumb-link > span"); const topicElement = document.querySelector("#root > div:nth-child(1) > div.question-common-abs-question-container > section > section > header > div.pc-header-tasks-container > div > div > div > div > div"); const chapterContent = chapterElement ? chapterElement.textContent.trim() : '未找到章节内容'; const topicContent = topicElement ? topicElement.textContent.trim() : '未找到主题内容'; const tabContainer = document.querySelector('.pc-tab-container'); const allTopics = tabContainer ? tabContainer.querySelectorAll('.ant-col') : []; const totalTopics = allTopics.length; const allTopicNames = []; allTopics.forEach((topic, index) => { const topicDiv = topic.querySelector('.pc-tab-view-container'); if (topicDiv) { const isActive = topic.classList.contains('pc-header-tab-activity'); allTopicNames.push({ index: index + 1, name: topicDiv.textContent.trim(), isActive: isActive }); } }); let activeTopicName = ''; let nextTopicName = ''; let foundActive = false; for (let i = 0; i < allTopicNames.length; i++) { if (foundActive) { nextTopicName = allTopicNames[i].name; break; } if (allTopicNames[i].isActive) { activeTopicName = allTopicNames[i].name; foundActive = true; } } console.log('%c当前页面信息', 'color: #2196F3; font-weight: bold; font-size: 14px;'); console.log('章节内容:', chapterContent); console.log('主题内容:', topicContent); console.log('主题总数:', totalTopics); console.log('当前选中的主题:', activeTopicName || '未找到选中的主题'); console.log('下一个主题:', nextTopicName || '没有下一个主题'); console.log('\n%c所有主题列表', 'color: #2196F3; font-weight: bold; font-size: 14px;'); allTopicNames.forEach(topic => { console.log(`${topic.index}. ${topic.name} ${topic.isActive ? '(当前选中)' : ''}`); }); let answers = []; try { console.log('\n%c正在从题库搜索答案...', 'color: #4CAF50; font-weight: bold; font-size: 14px;'); const questionBankContent = await fetchQuestionBank(currentQuestionBankUrl); answers = await searchAnswers(questionBankContent, chapterContent, topicContent, nextTopicName); console.log('\n%c匹配到的答案', 'color: #4CAF50; font-weight: bold; font-size: 14px;'); if (answers.length === 0) { console.log('%c未找到匹配的答案', 'color: #f44336;'); } else { answers.forEach((answer, index) => { console.log(`\n%c答案 ${index + 1}:`, 'color: #4CAF50; font-weight: bold;'); console.log(formatAnswer(answer)); }); } } catch (error) { console.error('获取或搜索题库时发生错误:', error); } return { chapter: chapterContent, topic: topicContent, totalTopics: totalTopics, activeTopicName: activeTopicName, nextTopicName: nextTopicName, allTopics: allTopicNames, answers: answers }; } catch (error) { console.error('获取内容时发生错误:', error); return null; } } window.addEventListener('load', createFloatingButton);