dsh-weekly-hot:DSH Web UI 的每周热门插件榜单

前言

DeepSeek Harness(DSH)的核心理念是“一切皆插件”。随着生态扩展,开发者需要在一个庞大的仓库集合中寻找适合的工具。dsh-weekly-hot 是为此设计的 DSH Web UI 插件,它不依赖后端服务器,直接在浏览器端连接 GitHub API,生成「飙升榜」与「精选主题榜」。由 XCNXNXNX 维护,遵循 BSD-3-Clause 许可证。

功能

入口与弹窗

插件在 DSH Web UI 右缘提供一个悬浮按钮(默认显示“🔥 本周热门插件”),点击即可打开面板。该入口可在面板设置或主设置中关闭。

面板支持定时弹窗功能。用户可选择关闭、每天、每周、每两周或自定义分钟数作为弹出间隔。手动打开面板会重置计时。

榜单逻辑

插件提供两种榜单生成方式:

  1. 飙升榜:利用 GitHub Search API 的 topic:dsh-plugin 全量检索仓库。增长数通过 localStorage 记录的基线差值计算(首次访问无基线时会按近期活跃度估算并标注“估算”)。算法对新仓库和近 30 天推送活跃度进行加权。
  2. 精选主题榜:解析 awesome-dsh-plugin、Oh-My-DSH 等社区精选列表,并依据主题标签(如 #UI、#工具、#工作流)进行分桶展示。

卡片与安装

榜单以卡片形式展示插件信息,包括名称、GitHub 链接、README 首句描述、Topics 标签、Star 数及增长数。

卡片提供“一键安装”功能。点击后,浏览器向宿主侧的 /api/dsh-weekly-hot/install 发起 POST 请求,宿主侧接收后执行 dsh plugin --profile web add github:<owner>/<repo>。安装失败时会展示错误详情。

稳定性与缓存

针对 GitHub API 限流,插件内置了完善的降级处理。当触发限流时,不再显示英文错误,而是倒计时并在配额恢复时自动重试,若存在缓存则直接展示。

缓存策略分层:
* 搜索结果缓存 1 小时
* 精选列表缓存 6 小时
* README 与包校验缓存 24 小时

此外,插件会对 package.json 中的 dsh 字段进行校验,并在卡片上标记验证状态,同时排除 DeepSeek 官方核心仓库。

安装

使用官方 CLI 安装:

dsh plugin --profile web add dsh-weekly-hot

安装完成后,重启 dsh web 生效。

配置

插件随分发附带了 config.json,支持通过文件或面板设置修改。

榜单配置:设置飙升榜的时间窗口(7/30/90 天)、最小 Star 数及榜单长度;设置精选主题榜的主题列表及每主题数量。

数据源:配置是否优先使用社区精选列表及 GitHub Token(Token 优先存储于浏览器 localStorage,面板设置中可填)。

UI:设置自动刷新间隔、默认榜单及时间窗口。

示例配置:

{
  "榜单配置": {
    "飙升榜": { "时间窗口": [7, 30, 90], "最小Star数": 0, "榜单长度": 50 },
    "精选主题榜": { "主题列表": ["UI", "工具", "记忆", "工作流", "视觉", "多模态"], "每主题数量": 10 }
  },
  "数据源": {
    "优先使用社区精选": true,
    "GitHub Token": ""
  },
  "UI": { "自动刷新间隔": 3600, "默认榜单": "飙升榜", "默认时间窗口": 7 }
}

开发

如需自行构建,请执行:

npm install   # 或 pnpm install
npm run build # esbuild 双产物(lib/index.js 宿主半体 + lib/client.js 浏览器半体)+ tsc 类型

注意事项

  • 零依赖:该插件不提供服务器,零运行时依赖(仅 React 为 peer 依赖),所有数据获取均由浏览器直连 GitHub。
  • Token 管理:GitHub Token 仅存储在浏览器的 localStorage 中,不会上传到任何服务器。
  • 权限范围:安装操作需宿主侧支持 /api/dsh-weekly-hot/install 接口,且仅回环可达。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜