mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-13 04:05:06 +00:00
2.2 KiB
2.2 KiB
配置组分享 popover(2026-10-05)
本文件记录本轮用户确认的需求和规格;当前实现以代码为准。
已确认规格
- 选中配置组时使用服务器分区工具栏「分享」,在按钮旁显示原生 popover。风格与服务器分享一致;点击外部或按 Esc 关闭,切换选中项立即关闭。
- 顶部为组名(单行尾部截断)、全部后代服务器数量,之后是分隔线与三个左对齐操作行,带 SF Symbol 和圆角悬停底色。
- 操作依次为「保存 SIP008 JSON 文件」(square.and.arrow.down)、「保存 URI 链接列表文本文件」(doc.text)、「拷贝 URI 链接列表文本」(doc.on.doc)。拷贝成功显示约 2 秒「已复制」。
- 手动组和订阅组均支持;包含选中组全部嵌套子组的服务器,按深度优先、同级目录顺序排列,排除祖先与兄弟。计数包含不具备激活资格的服务器,空子树禁用分享。
- JSON 延续 SIP-008 v1 及项目分组扩展;URI 列表每行一个 ss:// URI,保留服务器名称、密码和插件参数,不保留组结构。文本文件为 UTF-8,建议名为 <组名>.txt。
- 任一服务器不能完整生成分享资料时整个准备失败,不跳过、不输出部分列表。用户点击操作时沿用既有失败提示;准备失败不打开保存面板、不写剪贴板。
- 分享资料和两种格式在打开时从同一已保存快照生成并冻结。无额外秘密确认弹窗。文件名中的 / 与 : 替换为空格,空名回退 ss-servers。
- 保留已有组右键菜单「导出为 SIP-008 JSON…」。
Module 与 Interface
CatalogWorkflow.configurationGroupShareDraft(for:) 是调用方与测试使用的 interface,内部复用既有完整 SIP-008 校验和遍历,返回 JSON 草稿、URI 文本及文件草稿。Popover 不拥有遍历、凭据解析或序列化规则。
ConfigurationGroupFileExporter seam 继续承载保存面板与原子写入,草稿格式区分 JSON 和纯文本;生产及内存 adapter 均复用。TextClipboard seam 承载完整列表拷贝。无需引入通用分享框架。
GLOSSARY 增补配置组分享定义。既有 ADR-0018 的 SIP-008 导出合同保持适用;新增格式与呈现可逆,不新增 ADR。