LeetCode 获取题解 Markdown 源码, 自动启用运行结果差别.
// ==UserScript==
// @name LeetCode 获取题解 Markdown, 自动启用运行结果差别.
// @description LeetCode 获取题解 Markdown 源码, 自动启用运行结果差别.
// @namespace https://github.com/symant233
// @match https://leetcode-cn.com/problems/*
// @version 0.0.2
// @author symant233
// @homepageURL https://github.com/symant233
// @icon https://cdn.jsdelivr.net/gh/symant233/PublicTools/Beautify/Bkela.png
// @license GPL-3.0
// ==/UserScript==
;(function() {
// 控制台获取题解 Markdown 源码
function getMarkdown() {
const node = document.querySelector('div[class*="ContentContainer"]');
const key = Object.keys(node).find(key=>{
return key.startsWith("__reactEventHandlers$");
});
console.log(node[key].children[0].props.children);
}
globalThis.getMarkdown = getMarkdown;
// 自动开启运行结果差别
function enableDiff () {
const btn = document.querySelector('label[class*="Label-StyledSwitch"]');
if (btn && !btn.getAttribute('beautify-data')) {
btn.setAttribute('beautify-data', true);
btn.click();
}
}
setTimeout(() => {
document.querySelector('div[class*=second-section-container] > div:last-child button').click();
new Promise(resolve => {
const container = document.querySelector('div[class*="CodeAreaContainer"]');
if (container) {
new MutationObserver((mutationList) => {
mutationList.forEach((mutation) => {
if (mutation.oldValue) enableDiff();
});
}).observe(container, {
attributes: true,
attributeOldValue: true,
subtree: true,
});
}
resolve();
});
}, 2600);
})();