一个简洁、纯前端的中二节奏(CHUNITHM)档案处理小工具集合。无需登录、无需服务器,所有数据都在你的浏览器本地完成转换与编辑。
- 在线体验: https://web.choimoe.com/chuni/
- 隐私友好: 不上传、不持久化,不触碰你的任何账号信息。
- RinNet 存档转落雪成绩
- CSV 成绩合并
- 修改 RinNet 单曲成绩(判定、状态、Full Chain 等)
以上功能均为前端实现,适合“导出 → 转换/合并/编辑 → 下载”的离线处理流程。
你可以直接使用在线 DEMO,或在本地以静态站点方式打开:
- 方式一:在线使用
- 方式二:本地打开
- 由于页面以异步方式加载 HTML 模板,建议通过本地 HTTP 服务访问:
# 使用 Python
python -m http.server 8000
# 浏览器访问 http://localhost:8000项目采用“模板 + 配置 + 模块”的方式组织:
- 模板:每个页面都是独立的 HTML 文件,位于
assets/templates/。直接用你熟悉的 HTML 写法增删内容,无需写 JS 字符串。 - 配置:导航、站点文案等集中在
assets/js/config/pages.js。新增页面只需登记 id、标题、是否显示在导航。 - 模块:页面加载、路由、下载、CSV 解析、转换器、成绩编辑等以模块化方式组织,互不干扰,方便维护。
页面切换通过 Hash 路由实现,例如:
- 主页:
#home - Rin → 落雪:
#rin-to-lx - CSV 合并:
#merge-csv - 修改成绩:
#edit-score
page-loader.js 会根据路由异步加载对应模板,并在加载完成后发出 pageChanged 事件,业务模块据此完成各自的初始化。
- 在
assets/templates/中新增一个your-page.html,写上你的页面结构。 - 在
assets/js/config/pages.js中添加:{ id: 'your-page', title: '你的页面标题', showInNav: true }
- 如需交互:在
app.js中监听pageChanged,为your-page注册初始化逻辑或绑定按钮事件。
整个过程无需在 JS 中拼接 HTML 字符串,编辑体验与普通静态页面一致。
- 所有转换、解析、编辑均在浏览器内存中进行。
- 不会上传文件到任何服务器。
- 建议在操作前备份原始档案,尤其是准备覆盖上传到第三方平台时。
- 现代浏览器均可使用。
- 使用 ES Modules 与
fetch,在旧版浏览器可能需要更新版本后再使用。
- 修改档案存在风险,请务必自行备份。
- 若将编辑后的异常成绩用于扰乱排行榜、对外展示或其他不当用途,可能会违反相关平台规则,后果自负。