No description
  • JavaScript 93.7%
  • CSS 3.2%
  • HTML 3.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-23 13:29:16 +08:00
content refactor: split content script into layered modules 2026-08-23 13:08:55 +08:00
.gitignore chore: add eslint and prettier tooling 2026-08-23 13:05:37 +08:00
.prettierrc chore: add eslint and prettier tooling 2026-08-23 13:05:37 +08:00
background.js chore: add eslint and prettier tooling 2026-08-23 13:05:37 +08:00
eslint.config.js chore: add eslint and prettier tooling 2026-08-23 13:05:37 +08:00
manifest.json feat: add update check against the source repository 2026-08-23 13:17:49 +08:00
package-lock.json chore: add eslint and prettier tooling 2026-08-23 13:05:37 +08:00
package.json feat: add update check against the source repository 2026-08-23 13:17:49 +08:00
popup.css feat: add update check against the source repository 2026-08-23 13:17:49 +08:00
popup.html feat: add update check against the source repository 2026-08-23 13:17:49 +08:00
popup.js fix: request repository host permission before update check 2026-08-23 13:29:16 +08:00
README.md feat: add update check against the source repository 2026-08-23 13:17:49 +08:00

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/ 页面。

安装方式

本项目当前是未打包的本地浏览器扩展,直接通过浏览器开发者模式加载即可。

  1. 克隆或下载本仓库。
  2. 打开浏览器扩展管理页:
    • Chrome:chrome://extensions/
    • Edge:edge://extensions/
  3. 开启“开发者模式”。
  4. 点击“加载已解压的扩展程序”。
  5. 选择本仓库目录。
  6. 打开或刷新 AlphaFold Server 页面后,点击浏览器工具栏中的扩展图标使用。

使用说明

打开 AlphaFold Server 的任务历史页面后,点击扩展图标,可以看到以下操作:

  • 提交保存草稿:自动筛选 Saved draft,逐个打开草稿、预览并提交任务。
  • 下载已完成任务:自动筛选 Completed,分页选择尚未下载过的任务并触发下载。
  • 上传 JSON 并提交:弹出文件选择框(可多选 .json),逐个通过页面 Upload JSON 按钮上传并保存为草稿,全部上传完成后自动执行提交保存草稿流程。JSON 格式与 AlphaFold Server 的输出格式一致(顶层为任务数组),单个文件可包含多个任务。校验失败的文件会被跳过并在状态栏提示。
  • 删除全部任务:全选五种状态筛选并把分页调整为每页 100 条,然后逐页全选并确认删除,直到任务列表清空。首次点击后按钮变为待确认状态,需在 5 秒内再次点击才会执行,操作不可恢复。
  • 停止当前任务:请求正在运行的批处理流程在下一个可中断点停止。
  • 清空下载记录:清除扩展保存在浏览器本地的已下载任务名称记录。

下载记录保存在 chrome.storage.local 中,只用于判断哪些任务已经被扩展处理过,不会上传到外部服务。

更新

扩展以“加载已解压的扩展程序”方式运行,更新需要手动完成:

  1. 在本仓库的本地目录执行 git pull 拉取最新代码。
  2. 打开 chrome://extensions/,在扩展卡片上点击“重新加载”。
  3. 刷新已打开的 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 页面后重新打开扩展弹窗。