前言
之前一直在自己用一些小脚本改善逛美卡论坛(USCardForum,Discourse 架构)的体验,功能都是按自己需求一点点堆出来的,没打算给别人看。前段时间整理了一下代码、把硬编码的私货去掉,顺手开源了,放上 GitHub 和 Greasy Fork,欢迎一起玩、提 Issue、发 PR。
- GitHub:GitHub - mskatoni/uscardforum-X · GitHub
- Greasy Fork 安装页:uscardforum-X
功能模块
目前一共 5 个模块,Tampermonkey 菜单里可以单独开关,已启用的模块前面会有绿色勾勾:
| 模块 | 作用 | 生效范围 |
|---|---|---|
| Block Users(拉黑用户) | 在用户卡片上加一个「拉黑」按钮 | 仅话题内点头像/用户名弹出的用户卡片 |
| Next-Level Gap(等级差值) | 把 Profile 页原生统计数字改写成「当前/目标」格式 | 仅 /u/{username}/summary 页面 |
| Cloudflare Shield(CF 盾) | 一键跳转 /challenge?redirect={当前页} 强制重新过一次 CF Challenge |
仅 Tampermonkey 菜单里手动触发 |
| Auto Read(自动阅读) | 从 /latest.json 拉取话题队列,自动滚动阅读并跳转下一帖,解放双手刷阅读量 |
首页/最新/未读/热门/分类页 + 话题页;默认关闭 |
| 中英文面板切换 | 切换脚本自身菜单和按钮的语言 | 仅脚本菜单本身 |
拉黑用户(Block Users)
点开任意用户卡片,点「拉黑 @username」/「Ignore @username」,脚本直接调用 Discourse 后端的 Ignore 接口(PUT /u/{username}/notification_level.json),是服务端生效的拉黑,不是纯前端隐藏。
等级差值(Next-Level Gap)
打开自己或他人的 Profile Summary 页,脚本会把原生统计栏改写成类似:
72/50 访问天数
1992/500 浏览的话题
16/5 获赞用户数 *
6/7,差1 获赞分布天数 *
14/10 回复不同话题 *
这样一眼就能看出离下一级信任等级还差多少,不用自己对着 Discourse 的 TL 规则表算。带 * 号的是通过 user_actions.json 能拿到数据时才会追加显示的隐藏 TL3 检查项,样式做成跟原生统计一致,尽量不违和。
CF 盾(Cloudflare Shield)
纯粹的一次性触发器,点一下就跳到 Challenge 页面强制重新过盾,不会在菜单上留绿勾(因为它不是常驻开关,而是一个动作)。
自动阅读(Auto Read)
默认关闭,开启后会从当前 /latest.json 队列里拿话题列表,在话题页里自动滚动(比某个参考脚本慢约 20%,读起来更自然),读完一篇自动跳下一篇。适合挂着刷阅读时长,没有额外的悬浮控制面板,一切在后台跑。
安装方式
推荐:
- 装一个脚本管理器,Tampermonkey 或 Violentmonkey 都行。
- 打开 Greasy Fork 页面:uscardforum-X
- 点 Install this script,脚本管理器确认安装,刷新论坛页面即可。
不想走 Greasy Fork 也可以手动装:打开仓库里的 userscript/uscardforum-X.user.js,整个文件复制进脚本管理器新建脚本,保存刷新即可。
关于隐私和安全
脚本只用当前浏览器会话和论坛自身的 CSRF token,所有请求都是打到 USCardForum 自己的接口,不往任何第三方服务器发数据。等级估算是基于 Discourse 公开 JSON API 做的尽力估算,不保证 100% 精确,尤其部分隐藏 TL3 检查项依赖账号本身能否读到相应数据,读不到就不会显示, 钛金级别没做(笑。
写在最后
功能不算多,纯粹是自己日常逛论坛搓出来的小工具合集,开源出来纯粹图一乐,也欢迎大家提需求或者直接 PR。目前仓库只有中英文两版 README,有兴趣折腾的可以去看源码,都是纯前端 JS,没什么门槛。
