From 4cd81cb2e989531affd90a274e149e2841cec05f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E6=9F=B3=E7=85=9C?= <101934327+fangliuyu@users.noreply.github.com> Date: Wed, 12 Oct 2022 23:45:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0QQ=E9=9F=B3=E4=B9=90=E7=82=B9?= =?UTF-8?q?=E6=AD=8CAPI=EF=BC=8C=E4=BF=AE=E5=A4=8D=E7=8C=9C=E6=AD=8Cpanic?= =?UTF-8?q?=20(#444)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- plugin/guessmusic/main.go | 9 ++++----- plugin/music/selecter.go | 5 ++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 6470528e..ac456c37 100644 --- a/README.md +++ b/README.md @@ -683,7 +683,9 @@ print("run[CQ:image,file="+j["img"]+"]") - [x] 猜歌[开启/关闭][歌单/歌词]自动下载 - - [x] 添加歌单 [网易云歌单链接/ID] [歌单名称] + - 现只有歌词指令有效 + + - [ ] 添加歌单 [网易云歌单链接/ID] [歌单名称] - [x] 下载歌曲 [歌曲名称/网易云歌曲ID] [歌单名称] diff --git a/plugin/guessmusic/main.go b/plugin/guessmusic/main.go index b9cc0957..f1b7999a 100644 --- a/plugin/guessmusic/main.go +++ b/plugin/guessmusic/main.go @@ -17,6 +17,7 @@ import ( "github.com/FloatTech/zbputils/control" "github.com/FloatTech/zbputils/ctxext" "github.com/pkg/errors" + "github.com/sirupsen/logrus" zero "github.com/wdvxdr1123/ZeroBot" "github.com/wdvxdr1123/ZeroBot/extension/single" "github.com/wdvxdr1123/ZeroBot/message" @@ -45,12 +46,10 @@ func init() { // 插件主体 DisableOnDefault: false, Help: "猜歌插件(该插件依赖ffmpeg)\n" + "由于不可抗因素无法获取网易云歌单内容,\n插件改为本地猜歌了,但保留了下歌功能\n" + - "当前的API是独角兽的网易云API,只能从歌单随机抽取歌曲信息\n(也不知道这个API能活到什么时候x)\n" + - "修改了猜歌逻辑:\n可为本地目录添加网易云歌单,\n猜歌时会优先从API歌单中随机抽取歌曲并下载\n" + "------bot主人指令------\n" + "- 设置猜歌歌库路径 [绝对路径]\n" + - "- 猜歌[开启/关闭][歌单/歌词]自动下载\n" + - "- 添加歌单 [网易云歌单链接/ID] [歌单名称]\n" + + "-(指令仅歌词有效) 猜歌[开启/关闭][歌单/歌词]自动下载\n" + + "-(指令已失效) 添加歌单 [网易云歌单链接/ID] [歌单名称]\n" + "- 下载歌曲 [歌曲名称/网易云歌曲ID] [歌单名称]\n" + "- 删除歌单 [网易云歌单ID/歌单名称]\n" + "注:\n删除网易云歌单ID仅只是解除绑定\n删除歌单名称是将本地数据全部删除,慎用\n" + @@ -113,7 +112,7 @@ func init() { // 插件主体 } filelist, err = getlist(cfg.MusicPath) if err != nil { - panic(serviceErr + "ERROR:" + err.Error()) + logrus.Errorln(serviceErr + "ERROR:" + err.Error()) } // 用户配置 engine.OnRegex(`^设置猜歌(歌库路径|默认歌单)\s*(.*)$`).SetBlock(true). diff --git a/plugin/music/selecter.go b/plugin/music/selecter.go index bfb91d51..ac1bdbf4 100644 --- a/plugin/music/selecter.go +++ b/plugin/music/selecter.go @@ -150,14 +150,13 @@ func cloud163(keyword string) (msg message.MessageSegment) { // qqmusic 返回QQ音乐卡片 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()) if err != nil { msg = message.Text("ERROR: ", err) return } - info := gjson.ParseBytes(data[9 : len(data)-1]).Get("data.song.list.0") - msg = message.Music("qq", info.Get("songid").Int()) + msg = message.Music("qq", gjson.ParseBytes(data).Get("data.song.itemlist.0.id").Int()) return }