Skip to content

Latest commit

 

History

History
218 lines (146 loc) · 9.34 KB

README.md

File metadata and controls

218 lines (146 loc) · 9.34 KB

简体中文 | English

Important

维护状态说明:由于个人精力有限,本项目已停止主动维护,不再处理新的功能需求与反馈(历史 Issues 已迁移至 Discussions)。

如果您对本项目感兴趣,欢迎:

  • 直接提交 Pull Request,经审核确认无误后会尽快合并;
  • Fork 本仓库继续开发与维护。本项目基于 Apache License 2.0 开源,Fork 后请继续遵循该协议。

一、项目简介

LinuxDo Scripts 是一个功能丰富的浏览器扩展,专为提升 LinuxDo 论坛的使用体验而设计。它集成了从基础界面优化到高级 AI 辅助的多项实用功能,让您的论坛浏览和互动体验更加流畅高效。

Note

论坛交流贴:linuxdo 增强插件,持续更新欢迎反馈 - LINUX DO,QQ 交流群:1035556246

已同步兼容 idcflare.com 网站。

更多功能查看前往 LinuxDo Scripts 文档

主图

更多截图展示

使用方式 收藏夹增强 分享贴子

二、快速安装

1. 支持的浏览器

浏览器 安装链接 备注
Chrome / Edge / Arc / Brave Chrome Web Store 推荐
Firefox Firefox Addons 推荐
国内用户 Crx 商店 无需翻墙

2. 安装步骤

  1. 点击上方对应浏览器的安装链接
  2. 在扩展商店中点击"添加到浏览器"
  3. 确认安装权限
  4. 访问 LinuxDo 论坛 开始使用

四、开发指南

1. 环境要求

  • Node.js: v22.12.0

2. 本地开发

# 1. 克隆项目
git clone https://github.com/anghunk/linuxdo-scripts.git
cd linuxdo-scripts

# 2. 安装依赖
npm install

# 3. 启动开发服务
npm run dev

3. 加载扩展

  1. 打开浏览器扩展管理页面
    • Chrome: chrome://extensions/
    • Firefox: about:addons
  2. 开启"开发者模式"
  3. 点击"加载已解压的扩展程序"
  4. 选择项目根目录下的 .output/chrome-mv3 文件夹

4. 开发规范

  • 🧩 组件化开发: 每个功能独立组件,避免冲突
  • 🔄 提交流程: PR → 代码审核 → 合并
  • 📚 文档更新: 新功能需同步更新文档

5. 设置存储回归测试

npm test
npm run compile
npm run build
npx playwright install chromium
npm run test:browser

浏览器测试使用独立的临时配置目录和拦截的测试页面,不访问真实论坛或读取个人浏览器数据。可使用 PLAYWRIGHT_CHROMIUM_EXECUTABLE 指定已有的 Chromium 可执行文件。

设置保存等待 IndexedDB 事务提交;读取失败时保留原数据并提供重试。普通保存只合并面板实际修改的字段;同一字段的同时编辑按最后一次提交为准,手动导入和云端恢复仍会替换整份设置。

6. 自动发布到 Chrome 和 Firefox 商店

WXT 负责打包,publish-browser-extension 负责上传新版本并提交审核,审核通过后由商店发布。首次创建商店条目仍需在开发者后台手动完成。

项目使用 WXT 0.19,其内置提交工具使用 Chrome 旧版 API。这里单独固定发布工具为 6.0.0,通过 Chrome Web Store API v2 提交,入口是 npm run submit。

先在本地运行凭据配置向导:

npm install
npm run submit:init

Chrome 选择 API v2,按 Google 服务账号指南 启用 Chrome Web Store API、关联服务账号并下载 JSON 密钥。向导生成的 .env.submit 仅供本地使用,已加入 Git 忽略规则。

在 GitHub 仓库 Settings → Secrets and variables → Actions → Secrets 中添加:

商店 Secret 用途
Chrome CHROME_EXTENSION_ID 当前账号下的扩展 ID
Chrome CHROME_PUBLISHER_ID 开发者后台 Publisher → Settings 中的发布者 ID
Chrome CHROME_SERVICE_ACCOUNT_CLIENT_EMAIL 服务账号 JSON 中的 client_email
Chrome CHROME_SERVICE_ACCOUNT_PRIVATE_KEY 服务账号 JSON 中的 private_key,保留 PEM 的实际换行
Firefox FIREFOX_EXTENSION_ID AMO 中现有扩展的 ID
Firefox FIREFOX_JWT_ISSUER AMO API key
Firefox FIREFOX_JWT_SECRET AMO API secret

首次接入时,在 Actions → 发布扩展商店 → Run workflow 中填写已有 Release 标签,保留 dry_run=true 验证凭据。验证通过后,将同一入口的 dry_run 取消勾选即可正式提交;stores 可选择 all、chrome 或 firefox。两家商店分别运行,某家失败时可单独重试该商店。

启用后续自动提交:在同一设置页的 Variables 中添加 PUBLISH_STORES=all,也可填写 chrome 或 firefox。现有 Release 工作流创建新版本后,会把该 Release 中的安装包交给商店发布工作流。Firefox 同时提交 *-sources.zip,供审核人员重建源码。移除该变量即可关闭自动提交,手动入口仍可使用。

现有 Release 工作流仅在 anghunk/linuxdo-scripts 仓库运行;Fork 维护者需先将 .github/workflows/create_release.yml 中的仓库条件改为自己的仓库,并配置原有的 ACCESS_TOKEN。

参考:WXT 发布文档、Chrome API v2 迁移公告、发布工具配置。

五、参与贡献

1. 贡献方式

2. 贡献列表

一如既往,感谢我们出色的贡献者们!

Contributors

3. 参考项目

六、其他信息

1. Star History

Star History Chart

2. 开源协议

本项目采用 Apache License 2.0 开源协议。

您可以自由地:

  • ✅ 使用、复制、修改和分发本软件
  • ✅ 用于商业目的
  • ✅ 在遵循协议的前提下重新授权

但需要:

  • 📋 保留原始版权声明
  • 📋 标明对原始代码的修改

3. 免责声明

  • 本项目为免费开源项目,不保证绝对完善无误
  • 使用前请自行评估风险,遵守相关法律法规
  • 严禁任何形式的滥用行为
  • 如有侵权问题,请联系 @anghunk 及时处理

如果这个项目对您有帮助,请考虑给我们一个 ⭐ Star!

或者 打赏一杯咖啡

Made with ❤️ by @anghunk and contributors