mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 13:59:39 +08:00
猜歌插件更改为本地猜歌 (#439)
This commit is contained in:
parent
aef678be5c
commit
467dd2ea65
26
README.md
26
README.md
@ -677,31 +677,33 @@ print("run[CQ:image,file="+j["img"]+"]")
|
|||||||
|
|
||||||
- 猜歌插件(该插件依赖ffmpeg)
|
- 猜歌插件(该插件依赖ffmpeg)
|
||||||
|
|
||||||
- [x] 设置猜歌缓存歌库路径 [绝对路径]
|
- 因为API不可抗因素,更改为了本地猜歌,但仍支持歌曲下载(VIP歌曲无法下载,黑胶可以)
|
||||||
|
|
||||||
- [x] 设置猜歌[本地/Api] [true/false]
|
- [x] 设置猜歌歌库路径 [绝对路径]
|
||||||
|
|
||||||
- [x] 登录网易云
|
- [x] 猜歌[开启/关闭][歌单/歌词]自动下载
|
||||||
|
|
||||||
- 注:不登陆也能用,API有几率返回400
|
- [x] 添加歌单 [网易云歌单链接/ID] [歌单名称]
|
||||||
|
|
||||||
- [x] 添加歌单 [网易云歌单ID] [歌单名称]
|
- [x] 下载歌曲 [歌曲名称/网易云歌曲ID] [歌单名称]
|
||||||
|
|
||||||
- 注:[歌单名称]可为空,默认原标题
|
- [x] 删除歌单 [网易云歌单ID/歌单名称]
|
||||||
|
|
||||||
- [x] 删除歌单 [网易云歌单ID/API歌单名称]
|
- 注:删除网易云歌单ID仅只是解除绑定,删除歌单名称是将本地数据全部删除!
|
||||||
|
|
||||||
- [x] 获取歌单列表
|
- [x] 设置猜歌默认歌单 [歌单名称]
|
||||||
|
|
||||||
- [x] [网易云歌单ID/API歌单名称]歌单信息
|
- [x] 歌单列表
|
||||||
|
|
||||||
- [x] [个人/团队]猜歌
|
- [x] [个人/团队]猜歌
|
||||||
|
|
||||||
- 注:默认歌库为网易云ACG动画榜
|
- 注:默认歌库为歌单列表第一个,如果设置了默认歌单变为指定的歌单
|
||||||
|
|
||||||
- 可在后面添加[-歌单名称]进行指定歌单猜歌
|
- 可在“[个人/团队]猜歌指令”后面添加[-歌单名称]进行指定歌单猜歌
|
||||||
|
|
||||||
- 歌单的歌曲命名规则为:歌名 - 歌手 - 其他(歌曲出处之类)
|
- 猜歌内容必须以[-]开头才会识别
|
||||||
|
|
||||||
|
- 本地歌曲命名规则为:\n歌名 - 歌手 - 其他(歌曲出处之类)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,406 +1,43 @@
|
|||||||
package guessmusic
|
package guessmusic
|
||||||
|
|
||||||
type listRaw struct {
|
// config内容
|
||||||
Name string `json:"name"`
|
|
||||||
ID int64 `json:"id"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type config struct {
|
type config struct {
|
||||||
MusicPath string `json:"musicPath"`
|
MusicPath string `json:"musicPath"`
|
||||||
Local bool `json:"local"`
|
Local bool `json:"local"`
|
||||||
API bool `json:"api"`
|
API bool `json:"api"`
|
||||||
Cookie string `json:"cookie"`
|
Cookie string `json:"cookie"`
|
||||||
Playlist []listRaw `json:"playlist"`
|
Playlist []listRaw `json:"playlist"`
|
||||||
|
Defaultlist []dlist `json:"defaultlist"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type keyInfo struct {
|
// 记录歌单绑定的网易云歌单ID
|
||||||
Data struct {
|
type listRaw struct {
|
||||||
Code int `json:"code"`
|
Name string `json:"name"` // 歌单名称
|
||||||
Unikey string `json:"unikey"`
|
ID int64 `json:"id"` // 歌单绑定的网易云ID
|
||||||
} `json:"data"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
}
|
|
||||||
type cookyInfo struct {
|
|
||||||
Code int `json:"code"`
|
|
||||||
Message string `json:"message"`
|
|
||||||
Cookie string `json:"cookie"`
|
|
||||||
}
|
|
||||||
type qrInfo struct {
|
|
||||||
Code int `json:"code"`
|
|
||||||
Data struct {
|
|
||||||
Qrurl string `json:"qrurl"`
|
|
||||||
Qrimg string `json:"qrimg"`
|
|
||||||
} `json:"data"`
|
|
||||||
}
|
|
||||||
type topList struct {
|
|
||||||
Code int `json:"code"`
|
|
||||||
RelatedVideos any `json:"relatedVideos"`
|
|
||||||
Playlist struct {
|
|
||||||
ID int64 `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
CoverImgID int64 `json:"coverImgId"`
|
|
||||||
CoverImgURL string `json:"coverImgUrl"`
|
|
||||||
CoverImgIDStr string `json:"coverImgId_str"`
|
|
||||||
AdType int `json:"adType"`
|
|
||||||
UserID int `json:"userId"`
|
|
||||||
CreateTime int64 `json:"createTime"`
|
|
||||||
Status int `json:"status"`
|
|
||||||
OpRecommend bool `json:"opRecommend"`
|
|
||||||
HighQuality bool `json:"highQuality"`
|
|
||||||
NewImported bool `json:"newImported"`
|
|
||||||
UpdateTime int64 `json:"updateTime"`
|
|
||||||
TrackCount int `json:"trackCount"`
|
|
||||||
SpecialType int `json:"specialType"`
|
|
||||||
Privacy int `json:"privacy"`
|
|
||||||
TrackUpdateTime int64 `json:"trackUpdateTime"`
|
|
||||||
CommentThreadID string `json:"commentThreadId"`
|
|
||||||
PlayCount int `json:"playCount"`
|
|
||||||
TrackNumberUpdateTime int64 `json:"trackNumberUpdateTime"`
|
|
||||||
SubscribedCount int `json:"subscribedCount"`
|
|
||||||
CloudTrackCount int `json:"cloudTrackCount"`
|
|
||||||
Ordered bool `json:"ordered"`
|
|
||||||
Description string `json:"description"`
|
|
||||||
Tags []string `json:"tags"`
|
|
||||||
UpdateFrequency any `json:"updateFrequency"`
|
|
||||||
BackgroundCoverID int `json:"backgroundCoverId"`
|
|
||||||
BackgroundCoverURL any `json:"backgroundCoverUrl"`
|
|
||||||
TitleImage int `json:"titleImage"`
|
|
||||||
TitleImageURL any `json:"titleImageUrl"`
|
|
||||||
EnglishTitle any `json:"englishTitle"`
|
|
||||||
OfficialPlaylistType any `json:"officialPlaylistType"`
|
|
||||||
Subscribers []struct {
|
|
||||||
DefaultAvatar bool `json:"defaultAvatar"`
|
|
||||||
Province int `json:"province"`
|
|
||||||
AuthStatus int `json:"authStatus"`
|
|
||||||
Followed bool `json:"followed"`
|
|
||||||
AvatarURL string `json:"avatarUrl"`
|
|
||||||
AccountStatus int `json:"accountStatus"`
|
|
||||||
Gender int `json:"gender"`
|
|
||||||
City int `json:"city"`
|
|
||||||
Birthday int `json:"birthday"`
|
|
||||||
UserID int `json:"userId"`
|
|
||||||
UserType int `json:"userType"`
|
|
||||||
Nickname string `json:"nickname"`
|
|
||||||
Signature string `json:"signature"`
|
|
||||||
Description string `json:"description"`
|
|
||||||
DetailDescription string `json:"detailDescription"`
|
|
||||||
AvatarImgID int64 `json:"avatarImgId"`
|
|
||||||
BackgroundImgID int64 `json:"backgroundImgId"`
|
|
||||||
BackgroundURL string `json:"backgroundUrl"`
|
|
||||||
Authority int `json:"authority"`
|
|
||||||
Mutual bool `json:"mutual"`
|
|
||||||
ExpertTags any `json:"expertTags"`
|
|
||||||
Experts any `json:"experts"`
|
|
||||||
DjStatus int `json:"djStatus"`
|
|
||||||
VipType int `json:"vipType"`
|
|
||||||
RemarkName any `json:"remarkName"`
|
|
||||||
AuthenticationTypes int `json:"authenticationTypes"`
|
|
||||||
AvatarDetail any `json:"avatarDetail"`
|
|
||||||
Anchor bool `json:"anchor"`
|
|
||||||
BackgroundImgIDStr string `json:"backgroundImgIdStr"`
|
|
||||||
AvatarImgIDStr string `json:"avatarImgIdStr"`
|
|
||||||
AvatarImgIDString string `json:"AvatarImgIDString"`
|
|
||||||
} `json:"subscribers"`
|
|
||||||
Subscribed any `json:"subscribed"`
|
|
||||||
Creator struct {
|
|
||||||
DefaultAvatar bool `json:"defaultAvatar"`
|
|
||||||
Province int `json:"province"`
|
|
||||||
AuthStatus int `json:"authStatus"`
|
|
||||||
Followed bool `json:"followed"`
|
|
||||||
AvatarURL string `json:"avatarUrl"`
|
|
||||||
AccountStatus int `json:"accountStatus"`
|
|
||||||
Gender int `json:"gender"`
|
|
||||||
City int `json:"city"`
|
|
||||||
Birthday int `json:"birthday"`
|
|
||||||
UserID int `json:"userId"`
|
|
||||||
UserType int `json:"userType"`
|
|
||||||
Nickname string `json:"nickname"`
|
|
||||||
Signature string `json:"signature"`
|
|
||||||
Description string `json:"description"`
|
|
||||||
DetailDescription string `json:"detailDescription"`
|
|
||||||
AvatarImgID int64 `json:"avatarImgId"`
|
|
||||||
BackgroundImgID int64 `json:"backgroundImgId"`
|
|
||||||
BackgroundURL string `json:"backgroundUrl"`
|
|
||||||
Authority int `json:"authority"`
|
|
||||||
Mutual bool `json:"mutual"`
|
|
||||||
ExpertTags any `json:"expertTags"`
|
|
||||||
Experts any `json:"experts"`
|
|
||||||
DjStatus int `json:"djStatus"`
|
|
||||||
VipType int `json:"vipType"`
|
|
||||||
RemarkName any `json:"remarkName"`
|
|
||||||
AuthenticationTypes int `json:"authenticationTypes"`
|
|
||||||
AvatarDetail struct {
|
|
||||||
UserType int `json:"userType"`
|
|
||||||
IdentityLevel int `json:"identityLevel"`
|
|
||||||
IdentityIconURL string `json:"identityIconUrl"`
|
|
||||||
} `json:"avatarDetail"`
|
|
||||||
Anchor bool `json:"anchor"`
|
|
||||||
BackgroundImgIDStr string `json:"backgroundImgIdStr"`
|
|
||||||
AvatarImgIDStr string `json:"avatarImgIdStr"`
|
|
||||||
AvatarImgIDString string `json:"AvatarImgIDString"`
|
|
||||||
} `json:"creator"`
|
|
||||||
Tracks []struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
ID int `json:"id"`
|
|
||||||
Pst int `json:"pst"`
|
|
||||||
T int `json:"t"`
|
|
||||||
Ar []struct {
|
|
||||||
ID int `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Tns []any `json:"tns"`
|
|
||||||
Alias []any `json:"alias"`
|
|
||||||
} `json:"ar"`
|
|
||||||
Alia []string `json:"alia"`
|
|
||||||
Pop int `json:"pop"`
|
|
||||||
St int `json:"st"`
|
|
||||||
Rt string `json:"rt"`
|
|
||||||
Fee int `json:"fee"`
|
|
||||||
V int `json:"v"`
|
|
||||||
Crbt any `json:"crbt"`
|
|
||||||
Cf string `json:"cf"`
|
|
||||||
Al struct {
|
|
||||||
ID int `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
PicURL string `json:"picUrl"`
|
|
||||||
Tns []any `json:"tns"`
|
|
||||||
PicStr string `json:"pic_str"`
|
|
||||||
Pic int64 `json:"pic"`
|
|
||||||
} `json:"al"`
|
|
||||||
Dt int `json:"dt"`
|
|
||||||
H struct {
|
|
||||||
Br int `json:"br"`
|
|
||||||
Fid int `json:"fid"`
|
|
||||||
Size int `json:"size"`
|
|
||||||
Vd float64 `json:"vd"`
|
|
||||||
Sr int `json:"sr"`
|
|
||||||
} `json:"h"`
|
|
||||||
M struct {
|
|
||||||
Br int `json:"br"`
|
|
||||||
Fid int `json:"fid"`
|
|
||||||
Size int `json:"size"`
|
|
||||||
Vd float64 `json:"vd"`
|
|
||||||
Sr int `json:"sr"`
|
|
||||||
} `json:"m"`
|
|
||||||
L struct {
|
|
||||||
Br int `json:"br"`
|
|
||||||
Fid int `json:"fid"`
|
|
||||||
Size int `json:"size"`
|
|
||||||
Vd float64 `json:"vd"`
|
|
||||||
Sr int `json:"sr"`
|
|
||||||
} `json:"l"`
|
|
||||||
Sq any `json:"sq"`
|
|
||||||
Hr any `json:"hr"`
|
|
||||||
A any `json:"a"`
|
|
||||||
Cd string `json:"cd"`
|
|
||||||
No int `json:"no"`
|
|
||||||
RtURL any `json:"rtUrl"`
|
|
||||||
Ftype int `json:"ftype"`
|
|
||||||
RtUrls []any `json:"rtUrls"`
|
|
||||||
DjID int `json:"djId"`
|
|
||||||
Copyright int `json:"copyright"`
|
|
||||||
SID int `json:"s_id"`
|
|
||||||
Mark int `json:"mark"`
|
|
||||||
OriginCoverType int `json:"originCoverType"`
|
|
||||||
OriginSongSimpleData any `json:"originSongSimpleData"`
|
|
||||||
TagPicList any `json:"tagPicList"`
|
|
||||||
ResourceState bool `json:"resourceState"`
|
|
||||||
Version int `json:"version"`
|
|
||||||
SongJumpInfo any `json:"songJumpInfo"`
|
|
||||||
EntertainmentTags any `json:"entertainmentTags"`
|
|
||||||
Single int `json:"single"`
|
|
||||||
NoCopyrightRcmd any `json:"noCopyrightRcmd"`
|
|
||||||
Alg any `json:"alg"`
|
|
||||||
Rtype int `json:"rtype"`
|
|
||||||
Rurl any `json:"rurl"`
|
|
||||||
Mst int `json:"mst"`
|
|
||||||
Cp int `json:"cp"`
|
|
||||||
Mv int `json:"mv"`
|
|
||||||
PublishTime int64 `json:"publishTime"`
|
|
||||||
Tns []string `json:"tns,omitempty"`
|
|
||||||
} `json:"tracks"`
|
|
||||||
VideoIds any `json:"videoIds"`
|
|
||||||
Videos any `json:"videos"`
|
|
||||||
TrackIds []struct {
|
|
||||||
ID int `json:"id"`
|
|
||||||
V int `json:"v"`
|
|
||||||
T int `json:"t"`
|
|
||||||
At int64 `json:"at"`
|
|
||||||
Alg any `json:"alg"`
|
|
||||||
UID int `json:"uid"`
|
|
||||||
RcmdReason string `json:"rcmdReason"`
|
|
||||||
Sc any `json:"sc"`
|
|
||||||
Lr int `json:"lr,omitempty"`
|
|
||||||
} `json:"trackIds"`
|
|
||||||
ShareCount int `json:"shareCount"`
|
|
||||||
CommentCount int `json:"commentCount"`
|
|
||||||
RemixVideo any `json:"remixVideo"`
|
|
||||||
SharedUsers any `json:"sharedUsers"`
|
|
||||||
HistorySharedUsers any `json:"historySharedUsers"`
|
|
||||||
GradeStatus string `json:"gradeStatus"`
|
|
||||||
Score any `json:"score"`
|
|
||||||
AlgTags any `json:"algTags"`
|
|
||||||
} `json:"playlist"`
|
|
||||||
Urls any `json:"urls"`
|
|
||||||
Privileges []struct {
|
|
||||||
ID int `json:"id"`
|
|
||||||
Fee int `json:"fee"`
|
|
||||||
Payed int `json:"payed"`
|
|
||||||
RealPayed int `json:"realPayed"`
|
|
||||||
St int `json:"st"`
|
|
||||||
Pl int `json:"pl"`
|
|
||||||
Dl int `json:"dl"`
|
|
||||||
Sp int `json:"sp"`
|
|
||||||
Cp int `json:"cp"`
|
|
||||||
Subp int `json:"subp"`
|
|
||||||
Cs bool `json:"cs"`
|
|
||||||
Maxbr int `json:"maxbr"`
|
|
||||||
Fl int `json:"fl"`
|
|
||||||
Pc any `json:"pc"`
|
|
||||||
Toast bool `json:"toast"`
|
|
||||||
Flag int `json:"flag"`
|
|
||||||
PaidBigBang bool `json:"paidBigBang"`
|
|
||||||
PreSell bool `json:"preSell"`
|
|
||||||
PlayMaxbr int `json:"playMaxbr"`
|
|
||||||
DownloadMaxbr int `json:"downloadMaxbr"`
|
|
||||||
MaxBrLevel string `json:"maxBrLevel"`
|
|
||||||
PlayMaxBrLevel string `json:"playMaxBrLevel"`
|
|
||||||
DownloadMaxBrLevel string `json:"downloadMaxBrLevel"`
|
|
||||||
PlLevel string `json:"plLevel"`
|
|
||||||
DlLevel string `json:"dlLevel"`
|
|
||||||
FlLevel string `json:"flLevel"`
|
|
||||||
Rscl int `json:"rscl"`
|
|
||||||
FreeTrialPrivilege struct {
|
|
||||||
ResConsumable bool `json:"resConsumable"`
|
|
||||||
UserConsumable bool `json:"userConsumable"`
|
|
||||||
ListenType any `json:"listenType"`
|
|
||||||
} `json:"freeTrialPrivilege"`
|
|
||||||
ChargeInfoList []struct {
|
|
||||||
Rate int `json:"rate"`
|
|
||||||
ChargeURL any `json:"chargeUrl"`
|
|
||||||
ChargeMessage any `json:"chargeMessage"`
|
|
||||||
ChargeType int `json:"chargeType"`
|
|
||||||
} `json:"chargeInfoList"`
|
|
||||||
} `json:"privileges"`
|
|
||||||
SharedPrivilege any `json:"sharedPrivilege"`
|
|
||||||
ResEntrance any `json:"resEntrance"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type topMusicInfo struct {
|
// 记录群默认猜歌
|
||||||
Songs []struct {
|
type dlist struct {
|
||||||
Name string `json:"name"`
|
GroupID int64 `json:"gid"` // 群号
|
||||||
ID int `json:"id"`
|
Name string `json:"name"` // 歌单名称
|
||||||
Pst int `json:"pst"`
|
}
|
||||||
T int `json:"t"`
|
|
||||||
Ar []struct {
|
// 本地歌单列表信息
|
||||||
ID int `json:"id"`
|
type listinfo struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"` // 歌单名称
|
||||||
Tns []any `json:"tns"`
|
Number int // 歌曲数量
|
||||||
Alias []any `json:"alias"`
|
ID int64 // 歌单绑定的歌曲ID
|
||||||
} `json:"ar"`
|
}
|
||||||
Alia []string `json:"alia"`
|
|
||||||
Pop int `json:"pop"`
|
// 独角兽API随机抽歌信息
|
||||||
St int `json:"st"`
|
type ovooaData struct {
|
||||||
Rt string `json:"rt"`
|
Code int `json:"code"`
|
||||||
Fee int `json:"fee"`
|
Text string `json:"text"`
|
||||||
V int `json:"v"`
|
Data struct {
|
||||||
Crbt any `json:"crbt"`
|
Song string `json:"song"`
|
||||||
Cf string `json:"cf"`
|
Singer string `json:"singer"`
|
||||||
Al struct {
|
Cover string `json:"cover"`
|
||||||
ID int `json:"id"`
|
Music string `json:"Music"`
|
||||||
Name string `json:"name"`
|
ID int `json:"id"`
|
||||||
PicURL string `json:"picUrl"`
|
} `json:"data"`
|
||||||
Tns []any `json:"tns"`
|
|
||||||
PicStr string `json:"pic_str"`
|
|
||||||
Pic int64 `json:"pic"`
|
|
||||||
} `json:"al"`
|
|
||||||
Dt int `json:"dt"`
|
|
||||||
H struct {
|
|
||||||
Br int `json:"br"`
|
|
||||||
Fid int `json:"fid"`
|
|
||||||
Size int `json:"size"`
|
|
||||||
Vd float32 `json:"vd"`
|
|
||||||
Sr int `json:"sr"`
|
|
||||||
} `json:"h"`
|
|
||||||
M struct {
|
|
||||||
Br int `json:"br"`
|
|
||||||
Fid int `json:"fid"`
|
|
||||||
Size int `json:"size"`
|
|
||||||
Vd float32 `json:"vd"`
|
|
||||||
Sr int `json:"sr"`
|
|
||||||
} `json:"m"`
|
|
||||||
L struct {
|
|
||||||
Br int `json:"br"`
|
|
||||||
Fid int `json:"fid"`
|
|
||||||
Size int `json:"size"`
|
|
||||||
Vd float32 `json:"vd"`
|
|
||||||
Sr int `json:"sr"`
|
|
||||||
} `json:"l"`
|
|
||||||
Sq any `json:"sq"`
|
|
||||||
Hr any `json:"hr"`
|
|
||||||
A any `json:"a"`
|
|
||||||
Cd string `json:"cd"`
|
|
||||||
No int `json:"no"`
|
|
||||||
RtURL any `json:"rtUrl"`
|
|
||||||
Ftype int `json:"ftype"`
|
|
||||||
RtUrls []any `json:"rtUrls"`
|
|
||||||
DjID int `json:"djId"`
|
|
||||||
Copyright int `json:"copyright"`
|
|
||||||
SID int `json:"s_id"`
|
|
||||||
Mark int `json:"mark"`
|
|
||||||
OriginCoverType int `json:"originCoverType"`
|
|
||||||
OriginSongSimpleData any `json:"originSongSimpleData"`
|
|
||||||
TagPicList any `json:"tagPicList"`
|
|
||||||
ResourceState bool `json:"resourceState"`
|
|
||||||
Version int `json:"version"`
|
|
||||||
SongJumpInfo any `json:"songJumpInfo"`
|
|
||||||
EntertainmentTags any `json:"entertainmentTags"`
|
|
||||||
AwardTags any `json:"awardTags"`
|
|
||||||
Single int `json:"single"`
|
|
||||||
NoCopyrightRcmd any `json:"noCopyrightRcmd"`
|
|
||||||
Rtype int `json:"rtype"`
|
|
||||||
Rurl any `json:"rurl"`
|
|
||||||
Mst int `json:"mst"`
|
|
||||||
Cp int `json:"cp"`
|
|
||||||
Mv int `json:"mv"`
|
|
||||||
PublishTime int64 `json:"publishTime"`
|
|
||||||
Tns []string `json:"tns,omitempty"`
|
|
||||||
} `json:"songs"`
|
|
||||||
Privileges []struct {
|
|
||||||
ID int `json:"id"`
|
|
||||||
Fee int `json:"fee"`
|
|
||||||
Payed int `json:"payed"`
|
|
||||||
St int `json:"st"`
|
|
||||||
Pl int `json:"pl"`
|
|
||||||
Dl int `json:"dl"`
|
|
||||||
Sp int `json:"sp"`
|
|
||||||
Cp int `json:"cp"`
|
|
||||||
Subp int `json:"subp"`
|
|
||||||
Cs bool `json:"cs"`
|
|
||||||
Maxbr int `json:"maxbr"`
|
|
||||||
Fl int `json:"fl"`
|
|
||||||
Toast bool `json:"toast"`
|
|
||||||
Flag int `json:"flag"`
|
|
||||||
PreSell bool `json:"preSell"`
|
|
||||||
PlayMaxbr int `json:"playMaxbr"`
|
|
||||||
DownloadMaxbr int `json:"downloadMaxbr"`
|
|
||||||
MaxBrLevel string `json:"maxBrLevel"`
|
|
||||||
PlayMaxBrLevel string `json:"playMaxBrLevel"`
|
|
||||||
DownloadMaxBrLevel string `json:"downloadMaxBrLevel"`
|
|
||||||
PlLevel string `json:"plLevel"`
|
|
||||||
DlLevel string `json:"dlLevel"`
|
|
||||||
FlLevel string `json:"flLevel"`
|
|
||||||
Rscl int `json:"rscl"`
|
|
||||||
FreeTrialPrivilege struct {
|
|
||||||
ResConsumable bool `json:"resConsumable"`
|
|
||||||
UserConsumable bool `json:"userConsumable"`
|
|
||||||
ListenType any `json:"listenType"`
|
|
||||||
} `json:"freeTrialPrivilege"`
|
|
||||||
ChargeInfoList []struct {
|
|
||||||
Rate int `json:"rate"`
|
|
||||||
ChargeURL any `json:"chargeUrl"`
|
|
||||||
ChargeMessage any `json:"chargeMessage"`
|
|
||||||
ChargeType int `json:"chargeType"`
|
|
||||||
} `json:"chargeInfoList"`
|
|
||||||
} `json:"privileges"`
|
|
||||||
Code int `json:"code"`
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user