From a4fcb211f4d71b20d1c3efb611af36cddda4882b Mon Sep 17 00:00:00 2001 From: Renkin <906155099@qq.com> Date: Thu, 19 Oct 2023 14:52:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8F=AF=E8=A7=86?= =?UTF-8?q?=E5=8C=96=E8=B0=83=E8=AF=95=E5=92=8C=E5=86=99=E9=A2=98=E8=A7=A3?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/contentScript.js | 79 +++++++++++++++++++--------------- src/solutionTemplate/index.jsx | 8 ++-- 2 files changed, 47 insertions(+), 40 deletions(-) diff --git a/src/contentScript.js b/src/contentScript.js index 5775d2a..2194bb0 100644 --- a/src/contentScript.js +++ b/src/contentScript.js @@ -211,7 +211,7 @@ function getProviedTestCases(includeArray = true) { // } function goToVisDebug() { - const language = document.querySelector("#lang-select").innerText; + const language = getCodeLanguage(); const supportedLanguages = ["Python3", "JavaScript", "C++"]; const languageMap = { Python3: "3", @@ -345,11 +345,24 @@ int main() ); } +function getCodeLanguage() { + const langMap = { + "cpp": "C++", + "python3": "Python3", + "java": "Java", + "c": "C", + "javascript": "JavaScript", + } + const l =window?.monaco?.editor?.getModels()[0]?.getLanguageId() || + localStorage.getItem("global_lang") + + return langMap[l.toLowerCase()] + +} function insertButton() { const buttons = document.querySelectorAll("button"); for (var i = 0; i < buttons.length; ++i) { - if (buttons[i].innerText.includes("执行代码")) { - + if (buttons[i].innerText.includes("运行")) { // const container = document.createElement("div"); // buttons[i].parentElement.prepend(container); @@ -363,18 +376,18 @@ function insertButton() { // ); // const writeSolutionButton = document.createElement("div"); - const copyButton = buttons[i].cloneNode(true); - copyButton.innerText = "复制用例"; - copyButton.style["margin-left"] = "10px"; - copyButton.onclick = () => { - const cases = getProviedTestCases(); - if (cases.filter(Boolean).length === 0) return bjwd(); - copyToClipboard(cases.join("\n")); - message.success({ - content: "复制成功~", - }); - }; - buttons[i].parentElement.prepend(copyButton); + // const copyButton = buttons[i].cloneNode(true); + // copyButton.innerText = "复制用例"; + // copyButton.style["margin-left"] = "10px"; + // copyButton.onclick = () => { + // const cases = getProviedTestCases(); + // if (cases.filter(Boolean).length === 0) return bjwd(); + // copyToClipboard(cases.join("\n")); + // message.success({ + // content: "复制成功~", + // }); + // }; + // buttons[i].parentElement.prepend(copyButton); const writeSolutionButton = document.createElement("a"); writeSolutionButton.innerText = "写题解"; writeSolutionButton.style["margin-right"] = "20px"; @@ -383,29 +396,25 @@ function insertButton() { writeSolutionButton.onclick = () => { // d: "1579. 保证图可完全遍历" - const ele = document.querySelector(`[data-cypress="QuestionTitle"]`); + const desc = document.querySelector( + "[data-track-load=\"description_content\"]" + ).innerHTML; - if (!ele) { + if (!desc) { return message.warn({ content: "获取题目描述失败,请先切换到题目描述标签", }); } - const d = ele.innerHTML; - const title = d.match(/(\d+.+)(?=<)/)[1]; - const link = window.location.origin + d.match(/href="(.*?)"/)[1]; - const language = document.querySelector("#lang-select").innerText; + const title = document.title; + const link = window.location.href; + const language = getCodeLanguage(); // let code = document.querySelector( // ".monaco-scrollable-element,.editor-scrollable" // ).innerText; const code = window?.monaco?.editor?.getModels()[0]?.getValue(); - const desc = document.querySelector("#question-detail-main-tabs") - ?.children[1]?.children[0]?.children[1]?.innerText; - if (!desc) { - return message.warn({ - content: "获取题目描述失败,请先切换到题目描述标签", - }); - } + // const desc = document.querySelector("#question-detail-main-tabs")?.children[1]?.children[0]?.children[1]?.innerText; + const hide = message.loading("正在存储题目信息,请稍后~", 0); writeSolutionButton.setAttribute("disabled", true); // Dismiss manually and asynchronously @@ -478,7 +487,7 @@ function insertButton() { buttons[i].parentElement.prepend(visDebugButton); inserted = true; } else if (buttons[i].innerText.includes("提交")) { - const click = buttons[i].onclick + const click = buttons[i].onclick; buttons[i].onclick = (...args) => { click.call(buttons[i], ...args); @@ -518,12 +527,12 @@ const timerId = setInterval(() => { clearInterval(timerId); return console.error("初始化 chrome 插件 content script 失败"); } - insertButton() - if (inserted && submitProxied) { - window.location.title = ""; - // 可进入禅定模式 - zenAble(); - } + insertButton(); + // if (inserted && submitProxied) { + // window.location.title = ""; + // // 可进入禅定模式 + // zenAble(); + // } retried++; }, 1000); diff --git a/src/solutionTemplate/index.jsx b/src/solutionTemplate/index.jsx index 0696913..61cb401 100644 --- a/src/solutionTemplate/index.jsx +++ b/src/solutionTemplate/index.jsx @@ -81,9 +81,7 @@ ${link} ## 题目描述 -\`\`\` ${desc} -\`\`\` ## 前置知识 @@ -343,9 +341,9 @@ export default class SolutionTemplate extends PureComponent { this.setLanguage(v); this.setTemplate( template - .replace(new RegExp(`\`\`\`.+`, "mg"), `\`\`\`${v}`) - .replace( - new RegExp(`语言支持:.+`, "mg"), + .replace(new RegExp(`\`\`\`.+`, "mg"), `\`\`\`${v}`) + .replace( + new RegExp(`语言支持:.+`, "mg"), `语言支持:${displayLanguage(v)}` ) .replace(