Skip to content

feat: Open API 扩展 — 多音源搜索 + 歌单管理 + AI skill#2873

Open
NuSYiXue wants to merge 6 commits into
lyswhut:devfrom
NuSYiXue:pr-openapi
Open

feat: Open API 扩展 — 多音源搜索 + 歌单管理 + AI skill#2873
NuSYiXue wants to merge 6 commits into
lyswhut:devfrom
NuSYiXue:pr-openapi

Conversation

@NuSYiXue

@NuSYiXue NuSYiXue commented Jun 18, 2026

Copy link
Copy Markdown

代码改动(9 个文件)

搜索增强

  • 支持 5 个音源:kw kg mg tx wy
  • tx/wy 通过 IPC 回调桥接复用 renderer SDK 加密逻辑
  • 新增参数:dedup(去重保留最佳音质)、matchSinger(歌手匹配排序)、minQuality(最低音质过滤)、order(音源优先级)
  • 设置页:开放 API 页面新增"音源优先级"输入框

播放列表管理

端点 方法 功能
GET /playlists GET 新增 列出所有歌单
/playlist/create POST 新增 创建歌单
/playlist/add POST 新增 添加歌曲到歌单
GET /playlist/list GET 新增 查看歌单内容
/playlist/overwrite POST 新增 整单覆盖
/playlist/remove POST 新增 删除歌单
/playlist/songs POST 新增 删除指定歌曲

GET /playlists + /playlist/remove 让 AI 可以「查看所有歌单 → 选择删除」,无需猜测 ID。
/playlist/list + /playlist/overwrite 组合让 AI 可以「读取 → 本地排序/去重 → 覆盖」,实现任意复杂操作。

编码修复

  • parseBody 自动检测 GBK 编码回退(iconv-lite)
  • httpGet 添加 gzip/deflate/brotli 解压 + 10s 超时 + User-Agent

改动文件

src/main/modules/openApi/index.ts 主变更:5源搜索 + 所有新端点
src/main/modules/openApi/ipcSearch.ts 新建,IPC 搜索桥接
src/main/modules/winMain/main.ts sendSearchRequest() 封装
src/common/rendererIpc.ts rendererHandle() / removeHandler()
src/renderer/utils/openApiSearch.ts 新建,renderer 端 IPC handler
src/renderer/main.ts 注册 openApiSearch handler
src/common/types/app_setting.d.ts openAPI.sourceOrder 类型
src/common/defaultSetting.ts 默认值
SettingOpenAPI.vue 设置页 UI

AI 集成(lx-music-api-skill/)

lx-music-api-skill/ 文件夹包含 AI 助手使用指南和批量操作脚本:

  • SKILL.md — API 全部端点文档 + 常见工作流 + AI 决策框架(何时用 curl、何时写临时脚本)
  • batch_add.js — 批量搜歌脚本(并行搜索 5x 加速 + 增量保存防崩溃),支持 --all 不过滤翻唱

AI 拿到这些端点后能自动完成:搜索原唱 → 过滤翻唱 → 加入歌单 → 排序 → 覆盖,全部通过标准 HTTP 调用。

Closes #2874

NuSYiXue added 2 commits June 18, 2026 18:20
- 5音源搜索:kw/kg/mg/tx/wy,tx/wy通过IPC回调桥接renderer SDK
- 搜索参数:dedup/matchSinger/minQuality/order
- /playlist/create、/playlist/add、/playlist/list
- /playlist/overwrite、/playlist/remove、/playlist/songs
- parseBody GBK编码自动回退(iconv-lite)
- httpGet gzip/deflate解压 + User-Agent
- 设置页音源优先级(openAPI.sourceOrder)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant