commit 0b5d8684f96517c08ba7f558cd86c40f36120bac Author: 庄裕旻 Date: Sun Jun 2 07:36:57 2024 +0000 Add OJ评测结果魔改器.user.js diff --git a/OJ评测结果魔改器.user.js b/OJ评测结果魔改器.user.js new file mode 100644 index 0000000..95974fe --- /dev/null +++ b/OJ评测结果魔改器.user.js @@ -0,0 +1,39 @@ +// ==UserScript== +// @name OJ评测结果魔改器 +// @namespace https://zymsite.ink/ +// @version 1.0.0 +// @description 胡乱修改评测结果显示页面 +// @author happyZYM +// @match https://acm.sjtu.edu.cn/OnlineJudge/* +// @run-at document-idle +// ==/UserScript== + +(function() { + 'use strict'; + function replaceTextContent(node, targetText, replacementText) { + if (node.nodeType === Node.TEXT_NODE) { + // 如果是文本节点,并且文本内容包含 `Accepted`,则替换成新的文本 + node.nodeValue = node.nodeValue.replace(targetText, replacementText); + } else { + // 如果节点是元素节点,需要检查它的文本内容 + node.childNodes.forEach(childNode => replaceTextContent(childNode, targetText, replacementText)); + + // 检查元素的自身文本内容 + if (node.nodeType === Node.ELEMENT_NODE) { + if (node.hasChildNodes() === false && node.textContent.includes(targetText)) { + node.textContent = node.textContent.replace(targetText, replacementText); + } + } + } + } + + // 从网页的 body 元素开始,替换所有文本内容为 `Accepted` 的节点 + replaceTextContent(document.body, 'Accepted', 'Answer Corrupt'); + replaceTextContent(document.body, 'Wrong Answer', 'Wonderful Answer'); + replaceTextContent(document.body, 'Time Limit Exceeded', 'Time Limit Enough'); + replaceTextContent(document.body, 'Disk Limit Exceeded', 'Disk Limit Enough'); + replaceTextContent(document.body, 'Memory Limit Exceeded', 'Memory Limit Enough'); + replaceTextContent(document.body, 'Compile Error', 'Compile Excellent'); + replaceTextContent(document.body, 'Runtime Error', 'Runtime Excellent'); + replaceTextContent(document.body, 'Aborted', 'Approved'); +})(); \ No newline at end of file