Skip to content

Commit cde9a4a

Browse files
committed
fix: 修复可视化调试和写题解两个按钮
1 parent e8c73ea commit cde9a4a

File tree

2 files changed

+47
-40
lines changed

2 files changed

+47
-40
lines changed

‎src/contentScript.js

+44-35
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ function getProviedTestCases(includeArray = true) {
211211
// }
212212

213213
function goToVisDebug() {
214-
const language = document.querySelector("#lang-select").innerText;
214+
const language = getCodeLanguage();
215215
const supportedLanguages = ["Python3", "JavaScript", "C++"];
216216
const languageMap = {
217217
Python3: "3",
@@ -345,11 +345,24 @@ int main()
345345
);
346346
}
347347

348+
function getCodeLanguage() {
349+
const langMap = {
350+
"cpp": "C++",
351+
"python3": "Python3",
352+
"java": "Java",
353+
"c": "C",
354+
"javascript": "JavaScript",
355+
}
356+
const l =window?.monaco?.editor?.getModels()[0]?.getLanguageId() ||
357+
localStorage.getItem("global_lang")
358+
359+
return langMap[l.toLowerCase()]
360+
361+
}
348362
function insertButton() {
349363
const buttons = document.querySelectorAll("button");
350364
for (var i = 0; i < buttons.length; ++i) {
351-
if (buttons[i].innerText.includes("执行代码")) {
352-
365+
if (buttons[i].innerText.includes("运行")) {
353366
// const container = document.createElement("div");
354367

355368
// buttons[i].parentElement.prepend(container);
@@ -363,18 +376,18 @@ function insertButton() {
363376
// );
364377

365378
// const writeSolutionButton = document.createElement("div");
366-
const copyButton = buttons[i].cloneNode(true);
367-
copyButton.innerText = "复制用例";
368-
copyButton.style["margin-left"] = "10px";
369-
copyButton.onclick = () => {
370-
const cases = getProviedTestCases();
371-
if (cases.filter(Boolean).length === 0) return bjwd();
372-
copyToClipboard(cases.join("\n"));
373-
message.success({
374-
content: "复制成功~",
375-
});
376-
};
377-
buttons[i].parentElement.prepend(copyButton);
379+
// const copyButton = buttons[i].cloneNode(true);
380+
// copyButton.innerText = "复制用例";
381+
// copyButton.style["margin-left"] = "10px";
382+
// copyButton.onclick = () => {
383+
// const cases = getProviedTestCases();
384+
// if (cases.filter(Boolean).length === 0) return bjwd();
385+
// copyToClipboard(cases.join("\n"));
386+
// message.success({
387+
// content: "复制成功~",
388+
// });
389+
// };
390+
// buttons[i].parentElement.prepend(copyButton);
378391
const writeSolutionButton = document.createElement("a");
379392
writeSolutionButton.innerText = "写题解";
380393
writeSolutionButton.style["margin-right"] = "20px";
@@ -383,29 +396,25 @@ function insertButton() {
383396
writeSolutionButton.onclick = () => {
384397
// d: "<a href="/problems/remove-max-number-of-edges-to-keep-graph-fully-traversable/">1579. 保证图可完全遍历</a>"
385398

386-
const ele = document.querySelector(`[data-cypress="QuestionTitle"]`);
399+
const desc = document.querySelector(
400+
"[data-track-load=\"description_content\"]"
401+
).innerHTML;
387402

388-
if (!ele) {
403+
if (!desc) {
389404
return message.warn({
390405
content: "获取题目描述失败,请先切换到题目描述标签",
391406
});
392407
}
393-
const d = ele.innerHTML;
394-
const title = d.match(/(\d+.+)(?=<)/)[1];
395-
const link = window.location.origin + d.match(/href="(.*?)"/)[1];
396-
const language = document.querySelector("#lang-select").innerText;
408+
const title = document.title;
409+
const link = window.location.href;
410+
const language = getCodeLanguage();
397411
// let code = document.querySelector(
398412
// ".monaco-scrollable-element,.editor-scrollable"
399413
// ).innerText;
400414
const code = window?.monaco?.editor?.getModels()[0]?.getValue();
401415

402-
const desc = document.querySelector("#question-detail-main-tabs")
403-
?.children[1]?.children[0]?.children[1]?.innerText;
404-
if (!desc) {
405-
return message.warn({
406-
content: "获取题目描述失败,请先切换到题目描述标签",
407-
});
408-
}
416+
// const desc = document.querySelector("#question-detail-main-tabs")?.children[1]?.children[0]?.children[1]?.innerText;
417+
409418
const hide = message.loading("正在存储题目信息,请稍后~", 0);
410419
writeSolutionButton.setAttribute("disabled", true);
411420
// Dismiss manually and asynchronously
@@ -478,7 +487,7 @@ function insertButton() {
478487
buttons[i].parentElement.prepend(visDebugButton);
479488
inserted = true;
480489
} else if (buttons[i].innerText.includes("提交")) {
481-
const click = buttons[i].onclick
490+
const click = buttons[i].onclick;
482491
buttons[i].onclick = (...args) => {
483492
click.call(buttons[i], ...args);
484493

@@ -518,12 +527,12 @@ const timerId = setInterval(() => {
518527
clearInterval(timerId);
519528
return console.error("初始化 chrome 插件 content script 失败");
520529
}
521-
insertButton()
522-
if (inserted && submitProxied) {
523-
window.location.title = "";
524-
// 可进入禅定模式
525-
zenAble();
526-
}
530+
insertButton();
531+
// if (inserted && submitProxied) {
532+
// window.location.title = "";
533+
// // 可进入禅定模式
534+
// zenAble();
535+
// }
527536
retried++;
528537
}, 1000);
529538

‎src/solutionTemplate/index.jsx

+3-5
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,7 @@ ${link}
8181
8282
## 题目描述
8383
84-
\`\`\`
8584
${desc}
86-
\`\`\`
8785
8886
## 前置知识
8987
@@ -343,9 +341,9 @@ export default class SolutionTemplate extends PureComponent {
343341
this.setLanguage(v);
344342
this.setTemplate(
345343
template
346-
.replace(new RegExp(`\`\`\`.+`, "mg"), `\`\`\`${v}`)
347-
.replace(
348-
new RegExp(`语言支持:.+`, "mg"),
344+
.replace(new RegExp(`\`\`\`.+`, "mg"), `\`\`\`${v}`)
345+
.replace(
346+
new RegExp(`语言支持:.+`, "mg"),
349347
`语言支持:${displayLanguage(v)}`
350348
)
351349
.replace(

0 commit comments

Comments
 (0)