mirror of
https://github.com/ZHANGTIANYAO1/teamspeak-music-bot.git
synced 2026-10-01 20:42:50 +08:00
feat(play): pick same-name songs via !search / #N / id: / URL (#90)
!play/!add/!playnext only ever searched with limit 1, so a same-name song could never be reached from chat (e.g. 'Die For You' always returned the most popular match, not The Weeknd's). Add three disambiguation paths via a shared resolver: - !search <name> — list the top matches (numbered, with id), remembered per bot - !play #N / !add #N — play/queue the Nth result of the last !search - !play id:<id> and pasted NetEase/QQ/BiliBili song URLs — play an exact song Pure parsing (parseSongRef / parseSelectionIndex) is unit-tested; plain-text search keeps the historical top-hit behavior. WebUI search (20 results) already allowed picking same-name songs and is unchanged. Fixes #90 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
22ec7328fa
commit
287dd240b1
4 files changed
+215
-34
No files matched your search
@@ -296,11 +296,14 @@ sudo systemctl start tsmusicbot
|
||||
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `!play <歌名>` | 搜索并播放 |
|
||||
| `!play <歌名>` | 搜索并播放(取最热门的匹配项) |
|
||||
| `!play -q <歌名>` | 从 QQ 音乐搜索 |
|
||||
| `!play -b <关键词>` | 从哔哩哔哩搜索视频并播放音频 |
|
||||
| `!play -y <关键词>` | 从 YouTube 搜索并播放(需要安装 [yt-dlp](#可选youtube-音源))|
|
||||
| `!add <歌名>` | 添加到播放队列 |
|
||||
| `!search <歌名>` | 列出前若干个匹配结果(含序号与 id),用于挑选同名歌曲 |
|
||||
| `!play #<序号>` | 播放上一次 `!search` 结果中的第 N 项(区分同名歌曲) |
|
||||
| `!play id:<id>` | 按歌曲 id 播放精确的某首歌(也支持直接粘贴网易云 / QQ / B站 歌曲链接) |
|
||||
| `!add <歌名>` | 添加到播放队列(同样支持 `#序号` / `id:<id>` / 链接) |
|
||||
| `!pause` / `!resume` | 暂停 / 恢复播放 |
|
||||
| `!next` / `!prev` | 下一首 / 上一首 |
|
||||
| `!stop` | 停止播放并清空队列 |
|
||||
@@ -513,6 +516,9 @@ A:确保机器人和你在同一个频道。检查音量(`!vol 75`)。部
|
||||
**Q:提示"无法获取播放链接"?**
|
||||
A:在设置页面扫码登录音乐账号。许多歌曲需要登录后才能播放。
|
||||
|
||||
**Q:同名歌曲 `!play` 只能播到最热门的那首,怎么播放指定的版本?**
|
||||
A:`!play <歌名>` 默认取最热门的匹配项。要播放同名的另一首,有三种方式:(1) 先 `!search <歌名>` 列出带序号的结果,再 `!play #序号` 选择;(2) `!play id:<歌曲id>` 按 id 精确播放;(3) 直接粘贴歌曲链接,如 `!play https://music.163.com/song?id=442867526`(也支持 QQ / B站 链接)。在 WebUI 中则可直接在搜索结果列表里点选任意同名歌曲。
|
||||
|
||||
**Q:如何更换机器人所在频道?**
|
||||
A:使用 `!move <频道名>` 命令,或在设置页面创建机器人时指定默认频道。
|
||||
|
||||
|
||||
Reference in new issue
Block a user