您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds AI capabilities to Mathspace
当前为
// ==UserScript== // @name Mathspace Interface with AI // @namespace http://tampermonkey.net/ // @version 0.1 // @description Adds AI capabilities to Mathspace // @author PrimeMinisteModiji1111111111 // @match https://*.mathspace.co/* // @match https://mathspace.co/* // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (function() { 'use strict'; // Add required styles - keeping most of the original styles but adjusting for Mathspace's design const styles = ` /* Original styles remain largely the same, but with Mathspace-specific adjustments */ .ms-ai-container { position: fixed; bottom: 20px; right: 20px; z-index: 9999; width: 400px; background-color: white; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); display: none; } .ms-ai-header { padding: 16px; border-bottom: 1px solid #E5E7EB; display: flex; justify-content: space-between; align-items: center; } .ms-ai-toggle { position: fixed; bottom: 20px; right: 20px; z-index: 9999; width: 60px; height: 60px; border-radius: 50%; background: #12957D; color: white; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.15); } /* Reuse existing styles with ms- prefix */ .ms-search-form { position: relative; display: flex; align-items: center; width: 100%; height: 40px; background: white; border: 1px solid #E5E7EB; border-radius: 9999px; padding: 8px 75px 8px 16px; margin: 16px; } /* Rest of the styles remain the same but with ms- prefix */ ${styles.replace(/mathful-/g, 'ms-')} `; GM_addStyle(styles); // Create floating AI helper button and panel function createAIHelper() { // Create toggle button const toggleButton = document.createElement('div'); toggleButton.className = 'ms-ai-toggle'; toggleButton.innerHTML = ` <svg width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 16h2v-2h-2v2zm1.61-7.83c.04-.16.06-.32.06-.48 0-.88-.72-1.6-1.6-1.6s-1.6.72-1.6 1.6.72 1.6 1.6 1.6h.48l1.06 1.06v.52l-.72.72v.88l-.88.88v1.2h3.12v-1.2l-.88-.88v-.88l-.72-.72V11l1.08-1.08c.16.04.32.06.48.06.88 0 1.6-.72 1.6-1.6s-.72-1.6-1.6-1.6-1.6.72-1.6 1.6c0 .16.02.32.06.48L12 9.93l-.39-.39z" fill="currentColor"/> </svg> `; // Create AI helper panel const helperPanel = document.createElement('div'); helperPanel.className = 'ms-ai-container'; helperPanel.innerHTML = ` <div class="ms-ai-header"> <h3>Math AI Assistant</h3> <button class="ms-close-button">×</button> </div> <form class="ms-search-form"> <input type="text" class="ms-search-input" placeholder="Ask about this problem" required /> <button type="submit" class="submit-button"> <svg viewBox="0 0 24 24" width="20" height="20"> <path fill="currentColor" d="M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/> </svg> </button> </form> <div class="ms-ai-content"></div> `; // Add to page document.body.appendChild(toggleButton); document.body.appendChild(helperPanel); // Toggle panel visibility toggleButton.addEventListener('click', () => { helperPanel.style.display = helperPanel.style.display === 'none' ? 'block' : 'none'; }); // Close button functionality const closeButton = helperPanel.querySelector('.ms-close-button'); closeButton.addEventListener('click', () => { helperPanel.style.display = 'none'; }); // Handle form submission const searchForm = helperPanel.querySelector('.ms-search-form'); searchForm.addEventListener('submit', async (e) => { e.preventDefault(); const input = searchForm.querySelector('.ms-search-input'); const query = input.value.trim(); if (query) { // Get current problem context const problemContext = getCurrentProblemContext(); await handleAIQuery(query, problemContext); } }); } // Get the current problem context from Mathspace function getCurrentProblemContext() { // Extract problem information from the current page const problemElement = document.querySelector('.question-text, .problem-statement'); const problemText = problemElement ? problemElement.textContent.trim() : ''; // Get any relevant images const problemImages = Array.from(document.querySelectorAll('.question-image, .problem-image')) .map(img => img.src); return { problemText, problemImages, url: window.location.href, timestamp: new Date().toISOString() }; } // Handle AI query async function handleAIQuery(query, context) { const aiContent = document.querySelector('.ms-ai-content'); aiContent.innerHTML = '<div class="loading">Processing your request...</div>'; try { // TODO: Replace with actual API call const response = await simulateAIResponse(query, context); aiContent.innerHTML = ` <div class="ms-ai-response"> <div class="ms-ai-answer">${response.answer}</div> ${response.steps ? `<div class="ms-ai-steps">${response.steps}</div>` : ''} </div> `; } catch (error) { aiContent.innerHTML = `<div class="error">Sorry, there was an error processing your request.</div>`; } } // Temporary function to simulate AI response function simulateAIResponse(query, context) { return new Promise((resolve) => { setTimeout(() => { resolve({ answer: `Here's how to solve this problem: ${query}`, steps: `<ol> <li>First, understand the problem</li> <li>Break it down into steps</li> <li>Apply relevant formulas</li> <li>Check your work</li> </ol>` }); }, 1000); }); } // Initialize when page is loaded window.addEventListener('load', () => { createAIHelper(); }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址