dsh-market-star-sort:为 DSH 发现页增加按 Star 数排序

前言

在 DeepSeek Harness(DSH)里浏览「插件 → 发现」时,排序菜单通常只有默认顺序、发布时间、最佳搜索等选项。若你想按社区热度(GitHub Star 数)从高到低挑插件,原索引往往没有对应的排序键。dsh-market-star-sort 在 Host 侧为插件市场索引补上 stars 排序键和每条目的数值,发现页会原生多出一项「Star 数」,无需改客户端发现页代码。

下面介绍插件的定位、工作原理、安装与可选配置。

这是什么

dsh-market-star-sort 由 yhzsir 维护,当前版本 1.0.0,MIT 许可证。它是 Host-only 插件:只运行在 DSH Host 进程中,没有客户端代码。

作用概括:给 DSH Web「插件 → 发现」页的排序菜单增加 Star 数(按 GitHub Star 降序)。发现页的排序菜单来自所选插件市场索引声明的 metadata.sortKeys;当前常用的索引源 https://awesome-dsh-plugin.com/index.json 里 sortKeys 为空(除分类外无其他键),页面上因此看不到按 Star 排序。本插件在索引 JSON 被 Host 解析之前做增量补全,排序与分页仍由 Host 完成。

核心功能

索引补全

插件在 Host 解析索引之前:

  1. 在索引头部声明排序键:metadata.sortKeys.stars = { title: { en: "Stars", zh: "Star 数" }, order: "desc" };
  2. 为每个条目写入 metadata.sortKeys.stars = <GitHub Star 数>。

补全后的文档仍满足格式 1 校验,发现页排序菜单会多出「Star 数」;翻页、再次进入均由 Host 处理。没有 Star 数据的条目按索引既有规则排在最后。若索引日后自行声明了 stars 键,插件不会覆盖。

Star 数据来源

  • 随包种子:data/stars.json,为按下拉时间抓取的快照,覆盖索引里全部条目;
  • 后台刷新:启动后按需下载 catalogUrl(默认 https://awesome-dsh-plugin.com/catalog.json,使用 items[].slug 与 items[].stars),成功后写入 <profile>/.market-star-sort/stars.json,下次启动读缓存;
  • 刷新间隔:由 refreshHours 控制(默认 24 小时);刷新失败时继续使用已有快照。

条目与 Star 的对应关系依次尝试:标题 owner/repo → 仓库 URL github.com/<owner>/<repo> → 索引站条目页 /p/<owner>/<repo>/。

行为边界

  • 只改写能识别为格式 1 插件市场索引、且条目与 Star 快照匹配过半的响应;其他 fetch 原样返回。
  • 仅在索引从网络取回时补全;Host 索引缓存(默认 10 分钟)与页面刷新、搜索、翻页走同一路径。
  • 卡片列表不显示 Star 数字(发现页卡片由内置客户端渲染,插件无插入点);本插件只负责排序。
  • 插件仅下载上述 catalog 与索引文档,不会向外发送本机信息。

安装与启用

在 Web 界面「插件」页的安装入口粘贴以下任一,然后在「插件」页刷新,或重启 DSH:

https://github.com/yhzsir/dsh-market-star-sort/releases/latest/download/dsh-market-star-sort.tgz
https://github.com/yhzsir/dsh-market-star-sort

若已发布到 npm,也可使用包名:

dsh-market-star-sort

插件以当前 DSH 进程权限运行。安装前请查看仓库源码与 MIT 许可证,确认行为符合你的环境要求。

典型用法:可选配置

配置写在 cordis.patch.yml 中对应插件行的 config 下,字段均可选:

字段 默认值 含义
catalogUrl https://awesome-dsh-plugin.com/catalog.json Star 数据来源
refreshHours 24 重新下载 Star 数据的间隔(小时)
fetchTimeoutMs 180000 单次下载超时(毫秒)
indexUrls [](另含两个内置 awesome-dsh-plugin 索引地址) 需要补全的额外索引 URL

例如将刷新间隔改为 12 小时:

- insert:
    - id: market-star-sort
      name: dsh-market-star-sort
      config:
        refreshHours: 12

安装并刷新后,打开「插件 → 发现」,在排序菜单中选择「Star 数」即可按 GitHub Star 降序浏览条目。

适用场景与注意

适合经常在 DSH 发现页浏览社区插件、希望按 GitHub 热度排序的开发者。不适合期望在卡片上直接看到 Star 数字的场景——本插件不提供卡片展示,只扩展排序能力。

社区插件目录(如 awesome-dsh-plugin.com)为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本仓库是其中的一个小 Host 侧扩展。

结尾

dsh-market-star-sort 通过 Host 侧索引补全,在不修改发现页客户端的前提下,为排序菜单增加「Star 数」。需要进一步了解或反馈问题,可访问插件目录页与 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/yhzsir/dsh-market-star-sort
  • GitHub:https://github.com/yhzsir/dsh-market-star-sort
羽毛球分组比赛记分
小程序二维码

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

Xiaoye