[Feature] 插件市场支持同时勾选多个插件源,合并搜索与展示

未关闭
#10,919 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
full-stack

调研方向

The payload names no files, so begin by locating the plugin marketplace view and the plugin-source management dialog in the dashboard, and the code that fetches a single registry today. Read how install_source.registry_url is stored and used when installing, since the issue relies on it. Done means several sources can be checked at once, their results merge into one searchable list with a source badge, and one failing source shows an error without blanking the page. The open choices, such as keeping at least one source selected, are not settled, so ask the maintainers before starting.

由索引模型根据 Issue 内容生成。

描述

enhancement
功能描述

目前「扩展 → 插件市场」一次只能查看一个插件源(默认源,或「插件源管理」里手动添加的某一个自定义源),切换源需要点开对话框重新选一次,市场列表、搜索、分类、排序都只作用于当前这一个源。

希望改成多源同时加载:用复选框(checkbox)勾选任意多个源,市场页把选中的源合并成一个列表,然后在这个合并集合上统一搜索 / 筛选 / 排序,插件卡片上标注它来自哪个源。

期望行为
  1. 源选择改为多选:「插件源管理」中每个源左侧加复选框,默认源同样可勾选;提供"全选 / 取消全选";至少保留一个源(全不选时回退到默认源,或明确提示)。
  2. 合并展示:勾选的源并发拉取,合并为一份插件列表;搜索框、分类、排序、分页都作用于合并后的集合。
  3. 来源可辨识:每张插件卡片显示来源徽标(源名称);同一插件同时存在于多个源时合并为一条并标注"来自 N 个源"。
  4. 部分失败不影响整体:某个源请求失败时,其余源正常展示,并提示"XX 源加载失败",而不是整页报错或空白。
  5. 安装/更新回源正确:从某个源点"安装"时携带该条目的 registry_url(现有 install_source.registry_url 机制已支持),更新检查继续按源分组。
使用场景
  • 插件生态是分散的:默认市场只上架了一部分插件,很多作者的插件只发布在自建的第三方源(或某个社区源)里。想找"某个功能有没有现成插件",现在必须逐个源切过去搜一遍,切一次就重载一次列表,很费事。
  • 想对比:同一个插件在不同源的版本、描述、更新时间可能不一致,现在无法并排比较。
  • 想在合并视角下按"下载量 / 更新时间"排序挑最新的,或统一按分类浏览。
  • 已经收藏了多个第三方源的用户,日常希望"一次看全",而不关心它属于哪个源。
检查清单
  • 我已在 Issue 列表中搜索过相关功能,确认该功能想法从未被提出过。
  • 我建议的功能与 AstrBot 本体相关,而非在建议某一插件的功能。
  • 我已阅读并同意本项目的贡献者行为准则。
  • (可选)我愿意提交 PR 以帮助实现该功能。
主要语言
Python
星标
46.4k
派生
3.4k
平均合并
1 天 11 小时
30 天内合并 PR
120

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AstrBotDevs/AstrBot 的其他 Issue

查看 AstrBotDevs/AstrBot 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。