No description
- JavaScript 93.7%
- CSS 3.2%
- HTML 3.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| content | ||
| .gitignore | ||
| .prettierrc | ||
| background.js | ||
| eslint.config.js | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| popup.css | ||
| popup.html | ||
| popup.js | ||
| README.md | ||
AlphaFold Server Helper
AlphaFold Server Helper 是一个用于辅助操作 AlphaFold Server 的 Chrome / Chromium 浏览器扩展。它可以在 AlphaFold Server 页面中批量提交已保存的草稿任务,并批量下载已完成任务,适合需要反复处理大量结构预测任务的场景。
功能特性
- 批量提交
Saved draft状态的任务。 - 批量下载
Completed状态的任务。 - 多选本地 JSON 文件批量上传:通过页面
Upload JSON逐个上传并保存为草稿,完成后自动提交这些草稿。 - 一键删除全部任务:全选五种状态筛选,将分页调整为每页 100 条,然后逐页全选并确认删除。
- 记录已下载任务名称,避免重复下载。
- 支持停止当前批处理任务。
- 支持清空本地下载记录后重新下载。
- 在扩展弹窗中实时显示当前处理状态。
- 打开弹窗时自动检测更新:对比代码仓库中的
manifest.json版本号,有新版本时显示更新链接,跳转到仓库 README 的“更新”一节(结果缓存 1 小时)。
使用前提
- 使用 Chrome、Edge 或其他支持 Manifest V3 的 Chromium 浏览器。
- 已登录 AlphaFold Server。
- 当前标签页需要打开
https://alphafoldserver.com/页面。
安装方式
本项目当前是未打包的本地浏览器扩展,直接通过浏览器开发者模式加载即可。
- 克隆或下载本仓库。
- 打开浏览器扩展管理页:
- Chrome:
chrome://extensions/ - Edge:
edge://extensions/
- Chrome:
- 开启“开发者模式”。
- 点击“加载已解压的扩展程序”。
- 选择本仓库目录。
- 打开或刷新 AlphaFold Server 页面后,点击浏览器工具栏中的扩展图标使用。
使用说明
打开 AlphaFold Server 的任务历史页面后,点击扩展图标,可以看到以下操作:
提交保存草稿:自动筛选Saved draft,逐个打开草稿、预览并提交任务。下载已完成任务:自动筛选Completed,分页选择尚未下载过的任务并触发下载。上传 JSON 并提交:弹出文件选择框(可多选.json),逐个通过页面Upload JSON按钮上传并保存为草稿,全部上传完成后自动执行提交保存草稿流程。JSON 格式与 AlphaFold Server 的输出格式一致(顶层为任务数组),单个文件可包含多个任务。校验失败的文件会被跳过并在状态栏提示。删除全部任务:全选五种状态筛选并把分页调整为每页 100 条,然后逐页全选并确认删除,直到任务列表清空。首次点击后按钮变为待确认状态,需在 5 秒内再次点击才会执行,操作不可恢复。停止当前任务:请求正在运行的批处理流程在下一个可中断点停止。清空下载记录:清除扩展保存在浏览器本地的已下载任务名称记录。
下载记录保存在 chrome.storage.local 中,只用于判断哪些任务已经被扩展处理过,不会上传到外部服务。
更新
扩展以“加载已解压的扩展程序”方式运行,更新需要手动完成:
- 在本仓库的本地目录执行
git pull拉取最新代码。 - 打开
chrome://extensions/,在扩展卡片上点击“重新加载”。 - 刷新已打开的 AlphaFold Server 页面,使新的 content script 生效。
打开扩展弹窗时会自动对比仓库 manifest.json 中的版本号;发现新版本时点击提示链接会跳转到本节。
开发
项目没有构建步骤,主要由原生 JavaScript、HTML 和 CSS 组成。开发工具(ESLint、Prettier)为 devDependencies,首次使用前需要安装:
npm install
可用的检查命令:
npm run check # Node.js 语法检查
npm run lint # ESLint 检查
npm run format # Prettier 格式化
npm run format:check # Prettier 格式校验(不修改文件)
文件结构
.
├── manifest.json # 浏览器扩展清单,声明权限、脚本和弹窗入口
├── background.js # 后台 Service Worker,负责查询浏览器下载记录
├── content/ # 注入 AlphaFold Server 页面的 content scripts(按序共享作用域)
│ ├── dom.js # 常量、状态、存储/消息工具与页面 DOM 定位/交互
│ ├── flows.js # 批处理流程:提交草稿、下载、删除全部、上传 JSON
│ └── main.js # 消息路由与任务互斥管理
├── popup.html # 扩展弹窗页面
├── popup.css # 扩展弹窗样式
├── popup.js # 扩展弹窗交互和状态刷新逻辑
└── package.json # 项目信息和检查脚本
content/ 下三个文件是经典脚本,由 manifest 按声明顺序注入同一隔离世界、共享全局作用域;跨文件依赖通过各文件顶部的 /* global */ 与 /* exported */ 注释显式声明,加载顺序必须保持 dom → flows → main。
权限说明
扩展在 manifest.json 中声明了以下权限:
downloads:查询下载状态,用于确认批量下载是否完成。storage:保存已下载任务记录。tabs:获取当前活动标签页并向 AlphaFold Server 页面发送指令。https://alphafoldserver.com/*:仅在 AlphaFold Server 页面注入和执行辅助脚本。https://git.ncdwlq.space/*:读取代码仓库中的manifest.json版本号,用于检测更新。
注意事项
- 扩展通过页面按钮、文本和表格结构来完成自动化操作,AlphaFold Server 页面改版后可能失效。
- 批量提交会消耗 AlphaFold Server 的任务额度,运行前请确认当前账号的剩余额度。
删除全部任务会删除所有状态下(包括示例和失败任务)的历史记录,且不可恢复,运行前请确认无需保留。- 批量下载过程中请保持浏览器和 AlphaFold Server 页面正常打开。
- 如果遇到异常状态,建议刷新 AlphaFold Server 页面后重新打开扩展弹窗。