xmoj-script 1.2.75 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Update/UpdateToRelease.js +1 -1
- package/Update/UpdateVersion.js +6 -0
- package/Update.json +26 -0
- package/XMOJ.user.js +15 -2
- package/package.json +1 -1
@@ -58,7 +58,7 @@ if (LastType == "Release") {
|
|
58
58
|
if (LastJSVersion != NpmVersion) {
|
59
59
|
console.warn("Assuming you manually ran npm version.");
|
60
60
|
} else {
|
61
|
-
execSync("npm version
|
61
|
+
execSync("npm version minor");
|
62
62
|
}
|
63
63
|
var CurrentVersion = execSync("jq -r '.version' package.json").toString().trim();
|
64
64
|
console.log("Current version : " + CurrentVersion);
|
package/Update/UpdateVersion.js
CHANGED
@@ -14,6 +14,12 @@ var JSFileContent = readFileSync(JSFileName, "utf8");
|
|
14
14
|
execSync("git config --global user.email \"github-actions[bot]@users.noreply.github.com\"");
|
15
15
|
execSync("git config --global user.name \"github-actions[bot]\"");
|
16
16
|
if (JSONFileContent.includes('//!ci-no-touch')) {
|
17
|
+
var updatedContent = JSONFileContent.replace('//!ci-no-touch', '');
|
18
|
+
writeFileSync(JSONFileName, updatedContent, "utf8");
|
19
|
+
execSync("git config pull.rebase false");
|
20
|
+
execSync("git pull");
|
21
|
+
execSync("git commit -a -m \"remove //!ci-no-touch\"");
|
22
|
+
execSync("git push -f");
|
17
23
|
console.log('I won\'t touch this. Exiting process.');
|
18
24
|
process.exit(0);
|
19
25
|
}
|
package/Update.json
CHANGED
@@ -2703,6 +2703,32 @@
|
|
2703
2703
|
}
|
2704
2704
|
],
|
2705
2705
|
"Notes": "No release notes were provided for this release."
|
2706
|
+
},
|
2707
|
+
"1.3.0": {
|
2708
|
+
"UpdateDate": 1738976786495,
|
2709
|
+
"Prerelease": false,
|
2710
|
+
"UpdateContents": [
|
2711
|
+
{
|
2712
|
+
"PR": 762,
|
2713
|
+
"Description": "讨论回复跳转优化"
|
2714
|
+
},
|
2715
|
+
{
|
2716
|
+
"PR": 767,
|
2717
|
+
"Description": "进入讨论后给出题目的链接 "
|
2718
|
+
}
|
2719
|
+
],
|
2720
|
+
"Notes": "If you are curious why the version number is v1.3.0, it's because we changed our versioning strategy! Click <a href=\"https://github.com/orgs/XMOJ-Script-dev/discussions/771\"> here </a> for more details."
|
2721
|
+
},
|
2722
|
+
"1.3.1": {
|
2723
|
+
"UpdateDate": 1739060055956,
|
2724
|
+
"Prerelease": true,
|
2725
|
+
"UpdateContents": [
|
2726
|
+
{
|
2727
|
+
"PR": 774,
|
2728
|
+
"Description": "Fix code scanning alert - DOM text reinterpreted as HTML"
|
2729
|
+
}
|
2730
|
+
],
|
2731
|
+
"Notes": "No release notes were provided for this release."
|
2706
2732
|
}
|
2707
2733
|
}
|
2708
2734
|
}
|
package/XMOJ.user.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
// ==UserScript==
|
2
2
|
// @name XMOJ
|
3
|
-
// @version 1.
|
3
|
+
// @version 1.3.1
|
4
4
|
// @description XMOJ增强脚本
|
5
5
|
// @author @XMOJ-Script-dev, @langningchen and the community
|
6
6
|
// @namespace https://github/langningchen
|
@@ -41,6 +41,19 @@
|
|
41
41
|
const CaptchaSiteKey = "0x4AAAAAAALBT58IhyDViNmv";
|
42
42
|
const AdminUserList = ["zhuchenrui2", "shanwenxiao", "admin"];
|
43
43
|
|
44
|
+
let escapeHTML = (str) => {
|
45
|
+
return str.replace(/[&<>"']/g, function (match) {
|
46
|
+
const escape = {
|
47
|
+
'&': '&',
|
48
|
+
'<': '<',
|
49
|
+
'>': '>',
|
50
|
+
'"': '"',
|
51
|
+
"'": '''
|
52
|
+
};
|
53
|
+
return escape[match];
|
54
|
+
});
|
55
|
+
};
|
56
|
+
|
44
57
|
let PurifyHTML = (Input) => {
|
45
58
|
try {
|
46
59
|
return DOMPurify.sanitize(Input, {
|
@@ -3979,7 +3992,7 @@ int main()
|
|
3979
3992
|
Temp = document.querySelector("#problemstatus > tbody").children;
|
3980
3993
|
for (let i = 0; i < Temp.length; i++) {
|
3981
3994
|
if (Temp[i].children[5].children[0] != null) {
|
3982
|
-
Temp[i].children[1].innerHTML = `<a href="${Temp[i].children[5].children[0].href}">${Temp[i].children[1].innerText.trim()}</a>`;
|
3995
|
+
Temp[i].children[1].innerHTML = `<a href="${Temp[i].children[5].children[0].href}">${escapeHTML(Temp[i].children[1].innerText.trim())}</a>`;
|
3983
3996
|
}
|
3984
3997
|
GetUsernameHTML(Temp[i].children[2], Temp[i].children[2].innerText);
|
3985
3998
|
Temp[i].children[3].remove();
|