mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-20 06:20:08 +08:00
更新QQ音乐点歌API,修复猜歌panic (#444)
This commit is contained in:
parent
dc34a33346
commit
4cd81cb2e9
@ -683,7 +683,9 @@ print("run[CQ:image,file="+j["img"]+"]")
|
|||||||
|
|
||||||
- [x] 猜歌[开启/关闭][歌单/歌词]自动下载
|
- [x] 猜歌[开启/关闭][歌单/歌词]自动下载
|
||||||
|
|
||||||
- [x] 添加歌单 [网易云歌单链接/ID] [歌单名称]
|
- 现只有歌词指令有效
|
||||||
|
|
||||||
|
- [ ] 添加歌单 [网易云歌单链接/ID] [歌单名称]
|
||||||
|
|
||||||
- [x] 下载歌曲 [歌曲名称/网易云歌曲ID] [歌单名称]
|
- [x] 下载歌曲 [歌曲名称/网易云歌曲ID] [歌单名称]
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import (
|
|||||||
"github.com/FloatTech/zbputils/control"
|
"github.com/FloatTech/zbputils/control"
|
||||||
"github.com/FloatTech/zbputils/ctxext"
|
"github.com/FloatTech/zbputils/ctxext"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
"github.com/wdvxdr1123/ZeroBot/extension/single"
|
"github.com/wdvxdr1123/ZeroBot/extension/single"
|
||||||
"github.com/wdvxdr1123/ZeroBot/message"
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
@ -45,12 +46,10 @@ func init() { // 插件主体
|
|||||||
DisableOnDefault: false,
|
DisableOnDefault: false,
|
||||||
Help: "猜歌插件(该插件依赖ffmpeg)\n" +
|
Help: "猜歌插件(该插件依赖ffmpeg)\n" +
|
||||||
"由于不可抗因素无法获取网易云歌单内容,\n插件改为本地猜歌了,但保留了下歌功能\n" +
|
"由于不可抗因素无法获取网易云歌单内容,\n插件改为本地猜歌了,但保留了下歌功能\n" +
|
||||||
"当前的API是独角兽的网易云API,只能从歌单随机抽取歌曲信息\n(也不知道这个API能活到什么时候x)\n" +
|
|
||||||
"修改了猜歌逻辑:\n可为本地目录添加网易云歌单,\n猜歌时会优先从API歌单中随机抽取歌曲并下载\n" +
|
|
||||||
"------bot主人指令------\n" +
|
"------bot主人指令------\n" +
|
||||||
"- 设置猜歌歌库路径 [绝对路径]\n" +
|
"- 设置猜歌歌库路径 [绝对路径]\n" +
|
||||||
"- 猜歌[开启/关闭][歌单/歌词]自动下载\n" +
|
"-(指令仅歌词有效) 猜歌[开启/关闭][歌单/歌词]自动下载\n" +
|
||||||
"- 添加歌单 [网易云歌单链接/ID] [歌单名称]\n" +
|
"-(指令已失效) 添加歌单 [网易云歌单链接/ID] [歌单名称]\n" +
|
||||||
"- 下载歌曲 [歌曲名称/网易云歌曲ID] [歌单名称]\n" +
|
"- 下载歌曲 [歌曲名称/网易云歌曲ID] [歌单名称]\n" +
|
||||||
"- 删除歌单 [网易云歌单ID/歌单名称]\n" +
|
"- 删除歌单 [网易云歌单ID/歌单名称]\n" +
|
||||||
"注:\n删除网易云歌单ID仅只是解除绑定\n删除歌单名称是将本地数据全部删除,慎用\n" +
|
"注:\n删除网易云歌单ID仅只是解除绑定\n删除歌单名称是将本地数据全部删除,慎用\n" +
|
||||||
@ -113,7 +112,7 @@ func init() { // 插件主体
|
|||||||
}
|
}
|
||||||
filelist, err = getlist(cfg.MusicPath)
|
filelist, err = getlist(cfg.MusicPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(serviceErr + "ERROR:" + err.Error())
|
logrus.Errorln(serviceErr + "ERROR:" + err.Error())
|
||||||
}
|
}
|
||||||
// 用户配置
|
// 用户配置
|
||||||
engine.OnRegex(`^设置猜歌(歌库路径|默认歌单)\s*(.*)$`).SetBlock(true).
|
engine.OnRegex(`^设置猜歌(歌库路径|默认歌单)\s*(.*)$`).SetBlock(true).
|
||||||
|
|||||||
@ -150,14 +150,13 @@ func cloud163(keyword string) (msg message.MessageSegment) {
|
|||||||
|
|
||||||
// qqmusic 返回QQ音乐卡片
|
// qqmusic 返回QQ音乐卡片
|
||||||
func qqmusic(keyword string) (msg message.MessageSegment) {
|
func qqmusic(keyword string) (msg message.MessageSegment) {
|
||||||
requestURL := "https://c.y.qq.com/soso/fcgi-bin/client_search_cp?w=" + url.QueryEscape(keyword)
|
requestURL := "https://c.y.qq.com/splcloud/fcgi-bin/smartbox_new.fcg?platform=yqq.json&key=" + url.QueryEscape(keyword)
|
||||||
data, err := web.RequestDataWith(web.NewDefaultClient(), requestURL, "GET", "", web.RandUA())
|
data, err := web.RequestDataWith(web.NewDefaultClient(), requestURL, "GET", "", web.RandUA())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
msg = message.Text("ERROR: ", err)
|
msg = message.Text("ERROR: ", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
info := gjson.ParseBytes(data[9 : len(data)-1]).Get("data.song.list.0")
|
msg = message.Music("qq", gjson.ParseBytes(data).Get("data.song.itemlist.0.id").Int())
|
||||||
msg = message.Music("qq", info.Get("songid").Int())
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user