From 04654f7fe3e58ed245f2668846d44a4aab1c793f Mon Sep 17 00:00:00 2001 From: Shan Wenxiao Date: Sat, 7 Feb 2026 11:44:54 +0800 Subject: [PATCH 01/13] Add isSubmitting flags to prevent multiple submissions Signed-off-by: Shan Wenxiao --- XMOJ.user.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/XMOJ.user.js b/XMOJ.user.js index 035aa0e0..02f387ef 100644 --- a/XMOJ.user.js +++ b/XMOJ.user.js @@ -2667,11 +2667,17 @@ async function main() { ErrorMessage.innerText = "提交失败!请关闭脚本后重试!"; Submit.disabled = false; Submit.value = "提交"; + isSubmitting = false; } }) }); + let isSubmitting = false; Submit.addEventListener("click", async () => { + if (isSubmitting) { + return; + } + isSubmitting = true; PassCheck.style.display = "none"; ErrorElement.style.display = "none"; document.querySelector("#Submit").disabled = true; @@ -2721,6 +2727,7 @@ async function main() { freopenCodeField.setSize("100%", "auto"); document.querySelector("#Submit").disabled = false; document.querySelector("#Submit").value = "提交"; + isSubmitting = false; return false; } else if (RegExp("//.*freopen").test(Source)) { PassCheck.style.display = ""; @@ -2729,6 +2736,7 @@ async function main() { ErrorMessage.innerText = "请不要注释freopen语句"; document.querySelector("#Submit").disabled = false; document.querySelector("#Submit").value = "提交"; + isSubmitting = false; return false; } } @@ -2739,6 +2747,7 @@ async function main() { ErrorMessage.innerText = "源代码为空"; document.querySelector("#Submit").disabled = false; document.querySelector("#Submit").value = "提交"; + isSubmitting = false; return false; } if (UtilityEnabled("CompileError")) { @@ -2761,6 +2770,7 @@ async function main() { ErrorMessage.innerText = "编译错误:\n" + Response.stderr.trim(); document.querySelector("#Submit").disabled = false; document.querySelector("#Submit").value = "提交"; + isSubmitting = false; return false; } else { PassCheck.click(); @@ -4378,22 +4388,30 @@ int main() } } }); + let isSubmittingPost = false; SubmitElement.addEventListener("click", async () => { + if (isSubmittingPost) { + return; + } + isSubmittingPost = true; ErrorElement.style.display = "none"; let Title = TitleElement.value; let Content = ContentElement.value; let ProblemID = parseInt(SearchParams.get("pid")); if (Title === "") { TitleElement.classList.add("is-invalid"); + isSubmittingPost = false; return; } if (Content === "") { ContentElement.classList.add("is-invalid"); + isSubmittingPost = false; return; } if (document.querySelector("#Board input:checked") === null) { ErrorElement.innerText = "请选择要发布的板块"; ErrorElement.style.display = "block"; + isSubmittingPost = false; return; } SubmitElement.disabled = true; @@ -4407,6 +4425,7 @@ int main() }, (ResponseData) => { SubmitElement.disabled = false; SubmitElement.children[0].style.display = "none"; + isSubmittingPost = false; if (ResponseData.Success == true) { location.href = "https://www.xmoj.tech/discuss3/thread.php?tid=" + ResponseData.Data.PostID; } else { @@ -4897,7 +4916,12 @@ int main() } }); }); + let isSubmittingReply = false; SubmitElement.addEventListener("click", async () => { + if (isSubmittingReply) { + return; + } + isSubmittingReply = true; ErrorElement.style.display = "none"; SubmitElement.disabled = true; SubmitElement.children[0].style.display = "inline-block"; @@ -4908,6 +4932,7 @@ int main() }, async (ResponseData) => { SubmitElement.disabled = false; SubmitElement.children[0].style.display = "none"; + isSubmittingReply = false; if (ResponseData.Success == true) { RefreshReply(); ContentElement.value = ""; @@ -4944,4 +4969,4 @@ int main() main().then(r => { console.log("XMOJ-Script loaded successfully!"); -}); \ No newline at end of file +}); From 35248ff58421be2f780e708351e642b109642706 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:45:26 +0000 Subject: [PATCH 02/13] 2.7.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d558b7ac..3c315c9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xmoj-script", - "version": "2.7.2", + "version": "2.7.3", "description": "an improvement script for xmoj.tech", "main": "AddonScript.js", "scripts": { From e1da47ccdb242753778e428a464483b187619fe6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:45:33 +0000 Subject: [PATCH 03/13] Update version info to 2.7.3 --- Update.json | 11 +++++++++++ XMOJ.user.js | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Update.json b/Update.json index 1c7bd178..c09ccb21 100644 --- a/Update.json +++ b/Update.json @@ -3288,6 +3288,17 @@ } ], "Notes": "No release notes were provided for this release." + }, + "2.7.3": { + "UpdateDate": 1770435927359, + "Prerelease": true, + "UpdateContents": [ + { + "PR": 901, + "Description": "Add isSubmitting flags to prevent multiple submissions" + } + ], + "Notes": "No release notes were provided for this release." } } } \ No newline at end of file diff --git a/XMOJ.user.js b/XMOJ.user.js index 02f387ef..002c5a83 100644 --- a/XMOJ.user.js +++ b/XMOJ.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name XMOJ -// @version 2.7.2 +// @version 2.7.3 // @description XMOJ增强脚本 // @author @XMOJ-Script-dev, @langningchen and the community // @namespace https://github/langningchen From 69dfadf90b1682ea22e71602ce1f0049d95ed844 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:46:24 +0000 Subject: [PATCH 04/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index c09ccb21..cda8fe2d 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770435927359, + "UpdateDate": 1770435978655, "Prerelease": true, "UpdateContents": [ { From 9373cb5a02a75ecce9ea4e8a51b4974b439cae7d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:47:11 +0000 Subject: [PATCH 05/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index cda8fe2d..8538b24e 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770435978655, + "UpdateDate": 1770436025585, "Prerelease": true, "UpdateContents": [ { From 174a53f4c1d5e6baf8b78a452ec75aefd9c7904c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:47:59 +0000 Subject: [PATCH 06/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index 8538b24e..cc4bc6de 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436025585, + "UpdateDate": 1770436073336, "Prerelease": true, "UpdateContents": [ { From 4b9e5b388af8b4e90b3b2de3b0a10555db64cb73 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:48:56 +0000 Subject: [PATCH 07/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index cc4bc6de..1a484303 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436073336, + "UpdateDate": 1770436130046, "Prerelease": true, "UpdateContents": [ { From 518374159ce25a16cd6af452aab354eaecb2d5f0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:49:44 +0000 Subject: [PATCH 08/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index 1a484303..8771919b 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436130046, + "UpdateDate": 1770436179176, "Prerelease": true, "UpdateContents": [ { From 45900b1c2f17b6fbc8caa08b4e3c6144c0fbac6a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:50:28 +0000 Subject: [PATCH 09/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index 8771919b..1c0c1a66 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436179176, + "UpdateDate": 1770436223043, "Prerelease": true, "UpdateContents": [ { From f560b8a0d76478b9e4a3437b7e98461413bf0c32 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:51:21 +0000 Subject: [PATCH 10/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index 1c0c1a66..43595503 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436223043, + "UpdateDate": 1770436275889, "Prerelease": true, "UpdateContents": [ { From 60ca02e6408e128eea26b671cc023b3e45987f2f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:52:12 +0000 Subject: [PATCH 11/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index 43595503..3b078d64 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436275889, + "UpdateDate": 1770436327564, "Prerelease": true, "UpdateContents": [ { From b4562c6b5b453253387d78ce2801e54be57895df Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:53:03 +0000 Subject: [PATCH 12/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index 3b078d64..d4f66e19 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436327564, + "UpdateDate": 1770436378177, "Prerelease": true, "UpdateContents": [ { From c20cd770eea4ca19b7bf122116c4686407cacc2e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 03:54:12 +0000 Subject: [PATCH 13/13] Update time and description of 2.7.3 --- Update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Update.json b/Update.json index d4f66e19..fede9840 100644 --- a/Update.json +++ b/Update.json @@ -3290,7 +3290,7 @@ "Notes": "No release notes were provided for this release." }, "2.7.3": { - "UpdateDate": 1770436378177, + "UpdateDate": 1770436447016, "Prerelease": true, "UpdateContents": [ {