Repository navigation
Releases: SuperUseryjh/htoj-vscode
Releases · SuperUseryjh/htoj-vscode
Release list
v1.2.0
核桃 OJ for VS Code v1.2.0
在 VS Code 里刷核桃 OJ:浏览题目 / 题单 / 比赛,本地写代码,一键提交并直接看到评测结果。
第三方非官方扩展,与核桃编程官方无关。
泥嚎,这里是 vscode-htoj 插件的 v1.2.0 发布说明。
新增功能
- 题面里直接跳上一题 / 下一题:题面面板工具栏新增「← 上一题」「下一题 →」。
- 顺序由服务端按题目来源算好,题库、题单章节、比赛、小组都与网页端一致,本地不维护题目列表。
- 已经到第一题 / 最后一题时按钮自动禁用;未知来源或只有一道题时不显示,避免出现点了没反应的按钮。
- 兼容了四种接口返回形状不一致的问题:题库是裸 pid、题单是
{ pid, unfinishedProblemNum, changeChapter }、比赛是{ pid }、没有邻居时统一是null。
- 复制题面 Markdown:工具栏新增「复制题面」,把接口下发的原始 Markdown 放进剪贴板,方便贴到笔记或博客里继续编辑。
说明
- 本次只动了题面面板与「上一题 / 下一题」接口封装,登录、提交、自测、提交记录等行为与 v1.1.5 一致。
- 仓库内部把逆向产物移出本仓库、发布辅助脚本统一放到
tools/;这只影响开发流程,不影响插件功能。
v1.1.5
核桃 OJ for VS Code v1.1.5
在 VS Code 里刷核桃 OJ:浏览题目 / 题单 / 比赛,本地写代码,一键提交并直接看到评测结果。
第三方非官方扩展,与核桃编程官方无关。
泥嚎,这里是 vscode-htoj 插件的 v1.1.5 发布说明。
新增功能
- 手机号 + 短信验证码登录:登录入口里多了一种方式。填手机号 → 点「获取验证码」→ 面板里弹出腾讯验证码,拖动滑块完成验证后插件才请求发送短信,输入收到的验证码即可登录。
- 为什么必须手动拖一下:发送验证码接口强制校验腾讯 TCaptcha 票据,票据只能在验证通过后由腾讯签发给页面,本地造不出来(伪造会被服务端拒:
errCode 2024 票据校验异常),所以插件无法替你自动完成这一步。 - 顺带纠正了一个旧结论:以前文档里写「扩展的 Webview 域名未备案,拿不到票据」,实测下来并不成立——腾讯 SDK 在非备案 origin 上照常加载、照常出票,真正的门槛是人机验证本身,不是域名。
- 面板在处理验证码期间会保留上下文,中途切去别的标签页再回来不用重拖(验证码本身有有效期,超时重来即可)。
- 为什么必须手动拖一下:发送验证码接口强制校验腾讯 TCaptcha 票据,票据只能在验证通过后由腾讯签发给页面,本地造不出来(伪造会被服务端拒:
- 不需要拖动的仍是原来两种:微信扫码、手机号 + 密码(后者登录后会保存凭据并自动续期 token)。
说明
- 本次只动了登录相关代码与文档,题目 / 题单 / 比赛 / 提交 / 自测等行为与 v1.1.4 一致。
v1.1.4
核桃 OJ for VS Code v1.1.4
在 VS Code 里刷核桃 OJ:浏览题目 / 题单 / 比赛,本地写代码,一键提交并直接看到评测结果。
第三方非官方扩展,与核桃编程官方无关。
泥嚎,这里是 vscode-htoj 插件的 v1.1.4 发布说明。
新增功能
- token 过期自动续期:用手机号 + 密码登录后,手机号和密码会存进 VS Code 的 SecretStorage(走系统钥匙串,不写入工作区文件)。此后每次请求前都会检查 token 自带的过期时间,剩余不足 5 分钟就静默重新登录换一个新 token,不用手动重登。退出登录、或改用扫码 / 粘贴 Token 登录都会清除凭据(避免换了账号后续期把登录态切回上一个账号)。判断依据是 JWT 里的
exp,不看接口报错——核桃的errCode: 401也用于「每页最多显示20条记录」这类业务错误。
修复问题
- 修复比赛题的提交记录查不出来:查询条件里多带了一个
gid。比赛提交记录里的gid(以个人身份提交时的分组标识)和题目链接里的gid并不是同一个值,后端按它过滤就把记录全滤掉了——界面表现是「本题还没有提交记录」,而其实记录存在、甚至已经 AC。现在不再传gid。 - 修复题面样例的左右并排完全没生效:配对代码先把样例块移进容器、再调
replaceWith,会让容器成为自己的后代,抛HierarchyRequestError。后果不止是没并排——样例块会整段消失,而且异常中断了整段 webview 脚本,导致提交 / 刷新 / 自测按钮、提交记录的展开、评测与自测结果的回填全部失效。现在改成先把容器插回文档再移动内容块,并把这步挪到脚本末尾加了兜底,最坏情况也只是后处理不生效、面板照常可用。
v1.1.1
核桃 OJ for VS Code v1.1.0
在 VS Code 里刷核桃 OJ:浏览题目 / 题单 / 比赛,本地写代码,一键提交并直接看到评测结果。
第三方非官方扩展,与核桃编程官方无关。
泥嚎,这里是 vscode-htoj 插件的 v1.1.1 发布说明。
新增功能
无
修复问题
fix(self-test): 修复自测未显示输出问题
v1.1.0
核桃 OJ for VS Code v1.1.0
在 VS Code 里刷核桃 OJ:浏览题目 / 题单 / 比赛,本地写代码,一键提交并直接看到评测结果。
第三方非官方扩展,与核桃编程官方无关。
泥嚎,这里是 vscode-htoj 插件的 v1.1.0 发布说明。
新增功能
feat(self-test): 新增自测功能