Skip to content

fix: export MusicShare without song ID - #155

Open
006lp wants to merge 1 commit into
nonebot:masterfrom
006lp:fix/musicshare-export-without-song-id
Open

006lp wants to merge 1 commit into
nonebot:masterfrom
006lp:fix/musicshare-export-without-song-id

Conversation

@006lp

@006lp 006lp commented Oct 28, 2026

Copy link
Copy Markdown

问题与修复

此前,导出无歌曲 ID 的 MusicShare 时,始终使用 data.type="custom",并将指定平台写入 data.subtype,导致通过 type 判断平台的下游无法识别音乐来源。

本次调整为:显式指定具体音乐平台且无 ID 时,将平台写入 data.type,保留 url、audio、title、content 和封面信息。

例如,kind=MusicShareKind.KuwoMusic、id=None 时:

  • 修改前:type="custom", subtype="kuwo"
  • 修改后:type="kuwo",不再添加 subtype

兼容性

  • 提供 ID 时,沿用原有的平台歌曲 ID 导出逻辑。
  • MusicShareKind.Custom 保持原有的 type="custom", subtype="qq" 导出结果。
  • kind 仍为必填参数。

验证

  • 新增 23 项回归测试,覆盖平台映射、空 ID、有 ID、自定义来源、必填参数、元数据回退及 matcher 发送。
  • 全量测试:64 passed。
  • Ruff、Black 检查通过。

Closes #154

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.

[Feature] MusicShare在无id的情况下显式指定平台 type,并保留自定义直链和元数据

1 participant