diff --git a/Update.json b/Update.json
index 37752240..3bc3bf70 100644
--- a/Update.json
+++ b/Update.json
@@ -3749,6 +3749,37 @@
}
],
"Notes": "自动识别验证码时,若当前这张看不准,脚本会自动换一张重试(最多 5 张),无需手动点击图片。"
+ },
+ "3.7.0": {
+ "UpdateDate": 1789780064668,
+ "Prerelease": false,
+ "UpdateContents": [
+ {
+ "PR": 1006,
+ "Description": "Fix #1004"
+ },
+ {
+ "PR": 1013,
+ "Description": "fix: handle PID 0 submission rows"
+ },
+ {
+ "PR": 1015,
+ "Description": "feat: compress ApplyData payloads with gzip and Base93"
+ },
+ {
+ "PR": 1019,
+ "Description": "fix: 在提交界面显示并提交验证码"
+ },
+ {
+ "PR": 1021,
+ "Description": "fix: 比赛结束后回退提交不再被静默丢弃"
+ },
+ {
+ "PR": 1023,
+ "Description": "feat: 验证码识别不出时自动换一张"
+ }
+ ],
+ "Notes": "
3.7.0 — 自上一正式版 3.6.0 以来的完整更新
\n本次正式版整合 3.6.1、3.6.2、3.6.3、3.6.4、3.6.5 和 3.6.6 的全部功能更新与修复。
\n3.6.1:代码对比显示修复(#1006,修复 #1004)
\n- 修复 Monaco 代码对比区域的高度布局,为合并编辑器容器设置高度,恢复对比内容的正常显示。
\n3.6.2:提交记录布局修复(#1013)
\n- 修复题目 ID 为 0、缺少重新提交链接时提交记录的排版错误,避免相关处理打断页面。
- 安全构造提交记录中的链接,并将缺失链接的判断限定在需要重新提交链接的处理逻辑中。
\n3.6.3:获取数据功能升级(#1015)
\n\n- 页面没有数据申请区域时自动创建获取数据控件。
\n- 默认模式采用 gzip + Base93 压缩传输,逐字节保留任意输入,支持文本、Unicode 和混合内容;无效 UTF-8 以可逆的逐字节转义形式显示。
\n- 新增可选 NSC3 高速数值模式,压缩 long long 整数及每行数值个数;规范数值输入可恢复空格、空行、换行与末尾换行,非规范或混合内容原样回退。
\n- 新增“保留换行”选项,默认开启。关闭后,规范数值输入恢复为单行空格分隔数据,降低随机行长带来的输出开销;仅适用于 cin 或 scanf 等不依赖行边界的读取方式,不适用于 getline 或按行解析。
\n- 界面增加各模式的说明与适用范围,帮助选择通用模式或高速数值模式。
\n- 生成的数据获取程序先向 stderr 输出并刷新,再通过 abort() 触发运行错误以返回数据;同时兼容读取旧版异常包装结果。
\n
\n3.6.4:提交验证码支持(#1019)
\n\n- 修复评测队列繁忙、服务端启用验证码时,脚本提交界面丢失验证码字段而导致提交失败的问题。
\n- 显示验证码图片与输入框,支持点击图片更换、按回车提交,并在提交请求中携带验证码。
\n- 新增 AutoCaptcha 设置,支持在浏览器本地通过模板匹配识别四位数字验证码,不调用外部 AI 服务。识别不确定时交由用户输入;非四位数字类型提示手动填写。
\n- 普通提交与强制提交均检查验证码是否为空,并在实际发送请求前再次检查,避免用户中途清空或刷新图片后仍发送空验证码。
\n- 若服务端在页面加载后才要求验证码,或返回验证码错误,显示并刷新验证码、恢复提交按钮并提示重新填写。
\n
\n3.6.5:比赛结束后回退提交修复(#1021)
\n\n- 修复比赛结束后向原题回退提交时响应被忽略、提交静默丢失的问题。
\n- 从比赛题目列表中解析完整原题编号,避免固定截取四位数字造成题号错误。
\n- 正确处理成功跳转、提交冷却与服务端错误;遇到重复提交限制时按三秒间隔重试,最多尝试五次,并显示进度及失败原因。
\n- 每次回退请求前重新检查验证码并携带当前输入;验证码失效时刷新图片并要求重新填写。
\n- 处理比赛页面读取、题目列表解析及提交网络错误,恢复按钮状态,避免一直停留在“正在提交”。
\n
\n3.6.6:验证码自动更换与重试(#1023)
\n\n- 启用自动识别后,若当前验证码识别不确定,自动更换图片重试,最多尝试五张;仍不确定时提示手动输入或点击换图。
\n- 换图请求期间暂时锁定输入框,避免用户根据旧图片填写;图片加载完成或请求失败后恢复输入。
\n- 防止过期异步请求覆盖较新的验证码状态,并避免自动识别覆盖用户已经输入的内容。
\n- 验证码图片加载失败时给出明确提示,支持点击图片重试。
\n
"
}
}
}
\ No newline at end of file
diff --git a/XMOJ.user.js b/XMOJ.user.js
index 2f74ae62..494f9a4e 100644
--- a/XMOJ.user.js
+++ b/XMOJ.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name XMOJ
-// @version 3.6.6
+// @version 3.7.0
// @description XMOJ增强脚本
// @author @XMOJ-Script-dev, @langningchen and the community
// @namespace https://github/langningchen
diff --git a/package.json b/package.json
index e6af0b78..454e50c9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "xmoj-script",
- "version": "3.6.6",
+ "version": "3.7.0",
"description": "an improvement script for xmoj.tech",
"main": "AddonScript.js",
"scripts": {