Add OJ评测结果魔改器.user.js

This commit is contained in:
2024-06-02 07:36:57 +00:00
commit 0b5d8684f9

View File

@ -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');
})();