小明的OJ,
换个样子。

一个浏览器用户脚本:给 xmoj.tech 加上黑白主题和暗色模式、自动刷新、提交前检查、测试点数据和讨论区。免费,开源。

最新版 · GPL-3.0 · 支持 Chrome / Edge / Firefox

装上脚本后的小明的OJ比赛题目页:黑白主题、左侧题目切换栏、每个小节旁的复制按钮 暗色模式下的同一页面
真实截图:比赛题目页,黑白主题

装上之后,多了这些。

比赛

比赛列表和排名自动刷新,剩余时间实时倒计时。一键打开全部题目,侧边栏在题目间切换。

提交

提交前检查文件输入输出和编译错误,少交几次冤枉的 CE。状态页结果自动刷新,内存和耗时带上单位。

调试

拿到测试点数据,看更多标程,把两份代码并排对比。

复制

样例一键复制。题面可以按章节或整篇复制成 Markdown,公式、表格和代码块都保留。

社区

每道题都有讨论区,用户之间可以发短消息。有人回复或提到你时会弹出提醒。

界面

黑白主题、暗色模式、全中文界面,兼容新版比赛页面。设置可以云端同步,换台电脑不用重配。

每个功能都能在脚本设置里单独开关。完整列表见文档。

手机上也能收发短消息。

不用装脚本,任何浏览器都能打开,包括 iPhone 上的 Safari。用 xmoj 账号登录后,就能查看和回复脚本里的短消息。

三步装好。

选择你的浏览器:

1

装一个脚本管理器

脚本需要装在用户脚本管理器里运行。推荐 Tampermonkey,ScriptCat(脚本猫)也可以。

在 Chrome 应用商店安装:

Tampermonkey · Chrome 应用商店
打不开 Chrome 应用商店?
  1. 从极简插件下载 Tampermonkey 的离线安装包,解压出 .crx 文件。
  2. 地址栏打开 chrome://extensions,打开右上角的「开发者模式」。
  3. 把 .crx 文件拖进这个页面,点「添加扩展程序」。
2

允许运行用户脚本

新版 Chrome 默认不让扩展运行用户脚本,不做这一步脚本不会生效。在地址栏打开 chrome://version 可以查看版本号。

Chrome 138 及以上:

  1. 右键点工具栏上的脚本管理器图标(Tampermonkey 或 ScriptCat),选「管理扩展程序」。
  2. 打开「允许用户脚本」开关。

Chrome 137 及以下:

  1. 地址栏打开 chrome://extensions。
  2. 打开右上角的「开发者模式」。

找不到开关?看带截图的安装教程。

3

安装脚本

点下面的按钮,管理器会弹出安装页面,点「安装」。然后打开 xmoj.tech 刷新一下就能看到效果。

装了,然后呢?

装好了,但 xmoj.tech 没有任何变化

按顺序检查:

  1. Chrome / Edge 用户:确认做了第 2 步,这是最常见的原因。每一步都有截图的版本见安装教程。
  2. 点 Tampermonkey 图标,确认它本身和 XMOJ-Script 都处于启用状态。
  3. 刷新 xmoj.tech 页面。

还是不行,就提个 Issue,写上浏览器和版本。

怎么更新?

不用管。脚本管理器会定期自动检查更新。想立刻更新,就在 Tampermonkey 管理面板里点「检查更新」,或者再点一次上面的安装按钮。

怎么关掉某个功能?

在 xmoj.tech 右上角的用户菜单里打开「XMOJ-Script 设置」,每个功能都有单独的开关。

会盗号吗?收集了哪些数据?

不会。保存的密码只存在你浏览器自带的密码管理器里,不会发给我们。讨论区和短消息需要我们的服务器确认你是谁,为此会用到你的 xmoj 登录会话。

具体收集什么、存多久、怎么删,见隐私说明。代码全部开源,可以自己看。

这是小明的OJ官方做的吗?

不是。这是学生自发维护的开源项目,和小明的OJ没有关系。用脚本的同时也请遵守 OJ 本身的规则。

发现问题,或者想帮忙?

报告问题

在 GitHub Issues 提交,或发邮件到 seanoj_noreply@yeah.net。

贡献代码

欢迎 PR。fork 本仓库后向 dev 分支提交,详见贡献指南。

赞助

服务器和域名要花钱。愿意的话可以在 Open Collective 支持我们。