中文 | English
Fab Helper 是一个为 Fab.com 平台打造的专业级自动化辅助与体验优化用户脚本。项目已完成全面的模块化重构(v3.5.x),具备极速的资源拦截过滤、智能的 429 限速自动恢复、高精度的瀑布流滚动记忆以及多标签页并行处理等强大功能。
- ⚡ 三重锁定大资源禁用
在最早期(
document-start阶段)通过 CSP 注入、CSS 强制隐藏 以及 MutationObserver 同步源改写 三重机制,全面拦截网页上图片、视频、自定义字体及 iframe(包含 WebGL 3D 查看器)的加载,大幅降低网络开销与浏览器渲染负担,彻底释放连接通道。 - 🔍 智能网络请求拦截与优化
全局拦截
/i/users/me/listings-states接口,自动对比本地数据库中已入库的商品 ID。仅向服务器请求未知的商品状态,对已拥有商品进行零开销的本地 Mock 并于响应中无缝合并,显著减少 API 请求频次,极大降低触发 HTTP 429 限速的几率。 - 🔄 429 限速智能检测与自动恢复 脚本会实时监测 API 响应状态及页面加载限速。当被限速时,自动转为等待模式,执行随机延迟退避策略,并通过定时刷新和健康探测(Probe)在限速解除后自动恢复任务流程,全程无需人工干预。
- ⚙️ 多标签页后台并行加库 采用“主页面调度 - 多子标签页执行”架构,最大支持多标签页并发。通过后台轻量级详情页拉取,免受网页前端动画阻塞,实现全自动静默添加至 Library。
- 📍 高精度滚动位置记忆与高亮反馈 采用基于 Cursor 游标定位的页面修补技术,精确记录瀑布流浏览历史,刷新或重开页面后能自动还原滚动位置。当位置成功恢复时,提供高对比度的深色模式友好型(半透明浅绿背景与亮绿文字)视觉高亮提示。
- 🖥️ 玻璃美学悬浮控制台 采用现代玻璃拟态(Glassmorphism)和深色模式视觉设计。内置多维度实时状态监控(任务数、线程数、状态指示)、实时日志台、配置开关面板(禁用大资源、隐藏已拥有、滚动自动添加、隐藏付费等)及一键重置等功能。
- 📅 可读构建版本
构建脚本自动将时间戳转化为开发者本地时区的
v[semver]-[YYYYMMDD]-[HHmm]可读格式,极为方便日常调试与版本回溯。
本脚本基于模块化设计,核心代码位于 src/ 目录下:
src/
├── config.js # 全局静态配置、UI 选择器、数据库键名
├── state.js # 全局运行时状态管理器 (AppStatus, Execution flags)
├── index.js # 脚本主入口,实现 document-start 级别的资源拦截与 API 重写
├── i18n/ # 国际化语言包
│ ├── zh.js # 中文翻译文本
│ └── en.js # 英文翻译文本
└── modules/
├── api.js # 网络请求中心(XHR/Fetch 辅助、GM Fetch、数据提取)
├── data-cache.js # 内存数据缓存系统(包括 Listing、价格与拥有状态,含 TTL 清理)
├── database.js # 本地持久化数据管理(Todo 队列、已入库 Done 列表、配置项)
├── instance-manager.js # 多实例/跨标签页互斥与并发锁管理器
├── page-diagnostics.js # 详情页面 DOM 诊断与状态分析工具
├── page-patcher.js # 页面修补器(处理 URL 游标注入、输入消抖、滚动还原)
├── rate-limit-manager.js# 429 限速处理与自动恢复探测机制
├── task-runner.js # 自动化加库流程控制中心(主标签页监控与工作标签页执行)
├── ui.js # 控制台 UI 构建与交互逻辑
└── utils.js # 工具函数(日志记录、Cookie 处理、游标解码等)
- 安装 Node.js (建议使用 LTS 版本)。
- 安装 Tampermonkey 或 Violentmonkey 浏览器插件。
- 克隆代码库,并在根目录下安装依赖:
npm install
- 运行打包构建(生成
dist/fab_helper.user.js):npm run build
- 开发模式(监听文件改动自动构建):
npm run dev
- 构建完成后,将生成的
dist/fab_helper.user.js的全部内容复制,在浏览器脚本管理器中新建脚本并粘贴保存。 - 访问
https://www.fab.com,控制台即会在页面右下角自动加载。
在控制台的“设置 (Settings)”选项卡中,您可以自由调整以下功能:
| 配置名称 | 对应英文 | 功能说明 |
|---|---|---|
| 记住瀑布流浏览位置 | Remember scroll position | 开启后将自动记录您在搜索列表的滚动深度,刷新页面时自动恢复,无需重新翻页。 |
| 滚动时自动添加任务 | Auto add task on scroll | 开启后,在滚动瀑布流列表时,自动将视野内符合过滤条件的商品加入待办加库队列。 |
| 隐藏已入库商品 | Hide items in library | 开启后,自动在列表页中隐藏已经保存在库中的商品,实现列表清爽预览。 |
| 全面禁用图片/媒体等大资源 | Disable images and media | 开启后,全面禁止搜索列表和详情工作页加载媒体、图片、自定义字体及 iframe,大幅提升速度并省流。 |
| 隐藏所有付费商品 | Hide all paid items | 过滤并隐藏非免费的所有付费项目。 |
| 隐藏打折付费商品 | Hide discounted paid items | 隐藏所有原价付费但在打折的商品(保留纯免费商品)。 |
如需进一步了解开发细节或操作指南,请参阅 docs 目录: