weapi

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

This section is empty.

Types

type AlbumReq

type AlbumReq struct {
	Id string `json:"id"` // 专辑id
}

type AlbumResp

type AlbumResp struct {
	types.RespCommon[any]
	ResourceState bool             `json:"resourceState"`
	Songs         []AlbumRespSongs `json:"songs"`
	Album         AlbumRespAlbum   `json:"album"`
}

type AlbumRespAlbum

type AlbumRespAlbum struct {
	Alias           []interface{}          `json:"alias"`
	Artist          AlbumRespAlbumArtist   `json:"artist"`
	Artists         []AlbumRespAlbumArtist `json:"artists"`
	AwardTags       interface{}            `json:"awardTags"`
	BlurPicUrl      string                 `json:"blurPicUrl"`
	BriefDesc       interface{}            `json:"briefDesc"`
	CommentThreadId string                 `json:"commentThreadId"`
	Company         string                 `json:"company"`
	CompanyId       int64                  `json:"companyId"`
	CopyrightId     int64                  `json:"copyrightId"`
	Description     string                 `json:"description"`
	Id              int64                  `json:"id"`
	Info            struct {
		CommentCount  int64 `json:"commentCount"`
		CommentThread struct {
			CommentCount     int64       `json:"commentCount"`
			HotCount         int64       `json:"hotCount"`
			Id               string      `json:"id"`
			LatestLikedUsers interface{} `json:"latestLikedUsers"`
			LikedCount       int64       `json:"likedCount"`
			ResourceId       int64       `json:"resourceId"`
			ResourceInfo     struct {
				Creator   interface{} `json:"creator"`
				EncodedId interface{} `json:"encodedId"`
				Id        int64       `json:"id"`
				ImgUrl    string      `json:"imgUrl"`
				Name      string      `json:"name"`
				SubTitle  interface{} `json:"subTitle"`
				UserId    int64       `json:"userId"`
				WebUrl    interface{} `json:"webUrl"`
			} `json:"resourceInfo"`
			ResourceOwnerId int64  `json:"resourceOwnerId"`
			ResourceTitle   string `json:"resourceTitle"`
			ResourceType    int64  `json:"resourceType"`
			ShareCount      int64  `json:"shareCount"`
		} `json:"commentThread"`
		Comments         interface{} `json:"comments"`
		LatestLikedUsers interface{} `json:"latestLikedUsers"`
		Liked            bool        `json:"liked"`
		LikedCount       int64       `json:"likedCount"`
		ResourceId       int64       `json:"resourceId"`
		ResourceType     int64       `json:"resourceType"`
		ShareCount       int64       `json:"shareCount"`
		ThreadId         string      `json:"threadId"`
	} `json:"info"`
	Mark        int64         `json:"mark"`
	Name        string        `json:"name"`
	OnSale      bool          `json:"onSale"`
	Paid        bool          `json:"paid"`
	Pic         int64         `json:"pic"`
	PicId       int64         `json:"picId"`
	PicIdStr    string        `json:"picId_str"`
	PicUrl      string        `json:"picUrl"`
	PublishTime int64         `json:"publishTime"`
	Size        int64         `json:"size"`
	Songs       []interface{} `json:"songs"`
	Status      int64         `json:"status"`
	SubType     string        `json:"subType"`
	Tags        string        `json:"tags"`
	Type        string        `json:"type"`
}

type AlbumRespAlbumArtist

type AlbumRespAlbumArtist struct {
	AlbumSize   int64         `json:"albumSize"`
	Alias       []interface{} `json:"alias"`
	BriefDesc   string        `json:"briefDesc"`
	Followed    bool          `json:"followed"`
	Id          int64         `json:"id"`
	Img1V1Id    int64         `json:"img1v1Id"`
	Img1V1IdStr string        `json:"img1v1Id_str"`
	Img1V1Url   string        `json:"img1v1Url"`
	MusicSize   int64         `json:"musicSize"`
	Name        string        `json:"name"`
	PicId       int64         `json:"picId"`
	PicIdStr    string        `json:"picId_str"`
	PicUrl      string        `json:"picUrl"`
	TopicPerson int64         `json:"topicPerson"`
	Trans       string        `json:"trans"`
}

type AlbumRespSongs

type AlbumRespSongs struct {
	Id              int64          `json:"id"`
	A               interface{}    `json:"a"`
	Al              types.Album    `json:"al"`
	Alia            []interface{}  `json:"alia"`
	Ar              []types.Artist `json:"ar"`
	Cd              string         `json:"cd"`
	Cf              string         `json:"cf"`
	Cp              int64          `json:"cp"`
	Crbt            interface{}    `json:"crbt"`
	DjId            int64          `json:"djId"`
	Dt              int64          `json:"dt"`
	Fee             int64          `json:"fee"`
	Ftype           int64          `json:"ftype"`
	H               *types.Quality `json:"h"`
	Hr              *types.Quality `json:"hr"`
	L               *types.Quality `json:"l"`
	M               *types.Quality `json:"m"`
	Sq              *types.Quality `json:"sq"`
	Mst             int64          `json:"mst"`
	Mv              int64          `json:"mv"`
	Name            string         `json:"name"`
	No              int64          `json:"no"`
	NoCopyrightRcmd interface{}    `json:"noCopyrightRcmd"`
	Pop             float64        `json:"pop"`
	Pst             int64          `json:"pst"`
	Rt              string         `json:"rt"`
	RtUrl           interface{}    `json:"rtUrl"`
	RtUrls          []interface{}  `json:"rtUrls"`
	Rtype           int64          `json:"rtype"`
	Rurl            interface{}    `json:"rurl"`
	SongJumpInfo    interface{}    `json:"songJumpInfo"`
	St              int64          `json:"st"`
	T               int64          `json:"t"`
	V               int64          `json:"v"`
	Privilege       struct {
		types.Privileges
		Code    int64       `json:"code"`
		Message interface{} `json:"message"`
	} `json:"privilege"`
}

type Api

type Api struct {
	// contains filtered or unexported fields
}

func New

func New(client *api.Client) *Api

func (*Api) Album

func (a *Api) Album(ctx context.Context, req *AlbumReq) (*AlbumResp, error)

Album 专辑内容 url: needLogin:

func (*Api) ApiWebLog

func (a *Api) ApiWebLog(ctx context.Context, req *ApiWebLogReq) (*ApiWebLogResp, error)

ApiWebLog 日志上报 目前已知使用场景 1. 登录使用行为

func (*Api) ArtistSongs

func (a *Api) ArtistSongs(ctx context.Context, req *ArtistSongsReq) (*ArtistSongsResp, error)

ArtistSongs 歌手所有歌曲 url: needLogin:

func (*Api) CDNList

func (a *Api) CDNList(ctx context.Context, req *CDNListReq) (*CDNListResp, error)

CDNList 获取CDN列表 url: testdata/har/5.har needLogin: 未知

func (*Api) CloudDel

func (a *Api) CloudDel(ctx context.Context, req *CloudDelReq) (*CloudDelResp, error)

CloudDel 云盘歌曲删除 url: 15.har needLogin: 未知

func (*Api) CloudDownload

func (a *Api) CloudDownload(ctx context.Context, req *CloudDownloadReq) (*CloudDownloadResp, error)

CloudDownload 云盘歌曲下载歌曲 url: testdata/har/2.har needLogin: 未知

func (*Api) CloudInfo

func (a *Api) CloudInfo(ctx context.Context, req *CloudInfoReq) (*CloudInfoResp, error)

CloudInfo 上传信息歌曲信息 url: /testdata/9.har needLogin: 未知

func (*Api) CloudList

func (a *Api) CloudList(ctx context.Context, req *CloudListReq) (*CloudListResp, error)

CloudList 查询云盘列表,包含云盘空间大小、已用空间数

func (*Api) CloudLyric

func (a *Api) CloudLyric(ctx context.Context, req *CloudLyricReq) (*CloudLyricResp, error)

CloudLyric 云盘歌曲歌词获取 url: testdata/har/3.har needLogin: 未知

func (*Api) CloudMusicStatus

func (a *Api) CloudMusicStatus(ctx context.Context, req *CloudMusicStatusReq) (*CloudMusicStatusResp, error)

CloudMusicStatus 查询上传文件状态信息,此接口貌似是上传文件后查询文件转码状态 url: /testdata/10.har needLogin: 未知

func (*Api) CloudPublish

func (a *Api) CloudPublish(ctx context.Context, req *CloudPublishReq) (*CloudPublishResp, error)

CloudPublish 上传信息发布 url: testdata/har/13.har needLogin: 未知

func (*Api) CloudTokenAlloc

func (a *Api) CloudTokenAlloc(ctx context.Context, req *CloudTokenAllocReq) (*CloudTokenAllocResp, error)

CloudTokenAlloc 获取上传云盘token url: needLogin: 未知

func (*Api) CloudUpload

func (a *Api) CloudUpload(ctx context.Context, req *CloudUploadReq) (*CloudUploadResp, error)

CloudUpload 上传到云盘 url: needLogin: 未知 todo: 需要迁移到合适的包中

func (*Api) CloudUploadCheck

func (a *Api) CloudUploadCheck(ctx context.Context, req *CloudUploadCheckReq) (*CloudUploadCheckResp, error)

CloudUploadCheck 获取上传云盘token url: needLogin: 未知

func (*Api) CloudUploadCheckV2 added in v0.1.0

func (a *Api) CloudUploadCheckV2(ctx context.Context, req *CloudUploadCheckV2Req) (*CloudUploadCheckV2Resp, error)

CloudUploadCheckV2 获取上传云盘token url: 14.har needLogin: 未知

func (*Api) CloudUploadNode added in v0.1.0

func (a *Api) CloudUploadNode(ctx context.Context, req *CloudUploadNodeReq) (*CloudUploadNodeResp, error)

CloudUploadNode 上传节点获取 url: 16.har needLogin: 不需要

func (*Api) CommentInfoList added in v0.1.4

func (a *Api) CommentInfoList(ctx context.Context, req *CommentInfoListReq) (*CommentInfoListResp, error)

CommentInfoList 获取歌曲评论梗概信息 har: 36.har needLogin: 未知

func (*Api) Comments added in v0.1.4

func (a *Api) Comments(ctx context.Context, req *CommentsReq) (*CommentsResp, error)

Comments 获取歌曲评论列表 har: 37.har needLogin: 未知

func (*Api) DjRadioSub added in v0.1.4

func (a *Api) DjRadioSub(ctx context.Context, req *DjRadioSub) (*DjRadioSubResp, error)

DjRadioSub 获取订阅博客列表 har: 34.har

func (*Api) GetUserBindings added in v0.1.4

func (a *Api) GetUserBindings(ctx context.Context, req *GetUserBindingsReq) (*GetUserBindingsResp, error)

GetUserBindings 获取用户绑定账号信息 har:

func (*Api) GetUserInfo

func (a *Api) GetUserInfo(ctx context.Context, req *GetUserInfoReq) (*GetUserInfoResp, error)

GetUserInfo 获取用户信息.

func (*Api) GetUserInfoDetail added in v0.1.4

func (a *Api) GetUserInfoDetail(ctx context.Context, req *GetUserInfoDetailReq) (*GetUserInfoDetailResp, error)

GetUserInfoDetail 获取用户信息 har: 29.har

func (*Api) Layout

func (a *Api) Layout(ctx context.Context, req *LayoutReq) (*LayoutResp, error)

Layout 退出

func (*Api) LoginCellphone added in v0.2.0

func (a *Api) LoginCellphone(ctx context.Context, req *LoginCellphoneReq) (*LoginCellphoneResp, error)

LoginCellphone 手机号登录.

func (*Api) Lyric

func (a *Api) Lyric(ctx context.Context, req *LyricReq) (*LyricResp, error)

Lyric 根据歌曲id获取歌曲歌词 url: needLogin: 否

func (*Api) NeedLogin

func (a *Api) NeedLogin(ctx context.Context) bool

func (*Api) PCDailyRecommendBlock added in v0.1.4

func (a *Api) PCDailyRecommendBlock(ctx context.Context, req *PCDailyRecommendBlockReq) (*PCDailyRecommendBlockResp, error)

PCDailyRecommendBlock pc端每日推荐歌曲列表,目前已经在mac中有使用 har: todo: 400 错误待解决定位

func (*Api) PCRecentListenList added in v0.1.5

func (a *Api) PCRecentListenList(ctx context.Context, req *PCRecentListenListReq) (*PCRecentListenListResp, error)

PCRecentListenList PC端查看最近播放歌单 har: 38.har

func (*Api) PartnerContentAntispam added in v0.1.0

func (a *Api) PartnerContentAntispam(ctx context.Context, req *PartnerContentAntispamReq) (*PartnerContentAntispamResp, error)

PartnerContentAntispam 内容安审 har: 17.har

func (*Api) PartnerDailyTask

func (a *Api) PartnerDailyTask(ctx context.Context, req *PartnerTaskReq) (*PartnerTaskResp, error)

PartnerDailyTask 查询当日任务情况 har: 22.har

func (*Api) PartnerEvaluate

func (a *Api) PartnerEvaluate(ctx context.Context, req *PartnerEvaluateReq) (*PartnerEvaluateResp, error)

PartnerEvaluate 音乐评审提交 har: 26.har

func (*Api) PartnerExtraReport

func (a *Api) PartnerExtraReport(ctx context.Context, req *PartnerExtraReportReq) (*PartnerExtraReportResp, error)

PartnerExtraReport 报告扩展听歌任务(2024年10月21日出的新功能测评) har: 25.har

func (*Api) PartnerExtraTask

func (a *Api) PartnerExtraTask(ctx context.Context, req *PartnerExtraTaskReq) (*PartnerExtraTaskResp, error)

PartnerExtraTask 扩展听歌任务列表(2024年10月21日推出的新功能测评)。 har: 27.har

func (*Api) PartnerHome

func (a *Api) PartnerHome(ctx context.Context, req *PartnerHomeReq) (*PartnerHomeResp, error)

PartnerHome 查询本周完成任务情况 har: 21.har

func (*Api) PartnerHotPopup added in v0.1.0

func (a *Api) PartnerHotPopup(ctx context.Context, req *PartnerHotPopupReq) (*PartnerHotPopupResp, error)

PartnerHotPopup 未知 har: 18.har

func (*Api) PartnerLatest

func (a *Api) PartnerLatest(ctx context.Context, req *PartnerLatestReq) (*PartnerLatestResp, error)

PartnerLatest 查询下个周期开始时间 har: 20.har

func (*Api) PartnerNotice

func (a *Api) PartnerNotice(ctx context.Context, req *PartnerNoticeReq) (*PartnerNoticeResp, error)

PartnerNotice 是否开启通知? har: 24.har

func (*Api) PartnerPeriod

func (a *Api) PartnerPeriod(ctx context.Context, req *PartnerPeriodReq) (*PartnerPeriodResp, error)

PartnerPeriod 查询当前周期数据报告情况

func (*Api) PartnerPickRight

func (a *Api) PartnerPickRight(ctx context.Context, req *PartnerPickRightReq) (*PartnerPickRightResp, error)

PartnerPickRight todo:正确数量? har: 23.har

func (*Api) PartnerUserinfo

func (a *Api) PartnerUserinfo(ctx context.Context, req *PartnerUserinfoReq) (*PartnerUserinfoResp, error)

PartnerUserinfo 查询当前用户数据 har: 19.har

func (*Api) PartnerWeek

func (a *Api) PartnerWeek(ctx context.Context, req *PartnerWeekReq) (*PartnerWeekResp, error)

PartnerWeek 查询当前周期周一数据报告情况

func (*Api) Playlist

func (a *Api) Playlist(ctx context.Context, req *PlaylistReq) (*PlaylistResp, error)

Playlist 歌单列表.其中包含用户创建得歌单+我喜欢得歌单 url: https://app.apifox.com/project/3870894 testdata/har/4.har NeedLogin: 未知

func (*Api) PlaylistAddOrDel added in v0.3.3

func (a *Api) PlaylistAddOrDel(ctx context.Context, req *PlaylistAddOrDelReq) (*PlaylistAddOrDelResp, error)

PlaylistAddOrDel 对歌单添加或删除歌曲 code message:502 歌单歌曲重复, 404 歌单不存在(包含没有权限添加的歌单), 400 当前歌曲已下架,无法收藏哦(包含不存在的歌曲id)

func (*Api) PlaylistDetail

func (a *Api) PlaylistDetail(ctx context.Context, req *PlaylistDetailReq) (*PlaylistDetailResp, error)

PlaylistDetail 歌单列表 url: testdata/har/7.har needLogin: 不需要认证

func (*Api) PlaylistUpdatePlayCount added in v0.4.0

func (a *Api) PlaylistUpdatePlayCount(ctx context.Context, req *PlaylistUpdatePlayCountReq) (*PlaylistUpdatePlayCountResp, error)

func (*Api) QrcodeCheck

func (a *Api) QrcodeCheck(ctx context.Context, req *QrcodeCheckReq) (*QrcodeCheckResp, error)

QrcodeCheck 查询扫码状态 返回值: 800-二维码不存在或已过期 801-等待扫码 802-正在扫码授权中 803-授权登录成功.

func (*Api) QrcodeCreateKey

func (a *Api) QrcodeCreateKey(ctx context.Context, req *QrcodeCreateKeyReq) (*QrcodeCreateKeyResp, error)

QrcodeCreateKey 生成二维码需要得key 常见问题 1. 请求成功了,但是body为空值什么也没有,原因还是参数加密出现了问题。 2. crsftoken 可传可不传个人猜测前端写得通用框架传了.

func (*Api) QrcodeGenerate

func (a *Api) QrcodeGenerate(ctx context.Context, req *QrcodeGenerateReq) (*QrcodeGenerateResp, error)

QrcodeGenerate 根据 QrcodeCreateKey 接口生成得key生成生成二维码,注意此处不是调用服务接口。

func (*Api) Radio added in v0.1.4

func (a *Api) Radio(ctx context.Context, req *RadioReq) (*RadioResp, error)

Radio 私人漫游歌单 har: 32.har todo: 目前貌似今日首次进入为1,然后之后都为0,另外接口没有发现分页参数,另外貌似每次调用返回结果都不一样

func (*Api) RecommendSongs

func (a *Api) RecommendSongs(ctx context.Context, req *RecommendSongsReq) (*RecommendSongsResp, error)

RecommendSongs 每日推荐歌曲列表 url: needLogin: 未知

func (*Api) RegisterAnonymous added in v0.1.4

func (a *Api) RegisterAnonymous(ctx context.Context, req *RegisterAnonymousReq) (*RegisterAnonymousResp, error)

RegisterAnonymous 匿名用户注册 har: 33.har

func (*Api) SMSVerify added in v0.2.0

func (a *Api) SMSVerify(ctx context.Context, req *SMSVerifyReq) (*SMSVerifyResp, error)

SMSVerify 验证码验证.

func (*Api) SearchDefault

func (a *Api) SearchDefault(ctx context.Context, req *SearchDefaultReq) (*SearchDefaultResp, error)

SearchDefault 首页搜索输入框默认搜索关键词 url: testdata/har/11.har needLogin: 未知

func (*Api) SendSMS added in v0.2.0

func (a *Api) SendSMS(ctx context.Context, req *SendSMSReq) (*SendSMSResp, error)

SendSMS 发送验证码 注意: 验证码 24h 内最多发送五次.

func (*Api) SignIn

func (a *Api) SignIn(ctx context.Context, req *SignInReq) (*SignInResp, error)

SignIn 乐签每日签到 url: needLogin: 是 todo:

1.目前传0会出现功能暂不支持不知为何(可能请求头或cookie问题)待填坑
2.该接口签到成功后在手机app云贝中心看不到对应得奖励数据以及记录,猜测该接口可能要废弃了。

func (*Api) SignInHappyInfo

func (a *Api) SignInHappyInfo(ctx context.Context, req *SignHappyInfoReq) (*SignHappyInfoResp, error)

SignInHappyInfo 乐签签到成功后返回的每日一言信息 url: needLogin: 是 todo: 该接口应该是旧得签到信息,现在云贝中心里面看不到此信息了

func (*Api) SignInProgress

func (a *Api) SignInProgress(ctx context.Context, req *SignInProgressReq) (*SignInProgressResp, error)

SignInProgress 获取签到进度 url: needLogin: 是

func (*Api) SongDetail

func (a *Api) SongDetail(ctx context.Context, req *SongDetailReq) (*SongDetailResp, error)

SongDetail 根据歌曲id获取歌曲详情 url: https://app.apifox.com/project/3870894 testdata/har/1.har needLogin: 未知

func (*Api) SongDownloadUrl

func (a *Api) SongDownloadUrl(ctx context.Context, req *SongDownloadUrlReq) (*SongDownloadUrlResp, error)

SongDownloadUrl 根据歌曲id获取下载链接 url: needLogin: 未知 说明: 使用 SongPlayer(song/enhance/player/url) 接口获取的是歌曲试听url, 但存在部分歌曲在非 VIP 账号上可以下载无损音质而不能试听无损音质, 使用此接口可使非VIP账号获取这些歌曲的无损音频 see: https://gitlab.com/Binaryify/neteasecloudmusicapi/-/blob/main/public/docs/home.md?ref_type=heads#%E8%8E%B7%E5%8F%96%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%AD%8C%E6%9B%B2%E4%B8%8B%E8%BD%BD-url

func (*Api) SongDownloadUrlV1

func (a *Api) SongDownloadUrlV1(ctx context.Context, req *SongDownloadUrlV1Req) (*SongDownloadUrlV1Resp, error)

SongDownloadUrlV1 获取客户端歌曲下载链接 url: needLogin: 未知 说明: 使用 `/api/song/enhance/player/url/v1` 接口获取的是歌曲试听 url, 非 VIP 账号最高只能获取 `极高` 音质,但免费类型的歌曲(`fee == 0`)使用本接口可最高获取`Hi-Res`音质的url。

func (*Api) SongDynamicCover added in v0.4.0

func (a *Api) SongDynamicCover(ctx context.Context, req *SongDynamicCoverReq) (*SongDynamicCoverResp, error)

func (*Api) SongLyricsMark added in v0.4.0

func (a *Api) SongLyricsMark(ctx context.Context, req *SongLyricsMarkReq) (*SongLyricsMarkResp, error)

func (*Api) SongMusicQuality

func (a *Api) SongMusicQuality(ctx context.Context, req *SongMusicQualityReq) (*SongMusicQualityResp, error)

SongMusicQuality 根据歌曲id获取支持哪些音质.其中types.Quality部位nil得则代表支持得品质 har: 35.har needLogin: 未知

func (*Api) SongPlayer

func (a *Api) SongPlayer(ctx context.Context, req *SongPlayerReq) (*SongPlayerResp, error)

SongPlayer 音乐播放详情 url: needLogin: 未知 提示: 获取的歌曲url有时效性,失效时间目前测试为20分钟,过期访问则会出现403错误

func (*Api) SongPlayerV1

func (a *Api) SongPlayerV1(ctx context.Context, req *SongPlayerV1Req) (*SongPlayerV1Resp, error)

SongPlayerV1 音乐播放详情 url: testdata/har/6.har needLogin: 未知 提示: 1.获取的歌曲url有时效性,失效时间目前测试为20分钟,过期访问则会出现403错误 2.杜比全景声音质需要设备支持,不同的设备可能会返回不同码率的url。cookie需要传入os=pc保证返回正常码率的url。 todo: 当试听时(测试得场景来自私人漫游)则参数传递为: {"ids":"["1955097630"]","level":"exhigh","encodeType":"aac","immerseType":"c51","trialMode":"36"}

func (*Api) TokenRefresh

func (a *Api) TokenRefresh(ctx context.Context, req *TokenRefreshReq) (*TokenRefreshResp, error)

TokenRefresh 登录token刷新 har:

func (*Api) TopList

func (a *Api) TopList(ctx context.Context, req *TopListReq) (*TopListResp, error)

TopList 排行榜列表,里面包含 飙升榜、热歌榜、新歌榜、原创榜.等等 url: https://music.163.com/#/discover/toplist needLogin: 未知

func (*Api) TopNewSongs

func (a *Api) TopNewSongs(ctx context.Context, req *TopNewSongsReq) (*TopNewSongsResp, error)

TopNewSongs 新歌榜(新歌速递) url: needLogin: 未知

func (*Api) VipCashierInfo added in v0.3.0

func (a *Api) VipCashierInfo(ctx context.Context, req *VipCashierInfoReq) (*VipCashierInfoResp, error)

VipCashierInfo todo:具体作用待分析 har: 48.har needLogin: 未知

func (*Api) VipClientInfo

func (a *Api) VipClientInfo(ctx context.Context, req *VipClientInfoReq) (*VipClientInfoResp, error)

VipClientInfo vip信息 har: needLogin: 未知

func (*Api) VipCommonList added in v0.3.0

func (a *Api) VipCommonList(ctx context.Context, req *VipCommonListReq) (*VipCommonListResp, error)

VipCommonList 首页布局列表例如:vip成长任务、热门活动、我的vip特权 har: 56.har needLogin: 未知

func (*Api) VipConfig added in v0.3.0

func (a *Api) VipConfig(ctx context.Context, req *VipConfigReq) (*VipConfigResp, error)

VipConfig 快速成长通道 har: 52.har needLogin: 未知

func (*Api) VipDetailList added in v0.3.0

func (a *Api) VipDetailList(ctx context.Context, req *VipDetailListReq) (*VipDetailListResp, error)

VipDetailList 等级特权详情列表 har: 51.har needLogin: 未知

func (*Api) VipDowngradeCompensate added in v0.3.0

func (a *Api) VipDowngradeCompensate(ctx context.Context, req *VipDowngradeCompensateReq) (*VipDowngradeCompensateResp, error)

VipDowngradeCompensate 降级补偿,貌似实在黑胶乐签领取失败场景触发 har: 53.har needLogin: 未知

func (*Api) VipFloatData added in v0.3.0

func (a *Api) VipFloatData(ctx context.Context, req *VipFloatDataReq) (*VipFloatDataResp, error)

VipFloatData todo: 相关用户信息数据待明确 har: 55.har needLogin: 未知

func (*Api) VipGrowPoint added in v0.3.0

func (a *Api) VipGrowPoint(ctx context.Context, req *VipGrowPointReq) (*VipGrowPointResp, error)

VipGrowPoint 获取当前账号 VIP 成长值信息 har: 46.har needLogin: 未知

func (*Api) VipInfo

func (a *Api) VipInfo(ctx context.Context, req *VipInfoReq) (*VipInfoResp, error)

VipInfo vip信息 har: needLogin: 未知

func (*Api) VipInterests added in v0.3.0

func (a *Api) VipInterests(ctx context.Context, req *VipInterestsReq) (*VipInterestsResp, error)

VipInterests 未知待分析 har: 54.har needLogin: 未知

func (*Api) VipLevelList added in v0.3.0

func (a *Api) VipLevelList(ctx context.Context, req *VipLevelListReq) (*VipLevelListResp, error)

VipLevelList 获取黑胶每升一级成长值 har: 49.har needLogin: 未知

func (*Api) VipMAXScore added in v0.3.0

func (a *Api) VipMAXScore(ctx context.Context, req *VipMAXScoreReq) (*VipMAXScoreResp, error)

VipMAXScore 本月可获取的最大成长值,有待确定 har: 45.har needLogin: 未知

func (*Api) VipNewAccountPage added in v0.3.0

func (a *Api) VipNewAccountPage(ctx context.Context, req *VipNewAccountPageReq) (*VipNewAccountPageResp, error)

VipNewAccountPage 会员中心(手机点击抽屉顶部所展示的信息) har: 57.har needLogin: 未知

func (*Api) VipNewList added in v0.3.0

func (a *Api) VipNewList(ctx context.Context, req *VipNewListReq) (*VipNewListResp, error)

VipNewList 尊享权益列表 har: 47.har needLogin: 未知

func (*Api) VipProgressList added in v0.3.0

func (a *Api) VipProgressList(ctx context.Context, req *VipProgressListReq) (*VipProgressListResp, error)

VipProgressList vip成长任务列表(日常任务) har: 43.har needLogin: 未知

func (*Api) VipRewardGet

func (a *Api) VipRewardGet(ctx context.Context, req *VipRewardGetReq) (*VipRewardGetResp, error)

VipRewardGet 领取vip成长值 url: needLogin: 未知

func (*Api) VipRewardGetAll

func (a *Api) VipRewardGetAll(ctx context.Context, req *VipRewardGetAllReq) (*VipRewardGetAllResp, error)

VipRewardGetAll 领取vip所有成长值 url: needLogin: 未知

func (*Api) VipSignInfo added in v0.3.0

func (a *Api) VipSignInfo(ctx context.Context, req *VipSignInfoReq) (*VipSignInfoResp, error)

VipSignInfo 签到信息 har: 44.har needLogin: 未知

func (*Api) VipTask

func (a *Api) VipTask(ctx context.Context, req *VipTaskReq) (*VipTaskResp, error)

VipTask vip任务列表 todo:该任务列表应该是旧接口貌似 url: needLogin: 未知

func (*Api) VipTaskSign added in v0.3.0

func (a *Api) VipTaskSign(ctx context.Context, req *VipTaskSignReq) (*VipTaskSignResp, error)

VipTaskSign 黑胶乐签 har: 58.har、59.har needLogin: 未知

func (*Api) VipTaskV2

func (a *Api) VipTaskV2(ctx context.Context, req *VipTaskV2Req) (*VipTaskV2Resp, error)

VipTaskV2 vip任务列表V2 貌似也是旧接口 url: needLogin: 未知

func (*Api) VipWelfareList added in v0.3.0

func (a *Api) VipWelfareList(ctx context.Context, req *VipWelfareListReq) (*VipWelfareListResp, error)

VipWelfareList 尊享福利列表 har: 50.har needLogin: 未知

func (*Api) WebLog

func (a *Api) WebLog(ctx context.Context, req *WebLogReq) (*WebLogResp, error)

WebLog 日志上报

func (*Api) YunBeiActivityReserve added in v0.3.0

func (a *Api) YunBeiActivityReserve(ctx context.Context, req *YunBeiActivityReserveReq) (*YunBeiActivityReserveResp, error)

YunBeiActivityReserve 预约领取云贝任务查询 har: 67.har needLogin: 未知

func (*Api) YunBeiBalance added in v0.1.5

func (a *Api) YunBeiBalance(ctx context.Context, req *YunBeiBalanceReq) (*YunBeiBalanceResp, error)

YunBeiBalance 云贝余额 har: 39.har

func (*Api) YunBeiCoinRecordInsert added in v0.3.0

func (a *Api) YunBeiCoinRecordInsert(ctx context.Context, req *YunBeiCoinRecordInsertReq) (*YunBeiCoinRecordInsertResp, error)

YunBeiCoinRecordInsert todo: 广告相关后续分析 har: 62.har needLogin: 未知

func (*Api) YunBeiDayVipInfo added in v0.3.0

func (a *Api) YunBeiDayVipInfo(ctx context.Context, req *YunBeiDayVipInfoReq) (*YunBeiDayVipInfoResp, error)

YunBeiDayVipInfo 「显示福利」黑胶vip天卡兑换信息查询 har: 76.har needLogin: 未知

func (*Api) YunBeiDragonJudgePopup added in v0.3.0

func (a *Api) YunBeiDragonJudgePopup(ctx context.Context, req *YunBeiDragonJudgePopupReq) (*YunBeiDragonJudgePopupResp, error)

YunBeiDragonJudgePopup todo: 未知 har: 69.har needLogin: 未知

func (*Api) YunBeiExpense

func (a *Api) YunBeiExpense(ctx context.Context, req *YunBeiExpenseReq) (*YunBeiExpenseResp, error)

YunBeiExpense 获取用户云贝支出记录列表 url: needLogin: 是 todo: 迁移到合适的包中

func (*Api) YunBeiExpire

func (a *Api) YunBeiExpire(ctx context.Context, req *YunBeiExpireReq) (*YunBeiExpireResp, error)

YunBeiExpire TODO: 应该是获取云贝过期数量 url: needLogin: 是

func (*Api) YunBeiMergeConvert added in v0.3.0

func (a *Api) YunBeiMergeConvert(ctx context.Context, req *YunBeiMergeConvertReq) (*YunBeiMergeConvertResp, error)

YunBeiMergeConvert todo: 未知 har: 68.har needLogin: 未知

func (*Api) YunBeiMultiTerminalWidgetCalender added in v0.3.0

func (a *Api) YunBeiMultiTerminalWidgetCalender(ctx context.Context, req *YunBeiMultiTerminalWidgetCalenderReq) (*YunBeiMultiTerminalWidgetCalenderResp, error)

YunBeiMultiTerminalWidgetCalender todo: 貌似好像是签到成功之后返回的日历信息,需要确认。另外需要迁移到合适的文件中。 har: 74.har needLogin: 未知

func (*Api) YunBeiNewJudge

func (a *Api) YunBeiNewJudge(ctx context.Context, req *YunBeiNewJudgeReq) (*YunBeiNewJudgeResp, error)

YunBeiNewJudge TODO: 未知 url: needLogin: 是

func (*Api) YunBeiPositionResource added in v0.3.0

func (a *Api) YunBeiPositionResource(ctx context.Context, req *YunBeiPositionResourceReq) (*YunBeiPositionResourceResp, error)

YunBeiPositionResource todo: 未知应该是展示资源样式使用。另外需要迁移到合适的文件中。 har: 73.har needLogin: 未知

func (*Api) YunBeiProductList added in v0.3.0

func (a *Api) YunBeiProductList(ctx context.Context, req *YunBeiProductListReq) (*YunBeiProductListResp, error)

YunBeiProductList 貌似是【兑好礼】中的推荐列表。待确认 har: 63.har needLogin: 未知

func (*Api) YunBeiReceipt

func (a *Api) YunBeiReceipt(ctx context.Context, req *YunBeiReceiptReq) (*YunBeiReceiptResp, error)

YunBeiReceipt 获取用户云贝收入记录列表 har: needLogin: 是 todo: 迁移到合适的包中

func (*Api) YunBeiRecommend added in v0.3.0

func (a *Api) YunBeiRecommend(ctx context.Context, req *YunBeiRecommendReq) (*YunBeiRecommendResp, error)

YunBeiRecommend 推荐列表。貌似废弃了 har: 61.har needLogin: 未知

func (*Api) YunBeiRecommendConfig

func (a *Api) YunBeiRecommendConfig(ctx context.Context, req *YunBeiRecommendConfigReq) (*YunBeiRecommendConfigResp, error)

YunBeiRecommendConfig 推荐配置 url: needLogin: 是

func (*Api) YunBeiSceneResource added in v0.3.0

func (a *Api) YunBeiSceneResource(ctx context.Context, req *YunBeiSceneResourceReq) (*YunBeiSceneResourceResp, error)

YunBeiSceneResource todo: 未知应该是展示资源样式使用,需要补充request参数。另外需要迁移到合适的文件中。 har: 72.har needLogin: 未知

func (*Api) YunBeiSignCalenderDay added in v0.3.0

func (a *Api) YunBeiSignCalenderDay(ctx context.Context, req *YunBeiSignCalenderDayReq) (*YunBeiSignCalenderDayResp, error)

YunBeiSignCalenderDay todo: 未知 har: 70.har needLogin: 未知

func (*Api) YunBeiSignHoliday added in v0.3.0

func (a *Api) YunBeiSignHoliday(ctx context.Context, req *YunBeiSignHolidayReq) (*YunBeiSignHolidayResp, error)

YunBeiSignHoliday 提示内容 har: 64.har needLogin: 未知

func (*Api) YunBeiSignIn

func (a *Api) YunBeiSignIn(ctx context.Context, req *YunBeiSignInReq) (*YunBeiSignInResp, error)

YunBeiSignIn 云贝中心每日签到.该接口签到成功后可在云贝中心看到奖励,而 SignIn() 签到成功后看不到奖励 url: needLogin: 是

func (*Api) YunBeiSignInCalendar

func (a *Api) YunBeiSignInCalendar(ctx context.Context, req *YunBeiSignInCalendarReq) (*YunBeiSignInCalendarResp, error)

YunBeiSignInCalendar 获取签到日历情况 url: 41.har needLogin: 是

func (*Api) YunBeiSignInJudge

func (a *Api) YunBeiSignInJudge(ctx context.Context, req *YunBeiSignInJudgeReq) (*YunBeiSignInJudgeResp, error)

YunBeiSignInJudge todo: 貌似判断当日是否签到状态待确认经测试发现未签到时也是返回true状态,还需要确定排查 url: needLogin: 是

func (*Api) YunBeiSignInProgress

func (a *Api) YunBeiSignInProgress(ctx context.Context, req *YunBeiSignInProgressReq) (*YunBeiSignInProgressResp, error)

YunBeiSignInProgress 获取签到阶段奖励列表 url: 40.har needLogin: 是

func (*Api) YunBeiSignInfo

func (a *Api) YunBeiSignInfo(ctx context.Context, req *YunBeiSignInfoReq) (*YunBeiSignInfoResp, error)

YunBeiSignInfo 获取用户每日签到任务信息? url: needLogin: 是

func (*Api) YunBeiSignLottery added in v0.2.2

func (a *Api) YunBeiSignLottery(ctx context.Context, req *YunBeiSignLotteryReq) (*YunBeiSignLotteryResp, error)

YunBeiSignLottery 每日连续签到云贝领取 har: 42.har

func (*Api) YunBeiSignRemind added in v0.3.0

func (a *Api) YunBeiSignRemind(ctx context.Context, req *YunBeiSignRemindReq) (*YunBeiSignRemindResp, error)

YunBeiSignRemind 是否开启签到提醒 har: 71.har needLogin: 未知

func (*Api) YunBeiSquareBlockCategory added in v0.3.0

func (a *Api) YunBeiSquareBlockCategory(ctx context.Context, req *YunBeiSquareBlockCategoryReq) (*YunBeiSquareBlockCategoryResp, error)

YunBeiSquareBlockCategory 兑换好礼集合列表 eg: 推荐、云村专区、个性定制、专享权益... har: 60.har needLogin: 未知

func (*Api) YunBeiTaskFinish

func (a *Api) YunBeiTaskFinish(ctx context.Context, req *YunBeiTaskFinishReq) (*YunBeiTaskFinishResp, error)

YunBeiTaskFinish 完成云贝任务奖励,一次只能领取一个,网易一键领取是调用了多次该接口实现。 har: 66.har needLogin: 是

func (*Api) YunBeiTaskList

func (a *Api) YunBeiTaskList(ctx context.Context, req *YunBeiTaskListReq) (*YunBeiTaskListResp, error)

YunBeiTaskList 获取用户云贝任务列表,常规任务 url: needLogin: 是

func (*Api) YunBeiTaskListV3

func (a *Api) YunBeiTaskListV3(ctx context.Context, req *YunBeiTaskListV3Req) (*YunBeiTaskListV3Resp, error)

YunBeiTaskListV3 获取用户云贝任务列表V3(任务中心) url: needLogin: 是

func (*Api) YunBeiTaskRecommendV2 added in v0.3.0

func (a *Api) YunBeiTaskRecommendV2(ctx context.Context, req *YunBeiTaskRecommendV2Req) (*YunBeiTaskRecommendV2Resp, error)

YunBeiTaskRecommendV2 「做任务得云贝」列表. 另外此接口同样的参数每次调用的结果也相同。 har: 75.har needLogin: 未知

func (*Api) YunBeiTaskTodo

func (a *Api) YunBeiTaskTodo(ctx context.Context, req *YunBeiTaskTodoReq) (*YunBeiTaskTodoResp, error)

YunBeiTaskTodo 返回未完成的任务列表。 url: needLogin: 是

func (*Api) YunBeiTodayRecommendCard added in v0.3.0

func (a *Api) YunBeiTodayRecommendCard(ctx context.Context, req *YunBeiTodayRecommendCardReq) (*YunBeiTodayRecommendCardResp, error)

YunBeiTodayRecommendCard 获取今日推荐背景相关属性 har: 65.har needLogin: 未知

func (*Api) YunBeiTodaySignInInfo

func (a *Api) YunBeiTodaySignInInfo(ctx context.Context, req *YunBeiTodaySignInInfoReq) (*YunBeiTodaySignInInfoResp, error)

YunBeiTodaySignInInfo 获取今天签到获取的云贝数量 url: needLogin: 是

func (*Api) YunBeiUserInfo

func (a *Api) YunBeiUserInfo(ctx context.Context, req *YunBeiUserInfoReq) (*YunBeiUserInfoResp, error)

YunBeiUserInfo 获取用户云贝用户信息 url: needLogin: 是

type ApiWebLogReq

type ApiWebLogReq struct {
	CsrfToken   string           `json:"csrf_token"`
	Action      string           `json:"action"`
	UseForRefer bool             `json:"useForRefer"`
	Json        ApiWebLogReqJson `json:"json"`
}

ApiWebLogReq . [{"action":"_pv","useForRefer":true,"json":{"_plist":[{"_oid":"page_web_register_login"},{"_oid":"page_h5_biz"}],"_elist":[],"_spm":"page_web_register_login|page_h5_biz","_scm":":::|::","_eventtime":1704464373629,"_sessid":"1704464373588#479","g_dprefer":"[F:1][1704464373588#479]","is_webview":1}}]

type ApiWebLogReqJson

type ApiWebLogReqJson struct {
	Plist []struct {
		Oid string `json:"_oid"`
	} `json:"_plist"`
	Elist     []interface{} `json:"_elist"`
	Spm       string        `json:"_spm"`
	Scm       string        `json:"_scm"`
	Duration  string        `json:"duration"`
	Eventtime int64         `json:"_eventtime"`
	Sessid    string        `json:"_sessid"`
	GDprefer  string        `json:"g_dprefer"`
	IsWebview int64         `json:"is_webview"`
}

type ApiWebLogResp

type ApiWebLogResp struct {
	types.RespCommon[any]
}

type AreaId

type AreaId int64
const (
	AreaIdAll           AreaId = 0  // 全部
	AreaIdChinese       AreaId = 7  // 华语
	AreaIdJapan         AreaId = 8  // 日本
	AreaIdKorea         AreaId = 16 // 韩国
	AreaIdEuropeAmerica AreaId = 96 // 欧美
)

type ArtistSongsReq

type ArtistSongsReq struct {
	Id           int64  `json:"id"`            // 歌手id
	PrivateCloud string `json:"private_cloud"` // boolean
	WorkType     int64  `json:"work_type"`     // 通常为1
	Order        string `json:"order"`         // hot,time
	Offset       int64  `json:"offset"`        // 第几页
	Limit        int64  `json:"limit"`         // 每页条数
}

type ArtistSongsResp

type ArtistSongsResp struct {
	types.RespCommon[any]
	More  bool                   `json:"more"`
	Total int64                  `json:"total"`
	Songs []ArtistSongsRespSongs `json:"songs"`
}

type ArtistSongsRespSongs

type ArtistSongsRespSongs struct {
	Id              int64          `json:"id"`
	A               interface{}    `json:"a"`
	Al              types.Album    `json:"al"`
	Alia            []string       `json:"alia"`
	Ar              []types.Artist `json:"ar"`
	Cd              string         `json:"cd"`
	Cf              string         `json:"cf"`
	Cp              int64          `json:"cp"`
	Crbt            interface{}    `json:"crbt"`
	DjId            int64          `json:"djId"`
	Dt              int64          `json:"dt"`
	Fee             int64          `json:"fee"`
	Ftype           int64          `json:"ftype"`
	H               *types.Quality `json:"h"`
	Hr              *types.Quality `json:"hr"`
	L               *types.Quality `json:"l"`
	M               *types.Quality `json:"m"`
	Sq              *types.Quality `json:"sq"`
	Mst             int64          `json:"mst"`
	Mv              int64          `json:"mv"`
	Name            string         `json:"name"`
	No              int64          `json:"no"`
	NoCopyrightRcmd interface{}    `json:"noCopyrightRcmd"`
	Pop             float64        `json:"pop"`
	Pst             int64          `json:"pst"`
	Rt              string         `json:"rt"`
	RtUrl           interface{}    `json:"rtUrl"`
	RtUrls          []interface{}  `json:"rtUrls"`
	Rtype           int64          `json:"rtype"`
	Rurl            interface{}    `json:"rurl"`
	SongJumpInfo    interface{}    `json:"songJumpInfo"`
	St              int64          `json:"st"`
	T               int64          `json:"t"`
	V               int64          `json:"v"`
	Tns             []string       `json:"tns,omitempty"`
	Privilege       struct {
		types.Privileges
		Code    int64       `json:"code"`
		Message interface{} `json:"message"`
	} `json:"privilege"`
}

type Batch

type Batch struct {
	API    map[string]interface{}
	Result string
	Header http.Header
	Error  error
}

Batch 批处理 APi

func NewBatch

func NewBatch(apis ...BatchAPI) *Batch

NewBatch 新建 Batch 对象 url: testdata/har/12.har

func (*Batch) Add

func (b *Batch) Add(apis ...BatchAPI) *Batch

Add 添加 API

func (*Batch) Do

func (b *Batch) Do(data RequestData) *Batch

Do 请求批处理 API

func (*Batch) Parse

func (b *Batch) Parse() (*Batch, map[string]string)

Parse 解析 Batch 的 Json 数据

type BatchAPI

type BatchAPI struct {
	Key  string
	Json string
}

BatchAPI 被批处理的 API

type CDNListReq

type CDNListReq struct{}

type CDNListResp

type CDNListResp struct {
	types.RespCommon[[][]string]
}

type CloudDelReq

type CloudDelReq struct {
	SongIds types.IntsString `json:"songIds"`
}

type CloudDelResp

type CloudDelResp struct {
	// Code 200:成功 404:删除失败(当重复删除同一个id时会出现)
	types.RespCommon[any]
	// FailIds 删除失败的歌曲id
	FailIds []int64 `json:"failIds"`
	// SuccIds 删除成功的歌曲id
	SuccIds []int64 `json:"succIds"`
}

type CloudDownloadReq

type CloudDownloadReq struct {
	SongId string `json:"songId"`
}

type CloudDownloadResp

type CloudDownloadResp struct {
	types.RespCommon[any]
	Name string `json:"name"`
	Url  string `json:"url"`
	// Size 单位字节(B)
	Size int64 `json:"size"`
}

type CloudInfoReq

type CloudInfoReq struct {
	types.ReqCommon
	// Md5 文件md5
	Md5 string `json:"md5,omitempty"`
	// SongId 歌曲id 从 CloudUploadCheck() api/cloud/upload/check接口返回值中获取
	SongId string `json:"songid,omitempty"`
	// Filename 文件名
	Filename string `json:"filename,omitempty"`
	// Song 歌曲名称
	Song string `json:"song,omitempty"`
	// Album 专辑名称
	Album string `json:"album,omitempty"`
	// Artist 艺术家
	Artist string `json:"artist,omitempty"`
	// Bitrate 比特率
	Bitrate    string `json:"bitrate,omitempty"`
	ResourceId int64  `json:"resourceId,omitempty"`
	// CoverId 封面id
	CoverId string `json:"coverid,omitempty"`
	// ObjectKey 在windows抓包发现需要上传此内容。更奇怪的是上传没有发现调用上传接口,
	// 而是有点像非秒传场景直接忽略了上传这个步骤,有一点可以确定的是,我上传的文件"检测文件接口"返回得是true。
	// 如果我按照windows上传方式传入此ObjectKey,此值时则会报以下错误:{"msg":"rep create failed","code":404}
	// 解决方案目前暂时不传值此值
	ObjectKey string `json:"objectKey,omitempty"`
}

type CloudInfoResp

type CloudInfoResp struct {
	// Code
	// 404: 错误未知,目前在上传文件时文件大于200MB时出现此错误,经后来测试多试了几次重传发现又好了貌似是临时性错误,待确认排查。
	// 410: 涉嫌违规,无法上传
	types.RespCommon[any]
	// Code           int64        `json:"code,omitempty"`
	SongId         string       `json:"songId,omitempty"`
	SongIdLong     int64        `json:"songIdLong"` // songId和songIdLong相等只不过类型不同
	WaitTime       int64        `json:"waitTime"`
	Exists         bool         `json:"exists"`
	NextUploadTime int64        `json:"nextUploadTime"`
	PrivateCloud   PrivateCloud `json:"privateCloud"`
}

type CloudListReq

type CloudListReq struct {
	types.ReqCommon
	Limit  int64 `json:"limit,omitempty"`
	Offset int64 `json:"offset,omitempty"`
}

type CloudListResp

type CloudListResp struct {
	types.RespCommon[[]CloudListRespData]
	HasMore     bool   // 用于分页
	UpgradeSign int64  // 目前未知
	MaxSize     string // 网盘总共空间
	Size        string // 当前已经使用得空间
	Count       int64  // 歌曲总数量
}

type CloudListRespData

type CloudListRespData struct {
	SimpleSong CloudListRespDataSimpleSong `json:"simpleSong"`
	SongId     int64                       `json:"songId"`   // 歌曲ID
	AddTime    int64                       `json:"addTime"`  // 上传到网盘时间
	Bitrate    int64                       `json:"bitrate"`  //
	SongName   string                      `json:"songName"` // 歌曲名称
	Album      string                      `json:"album"`    // 专辑名称
	Artist     string                      `json:"artist"`   // 歌手
	Cover      int64                       `json:"cover"`
	CoverId    string                      `json:"coverId"`
	LyricId    string                      `json:"lyricId"`
	Version    int64                       `json:"version"`
	FileSize   int64                       `json:"fileSize"` // 文件大小单位B
	FileName   string                      `json:"fileName"` // 音乐文件名称例如: 陈琳 - 十二种颜色.flac
}

type CloudListRespDataSimpleSong

type CloudListRespDataSimpleSong struct {
	Name                 string         `json:"name"`
	Id                   int64          `json:"id"`
	Pst                  int64          `json:"pst"`
	T                    int64          `json:"t"`
	Ar                   []types.Artist `json:"ar"`
	Alia                 []interface{}  `json:"alia"`
	Pop                  float64        `json:"pop"`
	St                   int64          `json:"st"`
	Rt                   string         `json:"rt"`
	Fee                  int64          `json:"fee"`
	V                    int64          `json:"v"`
	Crbt                 interface{}    `json:"crbt"`
	Cf                   string         `json:"cf"`
	Al                   types.Album    `json:"al"`
	Dt                   int64          `json:"dt"`
	H                    *types.Quality `json:"h"`
	M                    *types.Quality `json:"m"`
	L                    *types.Quality `json:"l"`
	A                    interface{}    `json:"a"`
	Cd                   string         `json:"cd"`
	No                   int64          `json:"no"`
	RtUrl                interface{}    `json:"rtUrl"`
	Ftype                int64          `json:"ftype"`
	RtUrls               []interface{}  `json:"rtUrls"`
	DjId                 int64          `json:"djId"`
	Copyright            int64          `json:"copyright"`
	SId                  int64          `json:"s_id"`
	Mark                 int64          `json:"mark"`
	OriginCoverType      int64          `json:"originCoverType"`
	OriginSongSimpleData interface{}    `json:"originSongSimpleData"`
	Single               int64          `json:"single"`
	NoCopyrightRcmd      struct {
		Type     int64       `json:"type"`
		TypeDesc string      `json:"typeDesc"`
		SongId   interface{} `json:"songId"`
	} `json:"noCopyrightRcmd"`
	Cp          int64            `json:"cp"`
	Mv          int64            `json:"mv"`
	Mst         int64            `json:"mst"`
	Rurl        interface{}      `json:"rurl"`
	Rtype       int64            `json:"rtype"`
	PublishTime int64            `json:"publishTime"`
	Privilege   types.Privileges `json:"privilege"`
}

type CloudLyricReq

type CloudLyricReq struct {
	UserId string `json:"userId,omitempty"`
	SongId string `json:"songId,omitempty"`
	Lv     string `json:"lv,omitempty"`
	Kv     string `json:"kv,omitempty"`
}

type CloudLyricResp

type CloudLyricResp struct {
	types.RespCommon[any]
	Lyc string `json:"lrc"`
	Krc string `json:"krc"`
}

type CloudMusicStatusReq

type CloudMusicStatusReq struct {
	SongIds types.IntsString `json:"songIds"`
}

type CloudMusicStatusResp

type CloudMusicStatusResp struct {
	types.RespCommon[any]
	// Key为歌曲的id
	Statuses map[string]CloudMusicStatusRespData `json:"statuses"`
}

type CloudMusicStatusRespData

type CloudMusicStatusRespData struct {
	// 0:成功 9:待转码貌似
	Status   int64 `json:"status"`
	WaitTime int64 `json:"waitTime"`
}

type CloudPublishReq

type CloudPublishReq struct {
	types.ReqCommon
	SongId string `json:"songid"`
}

type CloudPublishResp

type CloudPublishResp struct {
	// 200:成功 201:貌似重复上传
	Code         int64        `json:"code"`
	PrivateCloud PrivateCloud `json:"privateCloud"`
}

type CloudTokenAllocReq

type CloudTokenAllocReq struct {
	types.ReqCommon
	Bucket string `json:"bucket,omitempty"`
	// 文件扩展名 例如mp3、m4a、flac
	Ext      string `json:"ext,omitempty"`
	Filename string `json:"filename,omitempty"`
	Local    string `json:"local,omitempty"`
	// 3
	NosProduct string `json:"nos_product,omitempty"`
	// 文件类型 例如 audio
	Type string `json:"type,omitempty"`
	Md5  string `json:"md5,omitempty"`
}

type CloudTokenAllocResp

type CloudTokenAllocResp struct {
	types.RespCommon[any]
	CloudTokenAllocRespResult `json:"result,omitempty"`
}

type CloudTokenAllocRespResult

type CloudTokenAllocRespResult struct {
	Bucket     string `json:"bucket"` // 存储桶名称 如:ymusic
	Token      string `json:"token"`  // 上传使用得token
	OuterURL   string `json:"outerUrl"`
	DocID      string `json:"docId"`
	ObjectKey  string `json:"objectKey"`
	ResourceID int64  `json:"resourceId"`
}

CloudTokenAllocRespResult 数据示例 { "bucket": "jd-musicrep-privatecloud-audio-public", "token": "UPLOAD 037a197cb50b42468694de59c0bdd9b1:zWmW6BmWPo5mWEMdTCEjtu9SaSRpgYmSQpXtb20fVd0=:eyJSZWdpb24iOiJKRCIsIk9iamVjdCI6Im9iai93b0REbU1PQnc2UENsV3pDbk1LLS8zNjY1NjcyOTU5OC8xN2JjL2Y0MjQvYjMyNi84MDJiMmVmZTJiMGY1ZjU0MzAyNGFlYWFmNzQ3NGEwNi5tNGEiLCJFeHBpcmVzIjoxNzE4MzUyNjI4LCJCdWNrZXQiOiJqZC1tdXNpY3JlcC1wcml2YXRlY2xvdWQtYXVkaW8tcHVibGljIn0=", "outerUrl": "https://jd-musicrep-privatecloud-audio-public.nos-jd.163yun.com/obj%2FwoDDmMOBw6PClWzCnMK-%2F36656729598%2F17bc%2Ff424%2Fb326%2F802b2efe2b0f5f543024aeaaf7474a06.m4a?Signature=NuGYr715XbqmSdr7xWoVoYR0GiwDc6zJ0luYLY0WSaE%3D&Expires=1718350828&NOSAccessKeyId=037a197cb50b42468694de59c0bdd9b1", "docId": "-1", "objectKey": "obj/woDDmMOBw6PClWzCnMK-/36656729598/17bc/f424/b326/802b2efe2b0f5f543024aeaaf7474a06.m4a", "resourceId": 36656729598 }

type CloudUploadCheckReq

type CloudUploadCheckReq struct {
	types.ReqCommon
	// 音乐比特率 例如: 128000、192000、320000、999000
	Bitrate string `json:"bitrate,omitempty"`
	Ext     string `json:"ext,omitempty"`
	Length  string `json:"length,omitempty"`
	Md5     string `json:"md5,omitempty"`
	SongId  string `json:"songId,omitempty"`
	Version string `json:"version,omitempty"`
}

type CloudUploadCheckResp

type CloudUploadCheckResp struct {
	// code 501:貌似上传得文件过大
	types.RespCommon[any]
	SongId string `json:"songId,omitempty"`
	// NeedUpload 是否需要上传 true:需要上传说明网易云网盘没有此音乐文件
	NeedUpload bool `json:"needUpload"`
}

type CloudUploadCheckV2Req added in v0.1.0

type CloudUploadCheckV2Req struct {
	types.ReqCommon
	UploadType int64                        `json:"uploadType"` // 0
	Songs      []CloudUploadCheckV2ReqSongs `json:"songs"`
}

type CloudUploadCheckV2ReqSongs added in v0.1.0

type CloudUploadCheckV2ReqSongs struct {
	MD5      string `json:"md5"`
	FileSize int64  `json:"fileSize"`
	Bitrate  int64  `json:"bitrate"`
}

type CloudUploadCheckV2Resp added in v0.1.0

type CloudUploadCheckV2Resp struct {
	types.RespCommon[[]CloudUploadCheckV2RespData]
}

type CloudUploadCheckV2RespData added in v0.1.0

type CloudUploadCheckV2RespData struct {
	MD5    string `json:"md5"`
	SongId string `json:"songId"`
	Upload int64  `json:"upload"` // 0:说明不需要上传(待确定) 1:未知 2:需要上传
}

type CloudUploadLbsResp

type CloudUploadLbsResp struct {
	Lbs    string   `json:"lbs"`
	Upload []string `json:"upload"`
}

type CloudUploadNodeReq added in v0.1.0

type CloudUploadNodeReq struct {
	Version string `json:"version"`
}

type CloudUploadNodeResp added in v0.1.0

type CloudUploadNodeResp struct {
	Lbs    string   `json:"lbs"`    // http://45.127.129.16/lbs
	Upload []string `json:"upload"` // http://nosup-hz1.127.net
}

type CloudUploadReq

type CloudUploadReq struct {
	// types.ReqCommon
	Bucket      string          `json:"bucket"`
	ObjectKey   string          `json:"objectKey"`
	Token       string          `json:"token"`
	Filepath    string          `json:"filepath"`
	ProgressBar *pb.ProgressBar `json:"-"` // 仅用于上传显示进度条使用跟网易云api无关.通常设置成nil
}

type CloudUploadResp

type CloudUploadResp struct {
	// types.RespCommon[any]
	// ErrCode 为空则说明成功
	ErrCode   string `json:"errCode,omitempty"`
	ErrMsg    string `json:"errMsg,omitempty"`
	RequestId string `json:"requestId,omitempty"`
	// Offset 用于分片上传时使用
	Offset int64 `json:"offset,omitempty"`
	// Context 用于分片上传时使用,用于下一个请求携带
	Context        string `json:"context,omitempty"`
	CallbackRetMsg string `json:"callbackRetMsg,omitempty"`
	DownloadUrl    string `json:"downloadUrl,omitempty"` // 为啥没有?
}

type CommentInfoListReq added in v0.1.4

type CommentInfoListReq struct {
	types.ReqCommon
}

type CommentInfoListResp added in v0.1.4

type CommentInfoListResp struct {
	types.RespCommon[[]CommentInfoListRespData]
}

type CommentInfoListRespData added in v0.1.4

type CommentInfoListRespData struct {
	LatestLikedUsers  interface{} `json:"latestLikedUsers"`
	Liked             bool        `json:"liked"`
	Comments          interface{} `json:"comments"`
	ResourceType      int64       `json:"resourceType"`
	ResourceId        int64       `json:"resourceId"` // 应改是对应的歌曲id
	CommentUpgraded   bool        `json:"commentUpgraded"`
	MusicianSaidCount int64       `json:"musicianSaidCount"`
	CommentCountDesc  string      `json:"commentCountDesc"` // 评论数描述基本和commentCount一样
	LikedCount        int64       `json:"likedCount"`
	CommentCount      int64       `json:"commentCount"` // 评论数
	ShareCount        int64       `json:"shareCount"`
	ThreadId          string      `json:"threadId"` // 线程id,用于获取评论列表使用
}

type CommentsReq added in v0.1.4

type CommentsReq struct {
	types.ReqCommon
	ComposeConcert      string `json:"composeConcert"`      // eg: bool
	CommentId           string `json:"commentId"`           // eg: 0
	MarkReplied         bool   `json:"markReplied"`         // eg: bool
	Offset              string `json:"offset"`              // 第几页 eg: "0"
	Limit               string `json:"limit"`               // 每页数量 eg: "60"
	CompareUserLocation bool   `json:"compareUserLocation"` // eg: bool
	ForceFlatComment    bool   `json:"forceFlatComment"`    // eg: bool
	BeforeTime          string `json:"beforeTime"`          // eg: "0"
	ShowInner           bool   `json:"showInner"`           // eg: bool
	ThreadId            string `json:"threadId"`            // eg: R_SO_4_2128846655 see CommentInfoListRespData.ThreadId
}

type CommentsResp added in v0.1.4

type CommentsResp struct {
	IsMusician  bool          `json:"isMusician"`
	Cnum        int64         `json:"cnum"`
	UserId      int64         `json:"userId"`
	TopComments []interface{} `json:"topComments"`
	Code        int64         `json:"code"`
	Comments    []struct {
		User struct {
			LocationInfo interface{} `json:"locationInfo"`
			LiveInfo     interface{} `json:"liveInfo"`
			Anonym       int64       `json:"anonym"`
			Highlight    bool        `json:"highlight"`
			AvatarUrl    string      `json:"avatarUrl"`
			AvatarDetail *struct {
				UserType        int64  `json:"userType"`
				IdentityLevel   int64  `json:"identityLevel"`
				IdentityIconUrl string `json:"identityIconUrl"`
			} `json:"avatarDetail"`
			UserType     int64       `json:"userType"`
			Followed     bool        `json:"followed"`
			Mutual       bool        `json:"mutual"`
			RemarkName   interface{} `json:"remarkName"`
			SocialUserId interface{} `json:"socialUserId"`
			VipRights    *struct {
				Associator *struct {
					VipCode int64  `json:"vipCode"`
					Rights  bool   `json:"rights"`
					IconUrl string `json:"iconUrl"`
				} `json:"associator"`
				MusicPackage *struct {
					VipCode int64  `json:"vipCode"`
					Rights  bool   `json:"rights"`
					IconUrl string `json:"iconUrl"`
				} `json:"musicPackage"`
				Redplus *struct {
					VipCode int64  `json:"vipCode"`
					Rights  bool   `json:"rights"`
					IconUrl string `json:"iconUrl"`
				} `json:"redplus"`
				RedVipAnnualCount int64       `json:"redVipAnnualCount"`
				RedVipLevel       int64       `json:"redVipLevel"`
				RelationType      int64       `json:"relationType"`
				MemberLogo        interface{} `json:"memberLogo"`
			} `json:"vipRights"`
			Nickname       string      `json:"nickname"`
			AuthStatus     int64       `json:"authStatus"`
			ExpertTags     interface{} `json:"expertTags"`
			Experts        interface{} `json:"experts"`
			VipType        int64       `json:"vipType"`
			CommonIdentity interface{} `json:"commonIdentity"`
			UserId         int64       `json:"userId"`
			Target         interface{} `json:"target"`
		} `json:"user"`
		BeReplied []struct {
			User struct {
				LocationInfo interface{} `json:"locationInfo"`
				LiveInfo     interface{} `json:"liveInfo"`
				Anonym       int64       `json:"anonym"`
				Highlight    bool        `json:"highlight"`
				AvatarUrl    string      `json:"avatarUrl"`
				AvatarDetail *struct {
					UserType        int64  `json:"userType"`
					IdentityLevel   int64  `json:"identityLevel"`
					IdentityIconUrl string `json:"identityIconUrl"`
				} `json:"avatarDetail"`
				UserType       int64       `json:"userType"`
				Followed       bool        `json:"followed"`
				Mutual         bool        `json:"mutual"`
				RemarkName     interface{} `json:"remarkName"`
				SocialUserId   interface{} `json:"socialUserId"`
				VipRights      interface{} `json:"vipRights"`
				Nickname       string      `json:"nickname"`
				AuthStatus     int64       `json:"authStatus"`
				ExpertTags     interface{} `json:"expertTags"`
				Experts        interface{} `json:"experts"`
				VipType        int64       `json:"vipType"`
				CommonIdentity interface{} `json:"commonIdentity"`
				UserId         int64       `json:"userId"`
				Target         interface{} `json:"target"`
			} `json:"user"`
			BeRepliedCommentId int64       `json:"beRepliedCommentId"`
			Content            *string     `json:"content"`
			RichContent        *string     `json:"richContent"`
			Status             int64       `json:"status"`
			ExpressionUrl      interface{} `json:"expressionUrl"`
			IpLocation         struct {
				Ip       interface{} `json:"ip"`
				Location string      `json:"location"`
				UserId   int64       `json:"userId"`
			} `json:"ipLocation"`
		} `json:"beReplied"`
		PendantData *struct {
			Id       int64  `json:"id"`
			ImageUrl string `json:"imageUrl"`
		} `json:"pendantData"`
		ShowFloorComment    interface{} `json:"showFloorComment"`
		Status              int64       `json:"status"`
		CommentId           int64       `json:"commentId"`
		Content             string      `json:"content"` // 评论内容
		RichContent         *string     `json:"richContent"`
		ContentResource     interface{} `json:"contentResource"`
		Time                int64       `json:"time"`
		TimeStr             string      `json:"timeStr"`
		NeedDisplayTime     bool        `json:"needDisplayTime"`
		LikedCount          int64       `json:"likedCount"`
		ExpressionUrl       interface{} `json:"expressionUrl"`
		CommentLocationType int64       `json:"commentLocationType"`
		ParentCommentId     int64       `json:"parentCommentId"`
		Decoration          struct {
		} `json:"decoration"`
		RepliedMark   interface{} `json:"repliedMark"`
		Grade         interface{} `json:"grade"`
		UserBizLevels interface{} `json:"userBizLevels"`
		IpLocation    struct {
			Ip       interface{} `json:"ip"`
			Location string      `json:"location"`
			UserId   int64       `json:"userId"`
		} `json:"ipLocation"`
		Owner            bool        `json:"owner"`
		Medal            interface{} `json:"medal"`
		LikeAnimationMap struct {
		} `json:"likeAnimationMap"`
		Liked bool `json:"liked"`
	} `json:"comments"`
	Total int64 `json:"total"`
	More  bool  `json:"more"`
}

type DjRadioSub added in v0.1.4

type DjRadioSub struct {
	TargetUserId string `json:"targetUserId"` // 用户id
	Limit        string `json:"limit"`
}

type DjRadioSubResp added in v0.1.4

type DjRadioSubResp struct {
	Count    int64 `json:"count"` // 总条数
	DjRadios []struct {
		Dj struct {
			DefaultAvatar       bool        `json:"defaultAvatar"`
			Province            int64       `json:"province"`
			AuthStatus          int64       `json:"authStatus"`
			Followed            bool        `json:"followed"`
			AvatarUrl           string      `json:"avatarUrl"`
			AccountStatus       int64       `json:"accountStatus"`
			Gender              int64       `json:"gender"`
			City                int64       `json:"city"`
			Birthday            int64       `json:"birthday"`
			UserId              int64       `json:"userId"`
			UserType            int64       `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           int64       `json:"authority"`
			Mutual              bool        `json:"mutual"`
			ExpertTags          interface{} `json:"expertTags"`
			Experts             interface{} `json:"experts"`
			DjStatus            int64       `json:"djStatus"`
			VipType             int64       `json:"vipType"`
			RemarkName          interface{} `json:"remarkName"`
			AuthenticationTypes int64       `json:"authenticationTypes"`
			AvatarDetail        interface{} `json:"avatarDetail"`
			AvatarImgIdStr      string      `json:"avatarImgIdStr"`
			BackgroundImgIdStr  string      `json:"backgroundImgIdStr"`
			Anchor              bool        `json:"anchor"`
			AvatarImgIdStr1     string      `json:"avatarImgId_str"`
		} `json:"dj"`
		Category        string      `json:"category"`
		SecondCategory  string      `json:"secondCategory"`
		Buyed           bool        `json:"buyed"`
		Price           int64       `json:"price"`
		OriginalPrice   int64       `json:"originalPrice"`
		DiscountPrice   interface{} `json:"discountPrice"`
		PurchaseCount   int64       `json:"purchaseCount"`
		LastProgramName string      `json:"lastProgramName"`
		Videos          interface{} `json:"videos"`
		Finished        bool        `json:"finished"`
		UnderShelf      bool        `json:"underShelf"`
		LiveInfo        interface{} `json:"liveInfo"`
		PlayCount       int64       `json:"playCount"`
		Privacy         bool        `json:"privacy"`
		Icon            interface{} `json:"icon"`
		ManualTagsDTO   interface{} `json:"manualTagsDTO"`
		DescPicList     []struct {
			Type       int64       `json:"type"`
			Id         int64       `json:"id"`
			Content    string      `json:"content"`
			Height     *int64      `json:"height"`
			Width      *int64      `json:"width"`
			TimeStamp  interface{} `json:"timeStamp"`
			NestedData interface{} `json:"nestedData"`
		} `json:"descPicList"`
		ReplaceRadioId        int64         `json:"replaceRadioId"`
		ReplaceRadio          interface{}   `json:"replaceRadio"`
		PicUrl                string        `json:"picUrl"`
		ShortName             interface{}   `json:"shortName"`
		FeeScope              int64         `json:"feeScope"`
		LastProgramId         int64         `json:"lastProgramId"`
		IntervenePicUrl       string        `json:"intervenePicUrl"`
		LastProgramCreateTime int64         `json:"lastProgramCreateTime"`
		RadioFeeType          int64         `json:"radioFeeType"`
		PicId                 int64         `json:"picId"`
		CategoryId            int64         `json:"categoryId"`
		TaskId                int64         `json:"taskId"`
		ProgramCount          int64         `json:"programCount"`
		SubCount              int64         `json:"subCount"`
		ParticipateUidList    []interface{} `json:"participateUidList"`
		OperateUidList        []interface{} `json:"operateUidList"`
		IntervenePicId        int64         `json:"intervenePicId"`
		Dynamic               bool          `json:"dynamic"`
		Name                  string        `json:"name"`
		Id                    int64         `json:"id"`
		Desc                  string        `json:"desc"`
		CreateTime            int64         `json:"createTime"`
		Rcmdtext              *string       `json:"rcmdtext"`
		NewProgramCount       int64         `json:"newProgramCount"`
	} `json:"djRadios"`
	Time    int64 `json:"time"` // eg:1625317200000
	HasMore bool  `json:"hasMore"`
	Code    int64 `json:"code"` // 200: success
}

type EapiOption

type EapiOption struct {
	Json string
	Path string
	Url  string
}

EapiOption eapi 请求所需要的参数

type ExtraGrant added in v0.1.5

type ExtraGrant struct {
	Id      int64       `json:"id"`
	Name    string      `json:"name"` // eg: 连续签到抽奖机会
	IconUrl interface{} `json:"iconUrl"`
	Type    int64       `json:"type"`
	Note    interface{} `json:"note"`
}

type GetUserBindingsReq added in v0.1.4

type GetUserBindingsReq struct {
	UserId int64 `json:"userId"`
}

type GetUserBindingsResp added in v0.1.4

type GetUserBindingsResp struct {
	Code     int64 `json:"code"`
	Bindings []struct {
		TokenJsonStr string `json:"tokenJsonStr"`
		ExpiresIn    int64  `json:"expiresIn"`
		BindingTime  int64  `json:"bindingTime"`
		RefreshTime  int64  `json:"refreshTime"`
		Url          string `json:"url"`
		Expired      bool   `json:"expired"`
		UserId       int64  `json:"userId"`
		Id           int64  `json:"id"`
		Type         int64  `json:"type"` // 1:手机号 5:qq 其他暂时未知
	} `json:"bindings"`
}

type GetUserInfoDetailReq added in v0.1.4

type GetUserInfoDetailReq struct {
	types.ReqCommon
	UserId int64 `json:"userId"`
}

type GetUserInfoDetailResp added in v0.1.4

type GetUserInfoDetailResp struct {
	Code        int64 `json:"code"`  // 200:成功 404:未找到用户
	Level       int64 `json:"level"` // 账号等级
	ListenSongs int64 `json:"listenSongs"`
	// UserPoint 云贝信息
	UserPoint struct {
		UserId       int64 `json:"userId"`
		Balance      int64 `json:"balance"` // 云贝数量
		UpdateTime   int64 `json:"updateTime"`
		Version      int64 `json:"version"` // 版本(貌似表示此工能版本)
		Status       int64 `json:"status"`
		BlockBalance int64 `json:"blockBalance"` // 冻结数量
	} `json:"userPoint"`
	MobileSign bool `json:"mobileSign"`
	PcSign     bool `json:"pcSign"`
	Profile    struct {
		PrivacyItemUnlimit struct {
			Area       bool `json:"area"`
			College    bool `json:"college"`
			Gender     bool `json:"gender"`
			Age        bool `json:"age"`
			VillageAge bool `json:"villageAge"`
		} `json:"privacyItemUnlimit"`
		AvatarDetail              interface{}   `json:"avatarDetail"`
		CreateTime                int64         `json:"createTime"`
		AvatarImgId               int64         `json:"avatarImgId"`
		Birthday                  int64         `json:"birthday"` // eg: 851875200000
		Gender                    int64         `json:"gender"`   // 性别 0:未知
		Nickname                  string        `json:"nickname"`
		VipType                   int64         `json:"vipType"` // 0:无vip
		Mutual                    bool          `json:"mutual"`
		RemarkName                interface{}   `json:"remarkName"`
		AccountStatus             int64         `json:"accountStatus"`
		AuthStatus                int64         `json:"authStatus"`
		AvatarUrl                 string        `json:"avatarUrl"`
		BackgroundImgId           int64         `json:"backgroundImgId"`
		BackgroundUrl             string        `json:"backgroundUrl"`
		City                      int64         `json:"city"`
		DetailDescription         string        `json:"detailDescription"`
		DjStatus                  int64         `json:"djStatus"`
		ExpertTags                interface{}   `json:"expertTags"`
		Followed                  bool          `json:"followed"`
		Province                  int64         `json:"province"`
		UserType                  int64         `json:"userType"`
		DefaultAvatar             bool          `json:"defaultAvatar"`
		Experts                   struct{}      `json:"experts"`
		AvatarImgIdStr            string        `json:"avatarImgIdStr"`
		BackgroundImgIdStr        string        `json:"backgroundImgIdStr"`
		Description               string        `json:"description"`
		UserId                    int64         `json:"userId"`
		Signature                 string        `json:"signature"` // 简介
		Y                         int64         `json:"y"`
		Authority                 int64         `json:"authority"`
		Followeds                 int64         `json:"followeds"` // 粉丝数量 和下面的 NewFollows 粉丝数量不值有何区别
		Follows                   int64         `json:"follows"`
		Blacklist                 bool          `json:"blacklist"`
		EventCount                int64         `json:"eventCount"`
		AllSubscribedCount        int64         `json:"allSubscribedCount"`
		PlaylistBeSubscribedCount int64         `json:"playlistBeSubscribedCount"`
		AvatarImgIdStr1           string        `json:"avatarImgId_str"`
		FollowTime                interface{}   `json:"followTime"`
		FollowMe                  bool          `json:"followMe"`
		ArtistIdentity            []interface{} `json:"artistIdentity"`
		CCount                    int64         `json:"cCount"`
		InBlacklist               bool          `json:"inBlacklist"`
		SDJPCount                 int64         `json:"sDJPCount"`
		PlaylistCount             int64         `json:"playlistCount"` // 创建的歌单数量
		SCount                    int64         `json:"sCount"`        // 收藏的歌单数量
		NewFollows                int64         `json:"newFollows"`    // 粉丝数量 和上面的Followeds不知有何区别
	} `json:"profile"`
	PeopleCanSeeMyPlayRecord bool `json:"peopleCanSeeMyPlayRecord"`
	// Bindings 绑定账号信息,比如是否有手机号绑定 see: Api.GetUserBindings()
	Bindings []struct {
		ExpiresIn    int64       `json:"expiresIn"`
		RefreshTime  int64       `json:"refreshTime"`
		BindingTime  int64       `json:"bindingTime"`
		TokenJsonStr interface{} `json:"tokenJsonStr"`
		Url          string      `json:"url"`
		Expired      bool        `json:"expired"`
		UserId       int64       `json:"userId"`
		Id           int64       `json:"id"`
		Type         int64       `json:"type"` // 1:手机号 5:qq 其他暂时未知
	} `json:"bindings"`
	AdValid    bool  `json:"adValid"`
	NewUser    bool  `json:"newUser"`
	RecallUser bool  `json:"recallUser"`
	CreateTime int64 `json:"createTime"`
	CreateDays int64 `json:"createDays"` // 创建账号天数
	// 村民证
	ProfileVillageInfo struct {
		Title     string `json:"title"`
		ImageUrl  string `json:"imageUrl"`
		TargetUrl string `json:"targetUrl"`
	} `json:"profileVillageInfo"`
}

type GetUserInfoReq

type GetUserInfoReq struct {
	types.ReqCommon
}

type GetUserInfoResp

type GetUserInfoResp struct {
	types.RespCommon[any]
	Account *GetUserInfoRespAccount `json:"account"`
	Profile *GetUserInfoRespProfile `json:"profile"`
}

type GetUserInfoRespAccount

type GetUserInfoRespAccount struct {
	Id                 int64  `json:"id"`
	UserName           string `json:"userName"`
	Type               int64  `json:"type"`
	Status             int64  `json:"status"`
	WhitelistAuthority int64  `json:"whitelistAuthority"`
	CreateTime         int64  `json:"createTime"`
	TokenVersion       int64  `json:"tokenVersion"`
	Ban                int64  `json:"ban"`
	BaoyueVersion      int64  `json:"baoyueVersion"`
	DonateVersion      int64  `json:"donateVersion"`
	VipType            int64  `json:"vipType"`
	AnonimousUser      bool   `json:"anonimousUser"`
	PaidFee            bool   `json:"paidFee"`
}

type GetUserInfoRespProfile

type GetUserInfoRespProfile struct {
	UserId              int64       `json:"userId"`
	UserType            int64       `json:"userType"`
	Nickname            string      `json:"nickname"`
	AvatarImgId         int64       `json:"avatarImgId"`
	AvatarUrl           string      `json:"avatarUrl"`
	BackgroundImgId     int64       `json:"backgroundImgId"`
	BackgroundUrl       string      `json:"backgroundUrl"`
	Signature           string      `json:"signature"`
	CreateTime          int64       `json:"createTime"`
	UserName            string      `json:"userName"`
	AccountType         int64       `json:"accountType"`
	ShortUserName       string      `json:"shortUserName"`
	Birthday            int64       `json:"birthday"`
	Authority           int64       `json:"authority"`
	Gender              int64       `json:"gender"`
	AccountStatus       int64       `json:"accountStatus"`
	Province            int64       `json:"province"`
	City                int64       `json:"city"`
	AuthStatus          int64       `json:"authStatus"`
	Description         interface{} `json:"description"`
	DetailDescription   interface{} `json:"detailDescription"`
	DefaultAvatar       bool        `json:"defaultAvatar"`
	ExpertTags          interface{} `json:"expertTags"`
	Experts             interface{} `json:"experts"`
	DjStatus            int64       `json:"djStatus"`
	LocationStatus      int64       `json:"locationStatus"`
	VipType             int64       `json:"vipType"`
	Followed            bool        `json:"followed"`
	Mutual              bool        `json:"mutual"`
	Authenticated       bool        `json:"authenticated"`
	LastLoginTime       int64       `json:"lastLoginTime"`
	LastLoginIP         string      `json:"lastLoginIP"`
	RemarkName          interface{} `json:"remarkName"`
	ViptypeVersion      int64       `json:"viptypeVersion"`
	AuthenticationTypes int64       `json:"authenticationTypes"`
	AvatarDetail        interface{} `json:"avatarDetail"`
	Anchor              bool        `json:"anchor"`
}

type Headers

type Headers []struct {
	Name  string
	Value string
}

Headers 自定义 Headers 数据类型 (仅对于非 eapi 有效)

type LayoutReq

type LayoutReq struct {
	CsrfToken string `json:"csrf_token"`
}

LayoutReq .

type LayoutResp

type LayoutResp struct {
	types.RespCommon[any]
}

type LoginCellphoneReq added in v0.2.0

type LoginCellphoneReq struct {
	Phone       string `json:"phone"`
	Countrycode int64  `json:"countrycode"`
	Remember    bool   `json:"remember"`
	Password    string `json:"password"`
	Captcha     string `json:"captcha"`
}

type LoginCellphoneResp added in v0.2.0

type LoginCellphoneResp struct {
	types.RespCommon[any]
	LoginType int64                        `json:"loginType"`
	Token     string                       `json:"token"` // MUSIC_U
	Account   LoginCellphoneRespAccount    `json:"account"`
	Profile   LoginCellphoneRespProfile    `json:"profile"`
	Bindings  []LoginCellphoneRespBindings `json:"bindings"`
}

type LoginCellphoneRespAccount added in v0.2.0

type LoginCellphoneRespAccount struct {
	Id                 int64  `json:"id"`
	UserName           string `json:"userName"`
	Type               int64  `json:"type"`
	Status             int64  `json:"status"`
	WhitelistAuthority int64  `json:"whitelistAuthority"`
	CreateTime         int64  `json:"createTime"`
	Salt               string `json:"salt"`
	TokenVersion       int64  `json:"tokenVersion"`
	Ban                int64  `json:"ban"`
	BaoyueVersion      int64  `json:"baoyueVersion"`
	DonateVersion      int64  `json:"donateVersion"`
	VipType            int64  `json:"vipType"`
	ViptypeVersion     int64  `json:"viptypeVersion"`
	AnonimousUser      bool   `json:"anonimousUser"`
	Uninitialized      bool   `json:"uninitialized"`
}

type LoginCellphoneRespBindings added in v0.2.0

type LoginCellphoneRespBindings struct {
	BindingTime  int64  `json:"bindingTime"`
	RefreshTime  int64  `json:"refreshTime"`
	TokenJsonStr string `json:"tokenJsonStr"` // type:1 {\"countrycode\":\"\",\"cellphone\":\"18888888888\",\"hasPassword\":true} type:5 "{\"access_token\":\"xxx\",\"refresh_token\":\"xxxx\",\"avatarUrl\":\"http://xxxx\",\"openid\":\"xxx\",\"nickname\":\"流浪\",\"expires_in\":7776000}",
	ExpiresIn    int64  `json:"expiresIn"`
	Url          string `json:"url"`
	Expired      bool   `json:"expired"`
	UserId       int64  `json:"userId"`
	Id           int64  `json:"id"`
	Type         int64  `json:"type"` // 1:设置登录密码 5:qq
}

type LoginCellphoneRespProfile added in v0.2.0

type LoginCellphoneRespProfile struct {
	AvatarUrl                 string      `json:"avatarUrl"`
	VipType                   int64       `json:"vipType"`
	AuthStatus                int64       `json:"authStatus"`
	DjStatus                  int64       `json:"djStatus"`
	DetailDescription         string      `json:"detailDescription"`
	Experts                   struct{}    `json:"experts"`
	ExpertTags                interface{} `json:"expertTags"`
	AccountStatus             int64       `json:"accountStatus"`
	Nickname                  string      `json:"nickname"`
	Birthday                  int64       `json:"birthday"`
	Gender                    int64       `json:"gender"`
	Province                  int64       `json:"province"`
	City                      int64       `json:"city"`
	AvatarImgId               int64       `json:"avatarImgId"`
	BackgroundImgId           int64       `json:"backgroundImgId"`
	UserType                  int64       `json:"userType"`
	DefaultAvatar             bool        `json:"defaultAvatar"`
	Mutual                    bool        `json:"mutual"`
	RemarkName                interface{} `json:"remarkName"`
	AvatarImgIdStr            string      `json:"avatarImgIdStr"`
	BackgroundImgIdStr        string      `json:"backgroundImgIdStr"`
	Followed                  bool        `json:"followed"`
	BackgroundUrl             string      `json:"backgroundUrl"`
	Description               string      `json:"description"`
	UserId                    int64       `json:"userId"`
	Signature                 string      `json:"signature"`
	Authority                 int64       `json:"authority"`
	AvatarImgIdStr1           string      `json:"avatarImgId_str"`
	Followeds                 int64       `json:"followeds"`
	Follows                   int64       `json:"follows"`
	EventCount                int64       `json:"eventCount"`
	AvatarDetail              interface{} `json:"avatarDetail"`
	PlaylistCount             int64       `json:"playlistCount"`
	PlaylistBeSubscribedCount int64       `json:"playlistBeSubscribedCount"`
}

type Lyric

type Lyric struct {
	Version int64  `json:"version"`
	Lyric   string `json:"lyric"`
}

type LyricReq

type LyricReq struct {
	Id     int64 `json:"id"`
	TV     int64 `json:"tv"`      // 翻译版本
	LV     int64 `json:"lv"`      // 歌词版本.
	RV     int64 `json:"rv"`      // 音译版本
	KV     int64 `json:"kv"`      // ?
	NMCLFL int64 `json:"_nmclfl"` // ?
}

type LyricResp

type LyricResp struct {
	types.RespCommon[any]
	Sgc       bool      `json:"sgc"`
	Sfy       bool      `json:"sfy"`
	Qfy       bool      `json:"qfy"`
	TransUser TransUser `json:"transUser,omitempty"` // 翻译贡献者
	LyricUser TransUser `json:"lyricUser,omitempty"` // 歌词贡献者
	Lrc       Lyric     `json:"lrc"`                 // 歌词
	KLyric    Lyric     `json:"klyric"`              // ?
	TLyric    Lyric     `json:"tlyric"`              // 翻译歌词版本
	RomaLrc   Lyric     `json:"romalrc"`             // 音译歌词 例如: 今天我寒夜里看雪飘过 -> gam tin o hon yei lei hon sv piu guo
}

type LyricV1Req

type LyricV1Req struct {
	Id  int64 `json:"id"`
	CP  bool  `json:"cp"`  // ?
	TV  int64 `json:"tv"`  // 翻译版本
	LV  int64 `json:"lv"`  // 歌词版本.
	RV  int64 `json:"rv"`  // 音译版本
	KV  int64 `json:"kv"`  // ?
	YV  int64 `json:"yv"`  // ?
	YTK int64 `json:"ytk"` //
	YRV int64 `json:"yrv"` //
}

type LyricV1Resp

type LyricV1Resp struct {
	types.RespCommon[any]
	Sgc       bool        `json:"sgc"`
	Sfy       bool        `json:"sfy"`
	Qfy       bool        `json:"qfy"`
	NeedDesc  bool        `json:"needDesc"`
	PureMusic bool        `json:"pureMusic"`
	BriefDesc interface{} `json:"briefDesc,omitempty"`
	TransUser TransUser   `json:"transUser,omitempty"` // 翻译贡献者
	LyricUser TransUser   `json:"lyricUser,omitempty"` // 歌词贡献者
	Lrc       Lyric       `json:"lrc"`                 // 歌词
	KLyric    Lyric       `json:"klyric"`              //
	TLyric    Lyric       `json:"tlyric"`              // 翻译版本
	RomaLrc   Lyric       `json:"romalrc"`             // 音译歌词
	Yrc       Lyric       `json:"yrc,omitempty"`       // 逐字歌词
	YRomaLrc  Lyric       `json:"yromalrc,omitempty"`  //
}

type MusicQuality

type MusicQuality struct {
	Bitrate     int64       `json:"bitrate"`
	DfsId       int         `json:"dfsId"`
	Extension   string      `json:"extension"`
	Id          int64       `json:"id"`
	Name        interface{} `json:"name"`
	PlayTime    int         `json:"playTime"`
	Size        int         `json:"size"`
	Sr          int         `json:"sr"`
	VolumeDelta float64     `json:"volumeDelta"`
}

MusicQuality 和 type.Quality 类似

type PCDailyRecommendBlockReq added in v0.1.4

type PCDailyRecommendBlockReq struct {
}

type PCDailyRecommendBlockResp added in v0.1.4

type PCDailyRecommendBlockResp struct {
	types.RespCommon[PCDailyRecommendBlockRespData]
	// 应改是页面配置
	Trp struct {
		Rules []string `json:"rules"` // eg: COMMON_INTERVENE_POSITION::WEEKLY_NEW_HOT_TREND_OP_CHANNEL_13::linkPlatform$cc$WEEKLY_NEW_HOT_TREND_OP_CHANNEL$bpo$default$bc$traffic$rt$playlist$pc$COMMON_INTERVENE_POSITION$fgid$495003$pgid$0$pid$1938255$rid$5395389058$cid$1897560
	} `json:"trp"`
}

type PCDailyRecommendBlockRespData added in v0.1.4

type PCDailyRecommendBlockRespData struct {
	BlockTitle     string      `json:"blockTitle"`
	TitleAction    interface{} `json:"titleAction"`
	BlockLabel     string      `json:"blockLabel"`
	BlockIcon      interface{} `json:"blockIcon"`
	IconAction     interface{} `json:"iconAction"`
	IconResourceId interface{} `json:"iconResourceId"`
	HasMore        bool        `json:"hasMore"`
	Items          []struct {
		Title            string      `json:"title"`
		SubTitle         interface{} `json:"subTitle"`
		SimplifiedTitle  string      `json:"simplifiedTitle"`
		Description      *string     `json:"description"`
		CoverText        string      `json:"coverText"`
		Tags             interface{} `json:"tags"`
		CoverUrl         string      `json:"coverUrl"`
		IconUrl          interface{} `json:"iconUrl"`
		CoverUrlType     interface{} `json:"coverUrlType"`
		ActionText       interface{} `json:"actionText"`
		TargetUrl        string      `json:"targetUrl"`
		ResourceId       string      `json:"resourceId"`
		RelateResourceId interface{} `json:"relateResourceId"`
		ResourceType     string      `json:"resourceType"`
		LunaItemType     interface{} `json:"lunaItemType"`
		SubResourceType  *string     `json:"subResourceType"`
		ModuleType       string      `json:"moduleType"`
		PlayCount        interface{} `json:"playCount"`
		PlayCountStr     interface{} `json:"playCountStr"`
		ResourceExtInfo  *struct {
			Creators interface{} `json:"creators"`
			Artists  []struct {
				NickName *string `json:"nickName"`
				ImgUrl   string  `json:"imgUrl"`
				Id       int64   `json:"id"`
				Name     string  `json:"name"`
			} `json:"artists"`
			ExtInfo   interface{} `json:"extInfo"`
			SubIndex  interface{} `json:"subIndex"`
			CoverText interface{} `json:"coverText"`
		} `json:"resourceExtInfo"`
		PlayBtnData *struct {
			PauseType      string `json:"pauseType"`
			PlayType       string `json:"playType"`
			ResourceType   string `json:"resourceType"`
			PlayActionType string `json:"playActionType"`
			ResourceId     string `json:"resourceId"`
			PlayOrpheus    string `json:"playOrpheus"`
		} `json:"playBtnData"`
		SongIds []int64 `json:"songIds"`
		ExtData struct {
			DayOfMonth string      `json:"dayOfMonth,omitempty"`
			AlgTitle   interface{} `json:"alg_title"`
			RcmdData   []struct {
				ItemId            string      `json:"itemId"`
				ItemType          string      `json:"itemType"`
				CoverId           interface{} `json:"coverId"`
				CoverType         interface{} `json:"coverType"`
				Alg               string      `json:"alg"`
				Reason            interface{} `json:"reason"`
				ReasonId          interface{} `json:"reasonId"`
				ReasonClick       bool        `json:"reasonClick"`
				ReasonType        int64       `json:"reasonType"`
				CoverResourceType interface{} `json:"coverResourceType"`
				ReasonTag         interface{} `json:"reasonTag"`
				Src               interface{} `json:"src"`
				Tags              []string    `json:"tags"`
				LogInfo           string      `json:"logInfo"`
				AiTitle           string      `json:"aiTitle"`
				WaterMark         string      `json:"waterMark"`
				PlaylistId        interface{} `json:"playlistId"`
				PlaylistType      interface{} `json:"playlistType"`
				MusDTO            interface{} `json:"musDTO"`
				ArtistId          interface{} `json:"artistId"`
				StrategyTypes     interface{} `json:"strategyTypes"`
				Score             interface{} `json:"score"`
				ExtMap            struct {
				} `json:"extMap"`
			} `json:"rcmdData,omitempty"`
			TagId      int64  `json:"tagId,omitempty"`
			TagName    string `json:"tagName,omitempty"`
			CategoryId int    `json:"categoryId,omitempty"`
		} `json:"extData"`
		Alg          string      `json:"alg"`
		CoverId      *string     `json:"coverId"`
		CoverType    *string     `json:"coverType"`
		CoverAlg     *string     `json:"coverAlg"`
		LogInfo      *string     `json:"logInfo"`
		RadioAlg     interface{} `json:"radioAlg"`
		TagText      *string     `json:"tagText"`
		PlaylistType interface{} `json:"playlistType"`
		Demote       bool        `json:"demote"`
		Reason       interface{} `json:"reason"`
		ReasonId     interface{} `json:"reasonId"`
		PicId        *int64      `json:"picId"`
		PositionCode string      `json:"positionCode"`
		ButtonDTO    interface{} `json:"buttonDTO"`
	} `json:"items"`
	SongBlockContent interface{} `json:"songBlockContent"`
	Alg              string      `json:"alg"`
	ExtInfo          struct {
		AbTestGroupMap    interface{} `json:"abTestGroupMap"`
		PcRcmdDemoteItems []struct {
			Title            string      `json:"title"`
			SubTitle         interface{} `json:"subTitle"`
			SimplifiedTitle  interface{} `json:"simplifiedTitle"`
			Description      interface{} `json:"description"`
			CoverText        string      `json:"coverText"`
			Tags             interface{} `json:"tags"`
			CoverUrl         string      `json:"coverUrl"`
			IconUrl          interface{} `json:"iconUrl"`
			CoverUrlType     interface{} `json:"coverUrlType"`
			ActionText       interface{} `json:"actionText"`
			TargetUrl        string      `json:"targetUrl"`
			ResourceId       string      `json:"resourceId"`
			RelateResourceId interface{} `json:"relateResourceId"`
			ResourceType     string      `json:"resourceType"`
			LunaItemType     interface{} `json:"lunaItemType"`
			SubResourceType  string      `json:"subResourceType"`
			ModuleType       interface{} `json:"moduleType"`
			PlayCount        interface{} `json:"playCount"`
			PlayCountStr     interface{} `json:"playCountStr"`
			ResourceExtInfo  interface{} `json:"resourceExtInfo"`
			PlayBtnData      struct {
				PauseType      string `json:"pauseType"`
				PlayType       string `json:"playType"`
				ResourceType   string `json:"resourceType"`
				PlayActionType string `json:"playActionType"`
				ResourceId     string `json:"resourceId"`
				PlayOrpheus    string `json:"playOrpheus"`
			} `json:"playBtnData"`
			SongIds interface{} `json:"songIds"`
			ExtData struct {
				TagId      int `json:"tagId,omitempty"`
				CategoryId int `json:"categoryId,omitempty"`
			} `json:"extData"`
			Alg          string      `json:"alg"`
			CoverId      interface{} `json:"coverId"`
			CoverType    interface{} `json:"coverType"`
			CoverAlg     interface{} `json:"coverAlg"`
			LogInfo      interface{} `json:"logInfo"`
			RadioAlg     interface{} `json:"radioAlg"`
			TagText      interface{} `json:"tagText"`
			PlaylistType interface{} `json:"playlistType"`
			Demote       bool        `json:"demote"`
			Reason       interface{} `json:"reason"`
			ReasonId     interface{} `json:"reasonId"`
			PicId        interface{} `json:"picId"`
			PositionCode interface{} `json:"positionCode"`
			ButtonDTO    interface{} `json:"buttonDTO"`
		} `json:"pcRcmdDemoteItems"`
		SingleSongCtrp interface{} `json:"singleSongCtrp"`
	} `json:"extInfo"`
	Button         interface{} `json:"button"`
	TrialSceneMode interface{} `json:"trialSceneMode"`
	IconUrl        interface{} `json:"iconUrl"`
}

type PCRecentListenListReq added in v0.1.5

type PCRecentListenListReq struct {
	types.ReqCommon
}

type PCRecentListenListResp added in v0.1.5

type PCRecentListenListResp struct {
	types.RespCommon[PCRecentListenListRespData]
}

type PCRecentListenListRespData added in v0.1.5

type PCRecentListenListRespData struct {
	Title     string `json:"title"` // eg: 最近常听
	Resources []struct {
		ResourceId       int64       `json:"resourceId"` // 资源id,可以是歌单、或者其它类型,根据ResourceType来决定
		ResourceCode     interface{} `json:"resourceCode"`
		ResourceType     string      `json:"resourceType"` // list:歌单 userfm:私人漫游
		SubResourceId    string      `json:"subResourceId"`
		Title            string      `json:"title"` // eg:摇滚、私人漫游、等等
		Tag              string      `json:"tag"`   // eg:歌单、漫游、等等
		CoverUrlList     []string    `json:"coverUrlList"`
		LandingUrl       string      `json:"landingUrl"`
		Update           bool        `json:"update"`
		PlayOrUpdateTime int64       `json:"playOrUpdateTime"`
		SimilarFmType    interface{} `json:"similarFmType"`
		DateNum          interface{} `json:"dateNum"`
		Star             bool        `json:"star"`
		CoverCenter      bool        `json:"coverCenter"`
		CoverExt         *struct {
			CoverId   string      `json:"coverId"`
			CoverType string      `json:"coverType"`
			CoverAlg  interface{} `json:"coverAlg"`
		} `json:"coverExt"`
		SongIdList interface{} `json:"songIdList"`
		PlayIndex  interface{} `json:"playIndex"`
	} `json:"resources"`
}

type PartnerContentAntispamReq added in v0.1.0

type PartnerContentAntispamReq struct {
	types.ReqCommon
	Type    string `json:"type"`    // 类型 comment:评论
	Content string `json:"content"` // 内容
	TaskId  string `json:"taskId"`
	WorkId  string `json:"workId"`
}

PartnerContentAntispamReq eapi请求示例参数 {"type":"comment","content":"过去是一段时光的记忆,回不去忘不了","taskId":"185640294","workId":"1561351","header":"{}","e_r":true}

type PartnerContentAntispamResp added in v0.1.0

type PartnerContentAntispamResp struct {
	types.RespCommon[any]
}

PartnerContentAntispamResp 成功响应: {"code":200,"data":{},"message":""}

type PartnerEvaluateReq

type PartnerEvaluateReq struct {
	types.ReqCommon
	TaskId        string      `json:"taskId"`        // 任务id 参数值对应https://interface.music.163.com/weapi/music/partner/daily/task/get 接口
	WorkId        string      `json:"workId"`        // 哪首歌曲id 参数值对应https://interface.music.163.com/weapi/music/partner/daily/task/get 接口
	Score         string      `json:"score"`         // 分值1~5
	Tags          PartnerTags `json:"tags"`          // 音乐标签,多个以逗号分隔。貌似扩展音乐可以不打标签
	CustomTags    string      `json:"customTags"`    // 实际为数组 "[]"
	Comment       string      `json:"comment"`       // 评论内容
	SyncYunCircle bool        `json:"syncYunCircle"` // 同步到音乐圈中
	SyncComment   bool        `json:"syncComment"`   // ?
	Source        string      `json:"source"`        // 应该表示平台,暂时写死:mp-music-partner
	ExtraScore    string      `json:"extraScore"`    // 扩展评分,对应: 歌词、旋律、演唱 \"{\\\"1\\\":3,\\\"2\\\":3,\\\"3\\\":3}\"
	ExtraResource bool        `json:"extraResource"` // 当测评扩展更多歌曲时为true
}

PartnerEvaluateReq "{"taskId":118761451,"workId":787080,"score":4,"tags":"4-A-1,4-A-2,4-B-1,4-C-1,4-D-1,4-D-2,4-E-1,4-E-2","customTags":"[\"特别\"]","comment":"","syncYunCircle":false,"syncComment":true,"source":"mp-music-partner","csrf_token":"77bf3a5074699038504234d63d68d917"}"

type PartnerEvaluateResp

type PartnerEvaluateResp struct {
	types.RespCommon[PartnerEvaluateRespData]
}

type PartnerEvaluateRespData

type PartnerEvaluateRespData struct {
	SongCommentInfo struct {
		CommentId int64  `json:"commentId"`
		ThreadId  string `json:"threadId"`
	} `json:"songCommentInfo"`
	EvaluateRes       bool               `json:"evaluateRes"`       // 测评结果
	TodayExtendEvaNum int64              `json:"todayExtendEvaNum"` // 今天测评了多少扩展歌曲
	CurScore          int64              `json:"curScore"`          // 当前歌曲测评得分,貌似只有在扩展歌曲测评时才返回之,反之返回null
	ExtraScore        map[string]float64 `json:"extraScore"`        // 额外评分,也就是歌词、旋律、演唱
}

type PartnerExtraReportReq

type PartnerExtraReportReq struct {
	types.ReqCommon
	WorkId        string `json:"workId"`        //
	ResourceId    string `json:"resourceId"`    //
	BizResourceId string `json:"bizResourceId"` //
	InteractType  string `json:"interactType"`  // PLAY_END(目前只知道这一个)
}

type PartnerExtraReportResp

type PartnerExtraReportResp struct {
	types.RespCommon[PartnerExtraReportRespData]
}

type PartnerExtraReportRespData

type PartnerExtraReportRespData struct {
	FailedReason   interface{} `json:"failedReason"` // 如果不为空,则应改表示失败
	InteractResult bool        `json:"interactResult"`
}

type PartnerExtraTaskReq

type PartnerExtraTaskReq struct {
	types.ReqCommon
}

type PartnerExtraTaskResp

type PartnerExtraTaskResp struct {
	types.RespCommon[[]PartnerExtraTaskRespData]
}

type PartnerExtraTaskRespData

type PartnerExtraTaskRespData struct {
	Work                 PartnerWork   `json:"work"`
	Completed            bool          `json:"completed"`
	Score                float64       `json:"score"`
	UserScore            float64       `json:"userScore"`
	Tags                 []interface{} `json:"tags"`
	CustomTags           []interface{} `json:"customTags"`
	Comment              string        `json:"comment"`
	SongCommentInfo      interface{}   `json:"songCommentInfo"`
	TaskTitleDesc        string        `json:"taskTitleDesc"`
	SupportExtraEvaTypes []int64       `json:"supportExtraEvaTypes"`
	ExtraScore           struct{}      `json:"extraScore"`
	TaskSource           int64         `json:"taskSource"`
}

type PartnerHomeReq

type PartnerHomeReq struct {
	types.ReqCommon
}

type PartnerHomeResp

type PartnerHomeResp struct {
	types.RespCommon[PartnerHomeRespData]
}

type PartnerHomeRespData

type PartnerHomeRespData struct {
	Period    int64 `json:"period"`
	Week      int64 `json:"week"`
	StartDate int64 `json:"startDate"` // eg: 1740931200000
	EndDate   int64 `json:"endDate"`   // eg: 1740931200000
	User      struct {
		UserId    int64  `json:"userId"`
		NickName  string `json:"nickName"`
		AvatarUrl string `json:"avatarUrl"`
		Title     string `json:"title"` // eg: JUNIOR、等
		Days      int64  `json:"days"`  // 拥有多少多少天音乐合伙人
		Number    int64  `json:"number"`
	} `json:"user"`
	Integral struct {
		Integral            int64 `json:"integral"`
		CurrentWeekIntegral int64 `json:"currentWeekIntegral"`
	} `json:"integral"`
	Title      interface{} `json:"title"`
	Banner     interface{} `json:"banner"`
	BtnDesc    interface{} `json:"btnDesc"`
	RuleUrl    string      `json:"ruleUrl"` // 音乐合伙人规则图片地支: https://y.music.163.com/g/yida/9fecf6a378be49a7a109ae9befb1b8d3
	HotSongDto interface{} `json:"hotSongDto"`
}

type PartnerHotPopupReq added in v0.1.0

type PartnerHotPopupReq struct {
	types.ReqCommon
}

type PartnerHotPopupResp added in v0.1.0

type PartnerHotPopupResp struct {
	types.RespCommon[any]
}

type PartnerLatestReq

type PartnerLatestReq struct {
	types.ReqCommon
}

type PartnerLatestResp

type PartnerLatestResp struct {
	types.RespCommon[PartnerLatestRespData]
}

type PartnerLatestRespData

type PartnerLatestRespData struct {
	SectionPeriod       string `json:"sectionPeriod"`       // MMD-1617552000000-51-4
	Periods             string `json:"periods"`             // MMD-1617552000000-51
	NextPeriodStartTime int64  `json:"nextPeriodStartTime"` // 1743350400000
}

type PartnerNoticeReq

type PartnerNoticeReq struct {
	types.ReqCommon
}

type PartnerNoticeResp

type PartnerNoticeResp struct {
	types.RespCommon[bool]
}

type PartnerPeriodReq

type PartnerPeriodReq struct {
	types.ReqCommon
}

type PartnerPeriodResp

type PartnerPeriodResp struct {
	types.RespCommon[PartnerPeriodRespData]
}

type PartnerPeriodRespData

type PartnerPeriodRespData struct {
	Period        int64       `json:"period"`
	Week          int64       `json:"week"`
	Periods       string      `json:"periods"`
	SectionPeriod interface{} `json:"sectionPeriod"`
	User          struct {
		UserId    int64  `json:"userId"`
		NickName  string `json:"nickName"`
		AvatarUrl string `json:"avatarUrl"`
	} `json:"user"`
	PickRight  interface{} `json:"pickRight"`
	Title      string      `json:"title"`
	Integral   int64       `json:"integral"`
	Evaluation struct {
		EvaluateCount    int64  `json:"evaluateCount"`
		BasicIntegral    int64  `json:"basicIntegral"`
		AccuracyIntegral int64  `json:"accuracyIntegral"`
		AccurateCount    int64  `json:"accurateCount"`
		AccurateRate     int64  `json:"accurateRate"`
		AccuracyLevel    string `json:"accuracyLevel"`
	} `json:"evaluation"`
	Top3 []struct {
		Work struct {
			Id                  int64       `json:"id"`
			ResourceType        string      `json:"resourceType"`
			ResourceId          int64       `json:"resourceId"`
			Name                string      `json:"name"`
			CoverUrl            string      `json:"coverUrl"`
			AuthorName          string      `json:"authorName"`
			Duration            int64       `json:"duration"`
			Source              string      `json:"source"`
			Status              string      `json:"status"`
			BackendForceOffline bool        `json:"backendForceOffline"`
			WorkResourceInfo    interface{} `json:"workResourceInfo"`
		} `json:"work"`
		Score            float64 `json:"score"`
		AvgScore         float64 `json:"avgScore"`
		BasicIntegral    int64   `json:"basicIntegral"`
		AccuracyIntegral int64   `json:"accuracyIntegral"`
		EvaluateCount    int64   `json:"evaluateCount"`
		Tags             []struct {
			Tag   string `json:"tag"`
			Count int64  `json:"count"`
		} `json:"tags"`
		ScoreStats struct {
			Field1 int64 `json:"2.0"`
			Field2 int64 `json:"4.0"`
			Field3 int64 `json:"5.0"`
			Field4 int64 `json:"3.0"`
			Field5 int64 `json:"1.0,omitempty"`
		} `json:"scoreStats"`
		ScorePercentMap struct {
			Field1 float64 `json:"4.0"`
			Field2 float64 `json:"2.0"`
			Field3 float64 `json:"5.0"`
			Field4 float64 `json:"3.0"`
			Field5 float64 `json:"1.0,omitempty"`
		} `json:"scorePercentMap"`
		Accuracy float64 `json:"accuracy"`
	} `json:"top3"`
	AccurateWorks []struct {
		Work struct {
			Id                  int64       `json:"id"`
			ResourceType        string      `json:"resourceType"`
			ResourceId          int64       `json:"resourceId"`
			Name                string      `json:"name"`
			CoverUrl            string      `json:"coverUrl"`
			AuthorName          string      `json:"authorName"`
			Duration            int64       `json:"duration"`
			Source              string      `json:"source"`
			Status              string      `json:"status"`
			BackendForceOffline bool        `json:"backendForceOffline"`
			WorkResourceInfo    interface{} `json:"workResourceInfo"`
		} `json:"work"`
		Score            float64     `json:"score"`
		AvgScore         float64     `json:"avgScore"`
		BasicIntegral    int64       `json:"basicIntegral"`
		AccuracyIntegral int64       `json:"accuracyIntegral"`
		EvaluateCount    int64       `json:"evaluateCount"`
		Tags             interface{} `json:"tags"`
		ScoreStats       interface{} `json:"scoreStats"`
		ScorePercentMap  interface{} `json:"scorePercentMap"`
		Accuracy         float64     `json:"accuracy"`
	} `json:"accurateWorks"`
	ExcellentWorks     []interface{} `json:"excellentWorks"`
	RecoverStatus      bool          `json:"recoverStatus"`
	RecoverExpiredTime int64         `json:"recoverExpiredTime"`
	ExcellentPlaylists []struct {
		Id    int64  `json:"id"`
		Name  string `json:"name"`
		Cover string `json:"cover"`
	} `json:"excellentPlaylists"`
	// Status 状态 SETTLED: 可能是代表本期已经结算或者未满足320分失去测评资格了
	Status            string      `json:"status"`
	ResultConfigTitle interface{} `json:"resultConfigTitle"`
	ConfigedAct       interface{} `json:"configedAct"`
	// Eliminated 状态: true 可能是代表未满足320分失去测评资格了,很大概率是,它和Status状态二者必占其一
	Eliminated bool `json:"eliminated"`
}

type PartnerPickRightReq

type PartnerPickRightReq struct {
	types.ReqCommon
}

type PartnerPickRightResp

type PartnerPickRightResp struct {
	types.RespCommon[[]PartnerPickRightRespData]
}

type PartnerPickRightRespData

type PartnerPickRightRespData struct{}

PartnerPickRightRespData TODO:待补充参数

type PartnerTags

type PartnerTags string

PartnerTags 音乐合伙人测评默认标签

const (
	OneAOnePartnerTags   PartnerTags = "1-A-1" // 歌词立意差
	OneBOnePartnerTags   PartnerTags = "1-B-1" // 旋律无记忆
	OneCOnePartnerTags   PartnerTags = "1-C-1" // 唱功不好
	OneDOnePartnerTags   PartnerTags = "1-D-1" // 音色普通
	OneDTwoPartnerTags   PartnerTags = "1-D-2" // 情感不饱满
	TwoAOnePartnerTags   PartnerTags = "2-A-1" // 歌词立意一般
	TwoBOnePartnerTags   PartnerTags = "2-B-1" // 旋律平平
	TwoCOnePartnerTags   PartnerTags = "2-C-1" // 唱功一般
	TwoDOnePartnerTags   PartnerTags = "2-D-1" // 音色普通
	TwoDTwoPartnerTags   PartnerTags = "2-D-2" // 情感不饱满
	ThreeAOnePartnerTags PartnerTags = "3-A-1" // 歌词有共鸣
	ThreeATwoPartnerTags PartnerTags = "3-A-2" // 歌词立意不错
	ThreeBOnePartnerTags PartnerTags = "3-B-1" // 旋律耐听
	ThreeCOnePartnerTags PartnerTags = "3-C-1" // 唱功不错
	ThreeDOnePartnerTags PartnerTags = "3-D-1" // 音色独特
	ThreeDTwoPartnerTags PartnerTags = "3-D-2" // 情感到位
	ThreeEOnePartnerTags PartnerTags = "3-E-1" // 有节奏感
	ThreeETwoPartnerTags PartnerTags = "3-E-2" // 洗脑
	FourAOnePartnerTags  PartnerTags = "4-A-1" // 歌词有共鸣
	FourATwoPartnerTags  PartnerTags = "4-A-2" // 歌词立意好
	FourBOnePartnerTags  PartnerTags = "4-B-1" // 旋律耐听
	FourCOnePartnerTags  PartnerTags = "4-C-1" // 唱功不错
	FourDOnePartnerTags  PartnerTags = "4-D-1" // 音色独特
	FourDTwoPartnerTags  PartnerTags = "4-D-2" // 情感到位
	FourEOnePartnerTags  PartnerTags = "4-E-1" // 有节奏感
	FourETwoPartnerTags  PartnerTags = "4-E-2" // 洗脑
	FiveAOnePartnerTags  PartnerTags = "5-A-1" // 歌词强共鸣
	FiveATwoPartnerTags  PartnerTags = "5-A-2" // 歌词立意极高
	FiveBOnePartnerTags  PartnerTags = "5-B-1" // 旋律有记忆点
	FiveCOnePartnerTags  PartnerTags = "5-C-1" // 唱功惊艳
	FiveDOnePartnerTags  PartnerTags = "5-D-1" // 音色独特
	FiveDTwoPartnerTags  PartnerTags = "5-D-2" // 情感到位
	FiveEOnePartnerTags  PartnerTags = "5-E-1" // 有节奏感
	FiveETwoPartnerTags  PartnerTags = "5-E-2" // 洗脑
)

func (PartnerTags) String

func (p PartnerTags) String() string

type PartnerTaskReq

type PartnerTaskReq struct {
	types.ReqCommon
}

type PartnerTaskResp

type PartnerTaskResp struct {
	types.RespCommon[PartnerTaskRespData]
}

type PartnerTaskRespData

type PartnerTaskRespData struct {
	Id int64 `json:"id"`
	// 任务数量,一般来说就是下面 Works 得数量目前来说是5
	Count int64 `json:"count"`
	// 完成数量
	CompletedCount int64 `json:"completedCount"`
	// 完成所有 Works 任务获得的积分,老版为10现在3.0版本为8分
	Integral  int64       `json:"integral"`
	TaskTitle interface{} `json:"taskTitle"`
	// Works 待测评的5首基础歌曲列表,如果没有测评资格则该任务列表为空
	Works []struct {
		Work            PartnerWork `json:"work"`
		Completed       bool        `json:"completed"`
		Score           float64     `json:"score"`
		UserScore       float64     `json:"userScore"`
		Tags            interface{} `json:"tags"`
		CustomTags      interface{} `json:"customTags"`
		Comment         interface{} `json:"comment"`
		TaskTitleDesc   interface{} `json:"taskTitleDesc"`
		SongCommentInfo struct {
			CommentId int64  `json:"commentId"`
			ThreadId  string `json:"threadId"`
		} `json:"songCommentInfo"`
		SupportExtraEvaTypes []int64  `json:"supportExtraEvaTypes"` // 扩展测评类型 歌词、旋律、演唱,对应数值需要待确定 1: 2: 3:
		ExtraScore           struct{} `json:"extraScore"`
		TaskSource           int64    `json:"taskSource"`
	} `json:"works"`
	// 推荐歌曲列表该列表为新得音乐合伙人3.0功能中增加,通常也是5首
	RecResources []struct {
		Work           PartnerWork `json:"work"`
		SpecialTag     []string    `json:"specialTag"`
		SongCommonTags interface{} `json:"songCommonTags"`
		ReceivedScore  int64       `json:"receivedScore"`
		QualityScore   int64       `json:"qualityScore"`
		RedHeartSong   bool        `json:"redHeartSong"`
		Listened       bool        `json:"listened"`
		CanInteract    bool        `json:"canInteract"`
		PublishComment bool        `json:"publishComment"`
		PublishEvent   bool        `json:"publishEvent"`
		CollectList    bool        `json:"collectList"`
		TotalTaskNum   int64       `json:"totalTaskNum"`
		FinishTaskNum  int64       `json:"finishTaskNum"`
		TaskSource     int64       `json:"taskSource"`
	} `json:"recResources"`
	PageTaskType int64 `json:"pageTaskType"`
	CurRcmdScore int64 `json:"curRcmdScore"`
	CanInteract  bool  `json:"canInteract"`
	Completed    bool  `json:"completed"`
}

type PartnerUserinfoReq

type PartnerUserinfoReq struct {
	types.ReqCommon
}

type PartnerUserinfoResp

type PartnerUserinfoResp struct {
	types.RespCommon[PartnerUserinfoRespData]
}

PartnerUserinfoResp code:703 非音乐合伙人

type PartnerUserinfoRespData

type PartnerUserinfoRespData struct {
	UserId    int64  `json:"userId"`
	NickName  string `json:"nickName"`
	AvatarUrl string `json:"avatarUrl"`
	Number    int64  `json:"number"`
	// Title
	// JUNIOR: 320高级音乐合伙人
	// SENIOR: 400资深音乐合伙人
	// (待补充): 480首席音乐合伙人
	Title string `json:"title"`
	// Days 成为音乐合伙人多少填
	Days          int64 `json:"days"`
	Integral      int64 `json:"integral"`
	EvaluateCount int64 `json:"evaluateCount"`
	PickCount     int64 `json:"pickCount"`
	// Status 状态 NORMAL:正常 ELIMINATED: 未满足320分失去测评资格了
	Status     string        `json:"status"`
	PickRights []interface{} `json:"pickRights"`
	// TitleStats 音乐合伙人身份统计,比如多少次初级音乐合伙人,多少次高级音乐合伙人
	TitleStats []struct {
		// Title eg:JUNIOR、SENIOR
		Title string `json:"title"`
		// Count 累计次数
		Count int64 `json:"count"`
	} `json:"titleStats"`
	CurrentPeriodRank  interface{} `json:"currentPeriodRank"`
	RecoverExpiredTime int64       `json:"recoverExpiredTime"`
	RightType          int64       `json:"rightType"`
	RecCount           int64       `json:"recCount"`
	NextPeriodStart    string      `json:"nextPeriodStart"`
}

type PartnerWeekData

type PartnerWeekData struct {
	Period        int64       `json:"period"`
	Week          int64       `json:"week"`
	Periods       interface{} `json:"periods"`
	SectionPeriod string      `json:"sectionPeriod"`
	User          struct {
		UserId    int64  `json:"userId"`
		NickName  string `json:"nickName"`
		AvatarUrl string `json:"avatarUrl"`
	} `json:"user"`
	PickRight struct {
		Status    interface{} `json:"status"`
		ValidTime int64       `json:"validTime"`
		ValidDay  int64       `json:"validDay"`
	} `json:"pickRight"`
	Title      interface{} `json:"title"`
	Integral   int64       `json:"integral"`
	Evaluation struct {
		EvaluateCount    int64  `json:"evaluateCount"`
		BasicIntegral    int64  `json:"basicIntegral"`
		AccuracyIntegral int64  `json:"accuracyIntegral"`
		AccurateCount    int64  `json:"accurateCount"`
		AccurateRate     int64  `json:"accurateRate"`
		AccuracyLevel    string `json:"accuracyLevel"`
	} `json:"evaluation"`
	Top3 []struct {
		Work struct {
			Id                  int64       `json:"id"`
			ResourceType        string      `json:"resourceType"`
			ResourceId          int64       `json:"resourceId"`
			Name                string      `json:"name"`
			CoverUrl            string      `json:"coverUrl"`
			AuthorName          string      `json:"authorName"`
			Duration            int64       `json:"duration"`
			Source              string      `json:"source"`
			Status              string      `json:"status"`
			BackendForceOffline bool        `json:"backendForceOffline"`
			WorkResourceInfo    interface{} `json:"workResourceInfo"`
		} `json:"work"`
		Score            float64 `json:"score"`
		AvgScore         float64 `json:"avgScore"`
		BasicIntegral    int64   `json:"basicIntegral"`
		AccuracyIntegral int64   `json:"accuracyIntegral"`
		EvaluateCount    int64   `json:"evaluateCount"`
		Tags             []struct {
			Tag   string `json:"tag"`
			Count int64  `json:"count"`
		} `json:"tags"`
		ScoreStats struct {
			Field1 int64 `json:"4.0"`
			Field2 int64 `json:"1.0,omitempty"`
			Field3 int64 `json:"2.0"`
			Field4 int64 `json:"5.0"`
			Field5 int64 `json:"3.0"`
		} `json:"scoreStats"`
		ScorePercentMap struct {
			Field1 float64 `json:"1.0,omitempty"`
			Field2 float64 `json:"4.0"`
			Field3 float64 `json:"2.0"`
			Field4 float64 `json:"5.0"`
			Field5 float64 `json:"3.0"`
		} `json:"scorePercentMap"`
		Accuracy float64 `json:"accuracy"`
	} `json:"top3"`
	AccurateWorks []struct {
		Work struct {
			Id                  int64       `json:"id"`
			ResourceType        string      `json:"resourceType"`
			ResourceId          int64       `json:"resourceId"`
			Name                string      `json:"name"`
			CoverUrl            string      `json:"coverUrl"`
			AuthorName          string      `json:"authorName"`
			Duration            int64       `json:"duration"`
			Source              string      `json:"source"`
			Status              string      `json:"status"`
			BackendForceOffline bool        `json:"backendForceOffline"`
			WorkResourceInfo    interface{} `json:"workResourceInfo"`
		} `json:"work"`
		Score            float64     `json:"score"`
		AvgScore         float64     `json:"avgScore"`
		BasicIntegral    int64       `json:"basicIntegral"`
		AccuracyIntegral int64       `json:"accuracyIntegral"`
		EvaluateCount    int64       `json:"evaluateCount"`
		Tags             interface{} `json:"tags"`
		ScoreStats       interface{} `json:"scoreStats"`
		ScorePercentMap  interface{} `json:"scorePercentMap"`
		Accuracy         float64     `json:"accuracy"`
	} `json:"accurateWorks"`
	ExcellentWorks     []interface{} `json:"excellentWorks"`
	RecoverStatus      bool          `json:"recoverStatus"`
	RecoverExpiredTime int64         `json:"recoverExpiredTime"`
	ExcellentPlaylists []struct {
		Id    int64  `json:"id"`
		Name  string `json:"name"`
		Cover string `json:"cover"`
	} `json:"excellentPlaylists"`
	Status            string      `json:"status"`
	ResultConfigTitle interface{} `json:"resultConfigTitle"`
	ConfigedAct       bool        `json:"configedAct"`
	Eliminated        bool        `json:"eliminated"`
}

type PartnerWeekReq

type PartnerWeekReq struct {
	types.ReqCommon
	Period string `json:"period"` // 格式:MMD-1617552000000-37-1
}

type PartnerWeekResp

type PartnerWeekResp struct {
	types.RespCommon[PartnerWeekData]
}

type PartnerWork

type PartnerWork struct {
	Id                int64  `json:"id"`
	ResourceType      string `json:"resourceType"` // 资源类型 SONG
	ResourceId        int64  `json:"resourceId"`   // 歌曲id
	Name              string `json:"name"`
	CoverUrl          string `json:"coverUrl"`
	AuthorName        string `json:"authorName"`
	LyricType         int64  `json:"lyricType"`    // 歌词格式类型 1
	LyricContent      string `json:"lyricContent"` // 歌词内容
	Duration          int64  `json:"duration"`     // 时长单位s
	SongStartPosition int64  `json:"songStartPosition"`
	SongEndPosition   int64  `json:"songEndPosition"`
	Status            string `json:"status"` // NORMAL
	PlayUrl           string `json:"playUrl"`
	Source            string `json:"source"` // RANK_INSERT,MUSE,SHARE_RES等
	GoodRate          int64  `json:"goodRate"`
	Style             string `json:"style"` // 华语、华语嘻哈说唱、等
	// SupportExtraEvaTypes 支持的测评类型,歌词、旋律、演唱,根据网易规则有些歌曲只由1到2个维度,
	// 详情:https://y.music.163.com/g/yida/9fecf6a378be49a7a109ae9befb1b8d3
	SupportExtraEvaTypes []int64 `json:"supportExtraEvaTypes"`
}

type PlaylistAddOrDelReq added in v0.3.3

type PlaylistAddOrDelReq struct {
	Op       string           `json:"op"`       // 增加歌曲为add,删除为del,更新顺序为update
	Pid      int64            `json:"pid"`      // 歌单id
	TrackIds types.IntsString `json:"trackIds"` // 歌曲id (传入格式如types.IntsString{349823, 423521})
	Imme     bool             `json:"imme"`     // 是否立刻上传(默认为true),实际检测不会产生太大影响,猜测为了防止阻塞残留
}

type PlaylistAddOrDelResp added in v0.3.3

type PlaylistAddOrDelResp struct {
	types.RespCommon[any]
	TrackIds   string `json:"trackIds"`   // 成功添加的歌曲id(返回为string类型数组如"[349823,423521]")
	Count      int64  `json:"count"`      // 该歌单歌曲数量(添加后)
	CloudCount int64  `json:"cloudCount"` // 该歌单内云盘歌曲数量(添加后)
}

type PlaylistDetailReq

type PlaylistDetailReq struct {
	Id string `json:"id"` // 歌单id 从接口 Playlist() 中获取
	N  string `json:"n"`  // 数值类型,未知通常可以为0
	S  string `json:"s"`  // 数值类型,歌单最近得S个收藏者 see: https://docs-neteasecloudmusicapi.vercel.app/docs/#/?id=%e8%8e%b7%e5%8f%96%e6%ad%8c%e5%8d%95%e8%af%a6%e6%83%85
}

type PlaylistDetailResp

type PlaylistDetailResp struct {
	types.ApiRespCommon[any]
	RelatedVideos interface{} `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                int64         `json:"adType"`
		UserId                int64         `json:"userId"`
		CreateTime            int64         `json:"createTime"`
		Status                int64         `json:"status"`
		OpRecommend           bool          `json:"opRecommend"`
		HighQuality           bool          `json:"highQuality"`
		NewImported           bool          `json:"newImported"`
		UpdateTime            int64         `json:"updateTime"`
		TrackCount            int64         `json:"trackCount"`
		SpecialType           int64         `json:"specialType"`
		Privacy               int64         `json:"privacy"`
		TrackUpdateTime       int64         `json:"trackUpdateTime"`
		CommentThreadId       string        `json:"commentThreadId"`
		PlayCount             int64         `json:"playCount"`
		TrackNumberUpdateTime int64         `json:"trackNumberUpdateTime"`
		SubscribedCount       int64         `json:"subscribedCount"`
		CloudTrackCount       int64         `json:"cloudTrackCount"`
		Ordered               bool          `json:"ordered"`
		Description           string        `json:"description"`
		Tags                  []interface{} `json:"tags"`
		UpdateFrequency       interface{}   `json:"updateFrequency"`
		BackgroundCoverId     int64         `json:"backgroundCoverId"`
		BackgroundCoverUrl    interface{}   `json:"backgroundCoverUrl"`
		TitleImage            int64         `json:"titleImage"`
		TitleImageUrl         interface{}   `json:"titleImageUrl"`
		DetailPageTitle       interface{}   `json:"detailPageTitle"`
		EnglishTitle          interface{}   `json:"englishTitle"`
		OfficialPlaylistType  interface{}   `json:"officialPlaylistType"`
		Copied                bool          `json:"copied"`
		RelateResType         interface{}   `json:"relateResType"`
		CoverStatus           int64         `json:"coverStatus"`
		Subscribers           []interface{} `json:"subscribers"`
		Subscribed            interface{}   `json:"subscribed"`
		Creator               struct {
			DefaultAvatar       bool        `json:"defaultAvatar"`
			Province            int64       `json:"province"`
			AuthStatus          int64       `json:"authStatus"`
			Followed            bool        `json:"followed"`
			AvatarUrl           string      `json:"avatarUrl"`
			AccountStatus       int64       `json:"accountStatus"`
			Gender              int64       `json:"gender"`
			City                int64       `json:"city"`
			Birthday            int64       `json:"birthday"`
			UserId              int64       `json:"userId"`
			UserType            int64       `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           int64       `json:"authority"`
			Mutual              bool        `json:"mutual"`
			ExpertTags          interface{} `json:"expertTags"`
			Experts             interface{} `json:"experts"`
			DjStatus            int64       `json:"djStatus"`
			VipType             int64       `json:"vipType"`
			RemarkName          interface{} `json:"remarkName"`
			AuthenticationTypes int64       `json:"authenticationTypes"`
			AvatarDetail        struct {
				UserType        int64  `json:"userType"`
				IdentityLevel   int    `json:"identityLevel"`
				IdentityIconUrl string `json:"identityIconUrl"`
			} `json:"avatarDetail"`
			AvatarImgIdStr     string `json:"avatarImgIdStr"`
			BackgroundImgIdStr string `json:"backgroundImgIdStr"`
			Anchor             bool   `json:"anchor"`
			AvatarImgIdStr1    string `json:"avatarImgId_str"`
		} `json:"creator"`
		// Tracks 只包含了10首歌曲详情信息,而 TrackIds 包含歌曲所有的信息id不包含歌曲详情因此需要配合详情接口查询
		Tracks []struct {
			Name                 string         `json:"name"`
			Id                   int64          `json:"id"`
			Pst                  int64          `json:"pst"`
			T                    int64          `json:"t"`
			Ar                   []types.Artist `json:"ar"`
			Alia                 []interface{}  `json:"alia"`
			Pop                  float64        `json:"pop"`
			St                   int64          `json:"st"`
			Rt                   *string        `json:"rt"`
			Fee                  int64          `json:"fee"`
			V                    int64          `json:"v"`
			Crbt                 interface{}    `json:"crbt"`
			Cf                   string         `json:"cf"`
			Al                   types.Album    `json:"al"`
			Dt                   int64          `json:"dt"`
			H                    types.Quality  `json:"h"`
			M                    types.Quality  `json:"m"`
			L                    types.Quality  `json:"l"`
			Sq                   types.Quality  `json:"sq"`
			Hr                   types.Quality  `json:"hr"`
			A                    interface{}    `json:"a"`
			Cd                   string         `json:"cd"`
			No                   int64          `json:"no"`
			RtUrl                interface{}    `json:"rtUrl"`
			Ftype                int64          `json:"ftype"`
			RtUrls               []interface{}  `json:"rtUrls"`
			DjId                 int64          `json:"djId"`
			Copyright            int64          `json:"copyright"`
			SId                  int64          `json:"s_id"`
			Mark                 int64          `json:"mark"`
			OriginCoverType      int64          `json:"originCoverType"`
			OriginSongSimpleData interface{}    `json:"originSongSimpleData"`
			TagPicList           interface{}    `json:"tagPicList"`
			ResourceState        bool           `json:"resourceState"`
			Version              int64          `json:"version"`
			SongJumpInfo         interface{}    `json:"songJumpInfo"`
			EntertainmentTags    interface{}    `json:"entertainmentTags"`
			AwardTags            interface{}    `json:"awardTags"`
			Single               int64          `json:"single"`
			NoCopyrightRcmd      interface{}    `json:"noCopyrightRcmd"`
			Alg                  interface{}    `json:"alg"`
			DisplayReason        interface{}    `json:"displayReason"`
			Rtype                int64          `json:"rtype"`
			Rurl                 interface{}    `json:"rurl"`
			Mst                  int64          `json:"mst"`
			Cp                   int64          `json:"cp"`
			Mv                   int64          `json:"mv"`
			PublishTime          int64          `json:"publishTime"`
		} `json:"tracks"`
		VideoIds interface{} `json:"videoIds"`
		Videos   interface{} `json:"videos"`
		TrackIds []struct {
			Id         int64       `json:"id"`
			V          int         `json:"v"`
			T          int         `json:"t"`
			At         int64       `json:"at"`
			Alg        interface{} `json:"alg"`
			Uid        int         `json:"uid"`
			RcmdReason string      `json:"rcmdReason"`
			Sc         interface{} `json:"sc"`
			F          interface{} `json:"f"`
			Sr         interface{} `json:"sr"`
			Dpr        interface{} `json:"dpr"`
		} `json:"trackIds"`
		BannedTrackIds          interface{}   `json:"bannedTrackIds"`
		MvResourceInfos         interface{}   `json:"mvResourceInfos"`
		ShareCount              int64         `json:"shareCount"`
		CommentCount            int64         `json:"commentCount"`
		RemixVideo              interface{}   `json:"remixVideo"`
		NewDetailPageRemixVideo interface{}   `json:"newDetailPageRemixVideo"`
		SharedUsers             interface{}   `json:"sharedUsers"`
		HistorySharedUsers      interface{}   `json:"historySharedUsers"`
		GradeStatus             string        `json:"gradeStatus"`
		Score                   interface{}   `json:"score"`
		AlgTags                 interface{}   `json:"algTags"`
		DistributeTags          []interface{} `json:"distributeTags"`
		TrialMode               int64         `json:"trialMode"`
		DisplayTags             interface{}   `json:"displayTags"`
		PlaylistType            string        `json:"playlistType"`
	} `json:"playlist"`
	Urls            interface{}        `json:"urls"`
	Privileges      []types.Privileges `json:"privileges"`
	SharedPrivilege interface{}        `json:"sharedPrivilege"`
	ResEntrance     interface{}        `json:"resEntrance"`
	FromUsers       interface{}        `json:"fromUsers"`
	FromUserCount   int64              `json:"fromUserCount"`
	SongFromUsers   interface{}        `json:"songFromUsers"`
}

type PlaylistReq

type PlaylistReq struct {
	Uid    string `json:"uid"`
	Offset string `json:"offset"`
	// Limit default 1000
	Limit string `json:"limit"`
}

type PlaylistResp

type PlaylistResp struct {
	types.RespCommon[any]
	Version  string             `json:"version"` // 时间戳1703557080686
	More     bool               `json:"more"`
	Playlist []PlaylistRespList `json:"playlist"`
}

type PlaylistRespList

type PlaylistRespList struct {
	Subscribers []interface{} `json:"subscribers"`
	Subscribed  bool          `json:"subscribed"`
	Creator     struct {
		DefaultAvatar     bool     `json:"defaultAvatar"`
		Province          int64    `json:"province"`
		AuthStatus        int64    `json:"authStatus"`
		Followed          bool     `json:"followed"`
		AvatarUrl         string   `json:"avatarUrl"`
		AccountStatus     int64    `json:"accountStatus"`
		Gender            int64    `json:"gender"`
		City              int64    `json:"city"`
		Birthday          int64    `json:"birthday"`
		UserId            int64    `json:"userId"`
		UserType          int64    `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         int64    `json:"authority"`
		Mutual            bool     `json:"mutual"`
		ExpertTags        []string `json:"expertTags"`
		Experts           *struct {
			Field1 string `json:"2"`
		} `json:"experts"`
		DjStatus            int64       `json:"djStatus"`
		VipType             int64       `json:"vipType"`
		RemarkName          interface{} `json:"remarkName"`
		AuthenticationTypes int64       `json:"authenticationTypes"`
		AvatarDetail        interface{} `json:"avatarDetail"`
		BackgroundImgIdStr  string      `json:"backgroundImgIdStr"`
		AvatarImgIdStr      string      `json:"avatarImgIdStr"`
		Anchor              bool        `json:"anchor"`
		AvatarImgIdStr1     string      `json:"avatarImgId_str,omitempty"`
	} `json:"creator"`
	Artists            interface{} `json:"artists"`
	Tracks             interface{} `json:"tracks"`
	Top                bool        `json:"top"`
	UpdateFrequency    *string     `json:"updateFrequency"`
	BackgroundCoverId  int64       `json:"backgroundCoverId"`
	BackgroundCoverUrl *string     `json:"backgroundCoverUrl"`
	TitleImage         int64       `json:"titleImage"`
	TitleImageUrl      *string     `json:"titleImageUrl"`
	EnglishTitle       *string     `json:"englishTitle"`
	OpRecommend        bool        `json:"opRecommend"`
	RecommendInfo      *struct {
		Alg     string `json:"alg"`
		LogInfo string `json:"logInfo"`
	} `json:"recommendInfo"`
	SubscribedCount       int64       `json:"subscribedCount"`
	CloudTrackCount       int64       `json:"cloudTrackCount"`
	UserId                int64       `json:"userId"`
	TotalDuration         int64       `json:"totalDuration"`
	CoverImgId            int64       `json:"coverImgId"`
	Privacy               int64       `json:"privacy"`
	TrackUpdateTime       int64       `json:"trackUpdateTime"`
	TrackCount            int64       `json:"trackCount"`
	UpdateTime            int64       `json:"updateTime"`
	CommentThreadId       string      `json:"commentThreadId"`
	CoverImgUrl           string      `json:"coverImgUrl"`
	SpecialType           int64       `json:"specialType"`
	Anonimous             bool        `json:"anonimous"`
	CreateTime            int64       `json:"createTime"`
	HighQuality           bool        `json:"highQuality"`
	NewImported           bool        `json:"newImported"`
	TrackNumberUpdateTime int64       `json:"trackNumberUpdateTime"`
	PlayCount             int64       `json:"playCount"`
	AdType                int64       `json:"adType"`
	Description           *string     `json:"description"`
	Tags                  []string    `json:"tags"`
	Ordered               bool        `json:"ordered"`
	Status                int64       `json:"status"`
	Name                  string      `json:"name"`
	Id                    int64       `json:"id"`
	CoverImgIdStr         *string     `json:"coverImgId_str"`
	SharedUsers           interface{} `json:"sharedUsers"`
	ShareStatus           interface{} `json:"shareStatus"`
	Copied                bool        `json:"copied"`
}

type PlaylistUpdatePlayCountReq added in v0.4.0

type PlaylistUpdatePlayCountReq struct {
	Id string `json:"id"`
}

type PlaylistUpdatePlayCountResp added in v0.4.0

type PlaylistUpdatePlayCountResp struct {
	types.RespCommon[any]
}

type PrivateCloud

type PrivateCloud struct {
	SimpleSong struct {
		Name                 string           `json:"name"`
		Id                   int              `json:"id"`
		Pst                  int              `json:"pst"`
		T                    int              `json:"t"`
		Ar                   []types.Artist   `json:"ar"`
		Alia                 []interface{}    `json:"alia"`
		Pop                  float64          `json:"pop"`
		St                   int              `json:"st"`
		Rt                   string           `json:"rt"`
		Fee                  int              `json:"fee"`
		V                    int              `json:"v"`
		Crbt                 interface{}      `json:"crbt"`
		Cf                   string           `json:"cf"`
		Al                   types.Album      `json:"al"`
		Dt                   int              `json:"dt"`
		H                    types.Quality    `json:"h"`
		M                    types.Quality    `json:"m"`
		L                    types.Quality    `json:"l"`
		A                    interface{}      `json:"a"`
		Cd                   string           `json:"cd"`
		No                   int              `json:"no"`
		RtUrl                interface{}      `json:"rtUrl"`
		Ftype                int              `json:"ftype"`
		RtUrls               []interface{}    `json:"rtUrls"`
		DjId                 int              `json:"djId"`
		Copyright            int              `json:"copyright"`
		SId                  int              `json:"s_id"`
		Mark                 int              `json:"mark"`
		OriginCoverType      int              `json:"originCoverType"`
		OriginSongSimpleData interface{}      `json:"originSongSimpleData"`
		Single               int              `json:"single"`
		NoCopyrightRcmd      interface{}      `json:"noCopyrightRcmd"`
		Mst                  int              `json:"mst"`
		Cp                   int              `json:"cp"`
		Mv                   int              `json:"mv"`
		Rtype                int              `json:"rtype"`
		Rurl                 interface{}      `json:"rurl"`
		PublishTime          int64            `json:"publishTime"`
		Privilege            types.Privileges `json:"privilege"`
	} `json:"simpleSong"`
	Cover    int    `json:"cover"`
	AddTime  int64  `json:"addTime"`
	SongName string `json:"songName"`
	Album    string `json:"album"`
	Artist   string `json:"artist"`
	Bitrate  int    `json:"bitrate"`
	SongId   int    `json:"songId"`
	CoverId  string `json:"coverId"`
	LyricId  string `json:"lyricId"`
	Version  int    `json:"version"`
	FileSize int    `json:"fileSize"`
	FileName string `json:"fileName"`
}

type QrcodeCheckReq

type QrcodeCheckReq struct {
	Key  string `json:"key"`  // QrcodeCreateKey()返回值codekey
	Type int64  `json:"type"` // 目前传1
}

type QrcodeCheckResp

type QrcodeCheckResp struct {
	types.RespCommon[any]
}

type QrcodeCreateKeyReq

type QrcodeCreateKeyReq struct {
	types.ReqCommon
	Type int64 `json:"type"` // 1: 貌似是web端 3: 貌似移动端
}

type QrcodeCreateKeyResp

type QrcodeCreateKeyResp struct {
	types.RespCommon[any]
	UniKey string `json:"unikey"`
}

type QrcodeGenerateReq

type QrcodeGenerateReq struct {
	CodeKey  string
	Level    qrcode.RecoveryLevel // 二维码恢复率
	Platform string
	DeviceId string // 用于生成 chainId
}

type QrcodeGenerateResp

type QrcodeGenerateResp struct {
	types.RespCommon[any]
	Qrcode      []byte
	QrcodePrint string
}

type RadioReq added in v0.1.4

type RadioReq struct {
	types.ReqCommon
	ImageFm string `json:"imageFm"` // 0: 1: 待分析
}

type RadioResp added in v0.1.4

type RadioResp struct {
	types.RespCommon[[]RadioRespData]
	PopAdjust bool        `json:"popAdjust"`
	Tag       interface{} `json:"tag"`
}

type RadioRespData added in v0.1.4

type RadioRespData struct {
	Name        string                `json:"name"`
	Id          int64                 `json:"id"`
	Position    int64                 `json:"position"`
	Alias       []interface{}         `json:"alias"`
	Status      int64                 `json:"status"`
	Fee         int64                 `json:"fee"`
	CopyrightId int64                 `json:"copyrightId"`
	Disc        string                `json:"disc"`
	No          int64                 `json:"no"`
	Artists     []RadioRespDataArtist `json:"artists"`
	Album       struct {
		Name            string                `json:"name"`
		Id              int64                 `json:"id"`
		Type            string                `json:"type"`
		Size            int64                 `json:"size"`
		PicId           int64                 `json:"picId"`
		BlurPicUrl      string                `json:"blurPicUrl"`
		CompanyId       int64                 `json:"companyId"`
		Pic             int64                 `json:"pic"`
		PicUrl          string                `json:"picUrl"`
		PublishTime     int64                 `json:"publishTime"`
		Description     string                `json:"description"`
		Tags            string                `json:"tags"`
		Company         string                `json:"company"`
		BriefDesc       string                `json:"briefDesc"`
		Artist          RadioRespDataArtist   `json:"artist"`
		Songs           []interface{}         `json:"songs"`
		Alias           []interface{}         `json:"alias"`
		Status          int64                 `json:"status"`
		CopyrightId     int64                 `json:"copyrightId"`
		CommentThreadId string                `json:"commentThreadId"`
		Artists         []RadioRespDataArtist `json:"artists"`
		SubType         string                `json:"subType"`
		TransName       interface{}           `json:"transName"`
		PicIdStr        string                `json:"picId_str,omitempty"`
	} `json:"album"`
	Starred         bool               `json:"starred"`
	Popularity      float64            `json:"popularity"`
	Score           int64              `json:"score"`
	StarredNum      int64              `json:"starredNum"`
	Duration        int64              `json:"duration"`
	PlayedNum       int64              `json:"playedNum"`
	DayPlays        int64              `json:"dayPlays"`
	HearTime        int64              `json:"hearTime"`
	Ringtone        *string            `json:"ringtone"`
	Crbt            interface{}        `json:"crbt"`
	Audition        interface{}        `json:"audition"`
	CopyFrom        string             `json:"copyFrom"`
	CommentThreadId string             `json:"commentThreadId"`
	RtUrl           interface{}        `json:"rtUrl"`
	Ftype           int64              `json:"ftype"`
	RtUrls          []interface{}      `json:"rtUrls"`
	Copyright       int64              `json:"copyright"`
	TransName       interface{}        `json:"transName"`
	Sign            interface{}        `json:"sign"`
	HMusic          RadioRespDataMusic `json:"hMusic"`
	MMusic          RadioRespDataMusic `json:"mMusic"`
	LMusic          RadioRespDataMusic `json:"lMusic"`
	BMusic          RadioRespDataMusic `json:"bMusic"`
	Rtype           int64              `json:"rtype"`
	Rurl            interface{}        `json:"rurl"`
	Mvid            int64              `json:"mvid"`
	Mp3Url          interface{}        `json:"mp3Url"`
	Privilege       struct {
		Id                 int64                    `json:"id"`
		Fee                int64                    `json:"fee"`
		Payed              int64                    `json:"payed"`
		RealPayed          int64                    `json:"realPayed"`
		St                 int64                    `json:"st"`
		Pl                 int64                    `json:"pl"`
		Dl                 int64                    `json:"dl"`
		Sp                 int64                    `json:"sp"`
		Cp                 int64                    `json:"cp"`
		Subp               int64                    `json:"subp"`
		Cs                 bool                     `json:"cs"`
		Maxbr              int64                    `json:"maxbr"`
		Fl                 int64                    `json:"fl"`
		Pc                 interface{}              `json:"pc"`
		Toast              bool                     `json:"toast"`
		Flag               int64                    `json:"flag"`
		PaidBigBang        bool                     `json:"paidBigBang"`
		PreSell            bool                     `json:"preSell"`
		PlayMaxbr          int64                    `json:"playMaxbr"`
		DownloadMaxbr      int64                    `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               interface{}              `json:"rscl"`
		FreeTrialPrivilege types.FreeTrialPrivilege `json:"freeTrialPrivilege"`
		RightSource        int64                    `json:"rightSource"`
		ChargeInfoList     []types.ChargeInfo       `json:"chargeInfoList"`
		Code               int64                    `json:"code"`
		Message            interface{}              `json:"message"`
		PlLevels           interface{}              `json:"plLevels"`
		DlLevels           interface{}              `json:"dlLevels"`
	} `json:"privilege"`
	Alg string `json:"alg"`
}

type RadioRespDataArtist added in v0.1.4

type RadioRespDataArtist struct {
	Name      string        `json:"name"`
	Id        int64         `json:"id"`
	PicId     int64         `json:"picId"`
	Img1V1Id  int64         `json:"img1v1Id"`
	BriefDesc string        `json:"briefDesc"`
	PicUrl    string        `json:"picUrl"`
	Img1V1Url string        `json:"img1v1Url"`
	AlbumSize int64         `json:"albumSize"`
	Alias     []interface{} `json:"alias"`
	Trans     string        `json:"trans"`
	MusicSize int64         `json:"musicSize"`
}

type RadioRespDataMusic added in v0.1.4

type RadioRespDataMusic struct {
	Name        interface{} `json:"name"`
	Id          int64       `json:"id"`
	Size        int64       `json:"size"`
	Extension   string      `json:"extension"`
	Sr          int64       `json:"sr"`
	DfsId       int64       `json:"dfsId"`
	Bitrate     int64       `json:"bitrate"`
	PlayTime    int64       `json:"playTime"`
	VolumeDelta float64     `json:"volumeDelta"`
}

type RecommendSongsReq

type RecommendSongsReq struct{}

type RecommendSongsResp

type RecommendSongsResp struct {
	types.RespCommon[RecommendSongsRespData]
}

type RecommendSongsRespData

type RecommendSongsRespData struct {
	DailySongs []struct {
		A  interface{} `json:"a"`
		Al struct {
			Id     int64         `json:"id"`
			Name   string        `json:"name"`
			Pic    int64         `json:"pic"`
			PicUrl string        `json:"picUrl"`
			PicStr string        `json:"pic_str,omitempty"`
			Tns    []interface{} `json:"tns"`
		} `json:"al"`
		Alg  string   `json:"alg"`
		Alia []string `json:"alia"`
		Ar   []struct {
			Alias []interface{} `json:"alias"`
			Id    int64         `json:"id"`
			Name  string        `json:"name"`
			Tns   []interface{} `json:"tns"`
		} `json:"ar"`
		Cd                   string         `json:"cd"`
		Cf                   string         `json:"cf"`
		Copyright            int64          `json:"copyright"`
		Cp                   int64          `json:"cp"`
		Crbt                 interface{}    `json:"crbt"`
		DjId                 int64          `json:"djId"`
		Dt                   int64          `json:"dt"`
		EntertainmentTags    interface{}    `json:"entertainmentTags"`
		Fee                  int64          `json:"fee"`
		Ftype                int64          `json:"ftype"`
		H                    *types.Quality `json:"h"`
		Hr                   *types.Quality `json:"hr"`
		Id                   int64          `json:"id"`
		L                    *types.Quality `json:"l"`
		M                    *types.Quality `json:"m"`
		Mark                 int64          `json:"mark"`
		Mst                  int64          `json:"mst"`
		Mv                   int64          `json:"mv"`
		Name                 string         `json:"name"`
		No                   int64          `json:"no"`
		NoCopyrightRcmd      interface{}    `json:"noCopyrightRcmd"`
		OriginCoverType      int64          `json:"originCoverType"`
		OriginSongSimpleData interface{}    `json:"originSongSimpleData"`
		Pop                  float64        `json:"pop"`
		Privilege            struct {
			ChargeInfoList []struct {
				ChargeMessage interface{} `json:"chargeMessage"`
				ChargeType    int64       `json:"chargeType"`
				ChargeUrl     interface{} `json:"chargeUrl"`
				Rate          int64       `json:"rate"`
			} `json:"chargeInfoList"`
			Cp                 int64  `json:"cp"`
			Cs                 bool   `json:"cs"`
			Dl                 int64  `json:"dl"`
			DlLevel            string `json:"dlLevel"`
			DownloadMaxBrLevel string `json:"downloadMaxBrLevel"`
			DownloadMaxbr      int64  `json:"downloadMaxbr"`
			Fee                int64  `json:"fee"`
			Fl                 int64  `json:"fl"`
			FlLevel            string `json:"flLevel"`
			Flag               int64  `json:"flag"`
			FreeTrialPrivilege struct {
				CannotListenReason interface{} `json:"cannotListenReason"`
				ListenType         interface{} `json:"listenType"`
				PlayReason         interface{} `json:"playReason"`
				ResConsumable      bool        `json:"resConsumable"`
				UserConsumable     bool        `json:"userConsumable"`
			} `json:"freeTrialPrivilege"`
			Id             int64       `json:"id"`
			MaxBrLevel     string      `json:"maxBrLevel"`
			Maxbr          int64       `json:"maxbr"`
			PaidBigBang    bool        `json:"paidBigBang"`
			Payed          int64       `json:"payed"`
			Pc             interface{} `json:"pc"`
			Pl             int64       `json:"pl"`
			PlLevel        string      `json:"plLevel"`
			PlayMaxBrLevel string      `json:"playMaxBrLevel"`
			PlayMaxbr      int64       `json:"playMaxbr"`
			PreSell        bool        `json:"preSell"`
			RealPayed      int64       `json:"realPayed"`
			RightSource    int64       `json:"rightSource"`
			Rscl           interface{} `json:"rscl"`
			Sp             int64       `json:"sp"`
			St             int64       `json:"st"`
			Subp           int64       `json:"subp"`
			Toast          bool        `json:"toast"`
		} `json:"privilege"`
		Pst             int64          `json:"pst"`
		PublishTime     int64          `json:"publishTime"`
		Reason          *string        `json:"reason"`
		RecommendReason *string        `json:"recommendReason"`
		ResourceState   bool           `json:"resourceState"`
		Rt              *string        `json:"rt"`
		RtUrl           interface{}    `json:"rtUrl"`
		RtUrls          []interface{}  `json:"rtUrls"`
		Rtype           int64          `json:"rtype"`
		Rurl            interface{}    `json:"rurl"`
		SId             int64          `json:"s_id"`
		Single          int64          `json:"single"`
		SongJumpInfo    interface{}    `json:"songJumpInfo"`
		Sq              *types.Quality `json:"sq"`
		St              int64          `json:"st"`
		T               int64          `json:"t"`
		TagPicList      interface{}    `json:"tagPicList"`
		V               int64          `json:"v"`
		Version         int64          `json:"version"`
	} `json:"dailySongs"`
	MvResourceInfos interface{}   `json:"mvResourceInfos"`
	OrderSongs      []interface{} `json:"orderSongs"`
	// RecommendReasons 推荐原因说明
	RecommendReasons []struct {
		Reason    string      `json:"reason"`
		ReasonId  string      `json:"reasonId"`
		SongId    int64       `json:"songId"`
		TargetUrl interface{} `json:"targetUrl"`
	} `json:"recommendReasons"`
}

type RegisterAnonymousReq added in v0.1.4

type RegisterAnonymousReq struct {
	types.ReqCommon
	Username string `json:"username"` // 设备id如果为空则设备id为ncmctl
}

type RegisterAnonymousResp added in v0.1.4

type RegisterAnonymousResp struct {
	types.RespCommon[any]
}

type RequestData

type RequestData struct {
	Cookies []*http.Cookie
	Headers Headers
	Body    string
}

RequestData 传入请求数据类型

type SMSVerifyReq added in v0.2.0

type SMSVerifyReq struct {
	Cellphone string `json:"cellphone"`
	Captcha   string `json:"captcha"`
	CtCode    int64  `json:"ctcode"`
}

type SMSVerifyResp added in v0.2.0

type SMSVerifyResp struct {
	types.RespCommon[bool]
}

type SearchDefaultReq

type SearchDefaultReq struct{}

type SearchDefaultResp

type SearchDefaultResp struct {
	types.RespCommon[SearchDefaultRespData]
}

type SearchDefaultRespData

type SearchDefaultRespData struct {
	RefreshTime int `json:"refreshTime"`
	Keywords    []struct {
		Action       int         `json:"action"`
		Alg          string      `json:"alg"`
		BizQueryInfo string      `json:"bizQueryInfo"`
		Gap          int         `json:"gap"`
		ImageUrl     interface{} `json:"imageUrl"`
		LogInfo      interface{} `json:"logInfo"`
		Realkeyword  string      `json:"realkeyword"`
		SearchType   int         `json:"searchType"`
		ShowKeyword  string      `json:"showKeyword"`
		Source       interface{} `json:"source"`
		StyleKeyword struct {
			DescWord *string `json:"descWord"`
			KeyWord  string  `json:"keyWord"`
		} `json:"styleKeyword"`
		TrpId   interface{} `json:"trp_id"`
		TrpType interface{} `json:"trp_type"`
	} `json:"keywords"`
}

type SendSMSReq added in v0.2.0

type SendSMSReq struct {
	Cellphone string `json:"cellphone"`
	CtCode    int64  `json:"ctcode"`
	Secrete   string `json:"secrete"`
}

type SendSMSResp added in v0.2.0

type SendSMSResp struct {
	types.RespCommon[bool]
}

type SignHappyInfoReq

type SignHappyInfoReq struct{}

type SignHappyInfoResp

type SignHappyInfoResp struct {
	types.RespCommon[any]
}

type SignHappyInfoRespData

type SignHappyInfoRespData struct {
	Info struct {
		Author          string      `json:"author"`
		BackColor       string      `json:"backColor"`
		BtnPicUrl       interface{} `json:"btnPicUrl"`
		CurrentUserName string      `json:"currentUserName"`
		EndTime         int64       `json:"endTime"`
		HotComments     []struct {
			AuthorName string `json:"authorName"`
			Content    string `json:"content"`
		} `json:"hotComments"`
		Id                int64       `json:"id"`
		JumpText          interface{} `json:"jumpText"`
		JumpUrl           string      `json:"jumpUrl"`
		MainText          string      `json:"mainText"`
		NewPicUrl         string      `json:"newPicUrl"`
		NewSharePicUrl    string      `json:"newSharePicUrl"`
		Operator          interface{} `json:"operator"`
		PicUrl            string      `json:"picUrl"`
		QrCodeUrl         string      `json:"qrCodeUrl"`
		QrCodeWithLogoUrl string      `json:"qrCodeWithLogoUrl"`
		ResourceAuthor    string      `json:"resourceAuthor"`
		ResourceCover     string      `json:"resourceCover"`
		ResourceId        int64       `json:"resourceId"`
		ResourceName      string      `json:"resourceName"`
		ResourceType      int64       `json:"resourceType"`
		ResourceUrl       string      `json:"resourceUrl"`
		SharePicUrl       string      `json:"sharePicUrl"`
		SpecialJumpUrl    interface{} `json:"specialJumpUrl"`
		StartTime         int64       `json:"startTime"`
		Status            int64       `json:"status"`
		Type              int64       `json:"type"`
		VideoHeight       int64       `json:"videoHeight"`
		VideoStrId        interface{} `json:"videoStrId"`
		VideoWidth        int64       `json:"videoWidth"`
	} `json:"info"`
}

type SignInProgressReq

type SignInProgressReq struct {
	ModuleId string `json:"moduleId"` // 默认: 1207signin-1207signin
}

type SignInProgressResp

type SignInProgressResp struct {
	types.RespCommon[SignInProgressRespData]
}

type SignInProgressRespData

type SignInProgressRespData struct {
	// StartTime 时间戳 eg:1638806400000
	StartTime int64 `json:"startTime"`
	// EndTime 时间戳 eg:4102415999000
	EndTime int64
	// Records 记录 YunBeiSignIn(https://music.163.com/weapi/point/dailyTask) 签到信息情况
	Records []struct {
		// Day 签到日期 eg:2024-06-21
		Day string `json:"day"`
		// Signed true:已签到
		Signed bool `json:"signed"`
	} `json:"records"`
	Stats []SignInProgressRespDataStats `json:"stats"`
	// Today 今天签到情况
	Today struct {
		TodaySignedIn bool `json:"todaySignedIn"`
		// TodayStats 里面包含不同类型的签到,连续签到,今日签到等情况,也就是ACCUMULATE、CURRENT_INDEX、CONTINUOUS。
		TodayStats []SignInProgressRespDataStats `json:"todayStats"`
	} `json:"today"`
}

type SignInProgressRespDataStats

type SignInProgressRespDataStats struct {
	// CalcType 计算方式 ACCUMULATE:累计签到 CURRENT_INDEX:本周/本月签到情况?待确定 CONTINUOUS:连续签到
	CalcType            string                              `json:"calcType"`
	CurrentProgress     int64                               `json:"currentProgress"`
	CurrentSignDesc     interface{}                         `json:"currentSignDesc"`
	Description         string                              `json:"description"`
	EndTime             int64                               `json:"endTime"`
	Id                  int64                               `json:"id"`
	MaxProgressReachDay string                              `json:"maxProgressReachDay"`
	MaxProgressReached  int64                               `json:"maxProgressReached"`
	Prizes              []SignInProgressRespDataStatsPrizes `json:"prizes"`
	RepeatType          string                              `json:"repeatType"` // RepeatType 重复类型 eg:FOUR_WEEKS、NEVER
	StartDay            string                              `json:"startDay"`
	StartTime           int64                               `json:"startTime"`
}

type SignInProgressRespDataStatsPrizes

type SignInProgressRespDataStatsPrizes struct {
	Amount           int64  `json:"amount"`
	Description      string `json:"description"`
	Name             string `json:"name"`
	Obtained         bool   `json:"obtained"`
	ObtainedImageUrl string `json:"obtainedImageUrl"`
	PrizeImageUrl    string `json:"prizeImageUrl"`
	Progress         int64  `json:"progress"`
	Type             string `json:"type"`
	Url              string `json:"url"`
}

type SignInReq

type SignInReq struct {
	// Type 签到类型 0:安卓(默认) 1:web/PC
	Type int64 `json:"type"`
}

type SignInResp

type SignInResp struct {
	// Code 错误码 -2:重复签到 200:成功(会有例外会出现“功能暂不支持”) 301:未登录
	types.RespCommon[any]
	// Point 签到获得积分奖励数量,目前签到规则已经更改变成连续几天签到才能拿获取奖励
	Point int64 `json:"point"`
}

SignInResp 签到返回

type SongDetailReq

type SongDetailReq struct {
	C []SongDetailReqList `json:"c"`
}

type SongDetailReqList

type SongDetailReqList struct {
	Id string `json:"id"`
	V  int64  `json:"v"`
}

type SongDetailResp

type SongDetailResp struct {
	types.RespCommon[any]
	Songs      []SongDetailRespSongs `json:"songs"`
	Privileges []types.Privileges    `json:"privileges"`
}

SongDetailResp .

type SongDetailRespSongs

type SongDetailRespSongs struct {
	// Name 歌曲标题
	Name string `json:"name"`
	// Id 歌曲ID
	Id int64 `json:"id"`
	// Pst 功能未知
	Pst int64 `json:"pst"`
	// T
	// 0: 一般类型
	// 1: 通过云盘上传的音乐,网易云不存在公开对应
	//  如果没有权限将不可用,除了歌曲长度以外大部分信息都为null。
	//  可以通过 `/api/v1/playlist/manipulate/tracks` 接口添加到播放列表。
	//  如果添加到“我喜欢的音乐”,则仅自己可见,除了长度意外各种信息均为未知,且无法播放。
	//  如果添加到一般播放列表,虽然返回code 200,但是并没有效果。
	//  网页端打开会看到404画面。
	//  属于这种歌曲的例子: https://music.163.com/song/1345937107
	// 2: 通过云盘上传的音乐,网易云存在公开对应
	//  如果没有权限则只能看到信息,但无法直接获取到文件。
	//	可以通过 `/api/v1/playlist/manipulate/tracks` 接口添加到播放列表。
	//	如果添加到“我喜欢的音乐”,则仅自己可见,且无法播放。
	//	如果添加到一般播放列表,则自己会看到显示“云盘文件”,且云盘会多出其对应的网易云公开歌曲。其他人看到的是其对应的网易云公开歌曲。
	//	网页端打开会看到404画面。
	//	属于这种歌曲的例子: https://music.163.com/song/435005015
	T int64 `json:"t"`
	// Ar 歌手列表
	Ar []types.Artist `json:"ar"`
	// Alia 别名列表,第一个别名会被显示作副标题 例子: https://music.163.com/song/536623501
	Alia []interface{} `json:"alia"`
	// Pop 小数,常取[0.0, 100.0]中离散的几个数值, 表示歌曲热度
	Pop float64 `json:"pop"`
	// St 未知
	St int64 `json:"st"`
	// Rt None、空白字串、或者类似`600902000007902089`的字符串,功能未知
	Rt string `json:"rt"`
	// Fee 费用情况 0:免费 1:二元购买单曲 4:购买专辑 8:低音质免费 fee为1或8的歌曲均可单独购买2元单曲
	Fee int64 `json:"fee"`
	// V 常为[1, ?]任意数字, 代表歌曲当前信息版本
	V int64 `json:"v"`
	// Crbt None或字符串表示的十六进制,功能未知
	Crbt interface{} `json:"crbt"`
	// Cf 空白字串或者None,功能未知
	Cf string `json:"cf"`
	// Al Album, 专辑,如果是DJ节目(dj_type != 0)或者无专辑信息(single == 1),则专辑id为0
	Al types.Album `json:"al"`
	// Dt 歌曲时长
	Dt int64 `json:"dt"`
	// 音质信息
	types.Qualities
	// A 常为None,功能未知
	A interface{} `json:"a"`
	// Cd None或如"04", "1/2", "3", "null"的字符串,表示歌曲属于专辑中第几张CD,对应音频文件的Tag
	Cd string `json:"cd"`
	// No 表示歌曲属于CD中第几曲, 0表示没有这个字段, 对应音频文件的Tag
	No int64 `json:"no"`
	// RtUrl 常为None, 功能未知
	RtUrl interface{} `json:"rtUrl"`
	// Ftype 未知
	Ftype int64 `json:"ftype"`
	// RtUrls 常为空列表,功能未知
	RtUrls []interface{} `json:"rtUrls"`
	// DjId 0:不是DJ节目 其他:是DJ节目,表示DJ ID
	DjId int64 `json:"djId"`
	// Copyright 0, 1, 2 功能未知
	Copyright int64 `json:"copyright"`
	// SId 对于t == 2的歌曲,表示匹配到的公开版本歌曲ID
	SId int64 `json:"s_id"`
	// Mark 一些歌曲属性,用按位与操作获取对应位置的值
	// 8192:立体声?(不是很确定)
	// 131072:纯音乐
	// 262144 支持 杜比全景声(Dolby Atmos)
	// 1048576:脏标E
	// 17179869184 支持 Hi-Res
	// 其他未知,理论上有从1到2^63共64种不同的信息
	// 专辑信息的mark字段也同理 例子:id 1859245776和1859306637为同一首歌,前者 mark & 1048576 == 1048576,后者 mark & 1048576 == 0,因此前者是脏版
	Mark int64 `json:"mark"`
	// OriginCoverType 0:未知 1:原曲 2:翻唱
	OriginCoverType int64 `json:"originCoverType"`
	// OriginSongSimpleData 对于翻唱曲,可选提供原曲简单格式的信息
	OriginSongSimpleData interface{} `json:"originSongSimpleData"`
	// SongMeiZuData 功能未知
	TagPicList interface{} `json:"tagPicList"`
	// ResourceState 未知
	ResourceState bool `json:"resourceState"`
	// Version 什么版本?
	Version int64 `json:"version"`
	// SongJumpInfo 功能未知
	SongJumpInfo interface{} `json:"songJumpInfo"`
	// EntranceCrash 功能未知
	EntertainmentTags interface{} `json:"entertainmentTags"`
	// AwardTags 功能未知
	AwardTags interface{} `json:"awardTags"`
	// Single 0:有专辑信息或者是DJ节目 1:未知专辑
	Single int64 `json:"single"`
	// NoCopyrightRcmd 不能判断出歌曲有无版权
	NoCopyrightRcmd interface{} `json:"noCopyrightRcmd"`
	// Mv 非零表示有MV ID
	Mv int64 `json:"mv"`
	// Rurl 常为None,功能未知
	Rurl interface{} `json:"rurl"`
	// Mst 偶尔为0, 常为9,功能未知
	Mst int64 `json:"mst"`
	// Cp 未知
	Cp int64 `json:"cp"`
	// Rtype 常为0,功能未知
	Rtype int64 `json:"rtype"`
	// PublishTime 毫秒为单位的Unix时间戳
	PublishTime int64 `json:"publishTime"`
}

SongDetailRespSongs see: https://github.com/Binaryify/NeteaseCloudMusicApi/issues/1121#issuecomment-774438040 https://docs-neteasecloudmusicapi.vercel.app/docs/#/?id=%e8%8e%b7%e5%8f%96%e6%ad%8c%e6%9b%b2%e8%af%a6%e6%83%85 https://gitlab.com/Binaryify/neteasecloudmusicapi/-/commit/0dab5e55bad90fb427ae7881a9275aceade1f80b

type SongDownloadUrlReq

type SongDownloadUrlReq struct {
	Id string `json:"id"`
	Br string `json:"br"`
}

type SongDownloadUrlResp

type SongDownloadUrlResp struct {
	types.RespCommon[SongDownloadUrlRespData]
}

type SongDownloadUrlRespData

type SongDownloadUrlRespData struct {
	Br                     int64                        `json:"br"`
	CanExtend              bool                         `json:"canExtend"`
	ChannelLayout          interface{}                  `json:"channelLayout"`
	Code                   int64                        `json:"code"` // 状态码 200:正常 -103:貌似也不能下载 -105:需要付费购买专辑 -110:变灰歌曲不能下载播放
	EffectTypes            interface{}                  `json:"effectTypes"`
	EncodeType             string                       `json:"encodeType"`
	Expi                   int64                        `json:"expi"`
	Fee                    int64                        `json:"fee"`
	Flag                   int64                        `json:"flag"`
	FreeTimeTrialPrivilege types.FreeTimeTrialPrivilege `json:"freeTimeTrialPrivilege"`
	FreeTrialInfo          types.FreeTrialInfo          `json:"freeTrialInfo"`
	FreeTrialPrivilege     types.FreeTrialPrivilege     `json:"freeTrialPrivilege"`
	Gain                   float64                      `json:"gain"`
	Id                     int64                        `json:"id"`
	Level                  string                       `json:"level"`
	LevelConfuse           interface{}                  `json:"levelConfuse"`
	Md5                    string                       `json:"md5"`
	Message                interface{}                  `json:"message"`
	Payed                  int64                        `json:"payed"`
	Peak                   float64                      `json:"peak"`
	PodcastCtrp            interface{}                  `json:"podcastCtrp"`
	RightSource            int64                        `json:"rightSource"`
	Size                   int64                        `json:"size"`
	Time                   int64                        `json:"time"`
	Type                   string                       `json:"type"`
	Uf                     interface{}                  `json:"uf"`
	Url                    string                       `json:"url"`
	UrlSource              int64                        `json:"urlSource"`
}

type SongDownloadUrlV1Req

type SongDownloadUrlV1Req struct {
	types.ReqCommon
	Ids         string      `json:"id"`          // 歌曲id
	Level       types.Level `json:"level"`       // 音乐质量
	ImmerseType string      `json:"immerseType"` // 只有Level为sky时生效(可能还有其他类型)
}

type SongDownloadUrlV1Resp

type SongDownloadUrlV1Resp struct {
	types.RespCommon[SongDownloadUrlV1RespData]
}

type SongDownloadUrlV1RespData

type SongDownloadUrlV1RespData struct {
	Br                     int64                        `json:"br"`
	CanExtend              bool                         `json:"canExtend"`
	ChannelLayout          interface{}                  `json:"channelLayout"`
	Code                   int64                        `json:"code"`
	EffectTypes            interface{}                  `json:"effectTypes"`
	EncodeType             string                       `json:"encodeType"`
	Expi                   int64                        `json:"expi"`
	Fee                    int64                        `json:"fee"`
	Flag                   int64                        `json:"flag"`
	FreeTimeTrialPrivilege types.FreeTimeTrialPrivilege `json:"freeTimeTrialPrivilege"`
	FreeTrialInfo          types.FreeTrialInfo          `json:"freeTrialInfo"`
	FreeTrialPrivilege     types.FreeTrialPrivilege     `json:"freeTrialPrivilege"`
	Gain                   float64                      `json:"gain"`
	Id                     int64                        `json:"id"`
	Level                  string                       `json:"level"`
	LevelConfuse           interface{}                  `json:"levelConfuse"`
	Md5                    string                       `json:"md5"`
	Message                interface{}                  `json:"message"`
	Payed                  int64                        `json:"payed"`
	Peak                   float64                      `json:"peak"`
	PodcastCtrp            interface{}                  `json:"podcastCtrp"`
	RightSource            int64                        `json:"rightSource"`
	Size                   int64                        `json:"size"`
	Time                   int64                        `json:"time"`
	Type                   string                       `json:"type"`
	Uf                     interface{}                  `json:"uf"`
	Url                    string                       `json:"url"`
	UrlSource              int64                        `json:"urlSource"`
}

type SongDynamicCoverReq added in v0.4.0

type SongDynamicCoverReq struct {
	SongId string `json:"songId"`
}

type SongDynamicCoverResp added in v0.4.0

type SongDynamicCoverResp struct {
	types.RespCommon[any]
}

type SongLyricsMarkReq added in v0.4.0

type SongLyricsMarkReq struct {
	SongId  string `json:"songId"`
	Type    string `json:"type"` // 0: 歌词 1: 翻译
	Version string `json:"version"`
}

type SongLyricsMarkResp added in v0.4.0

type SongLyricsMarkResp struct {
	types.RespCommon[any]
}

type SongMusicQualityReq

type SongMusicQualityReq struct {
	SongId string `json:"songId"`
}

type SongMusicQualityResp

type SongMusicQualityResp struct {
	types.RespCommon[SongMusicQualityRespData]
	Success bool
	Error   bool
}

type SongMusicQualityRespData

type SongMusicQualityRespData struct {
	// Db 未知通常为null
	Db any `json:"db"`
	// SongId 歌曲id
	SongId int64 `json:"songId"`
	types.Qualities
}

type SongPlayerReq

type SongPlayerReq struct {
	types.ReqCommon
	Ids types.IntsString `json:"ids"` // 歌曲id
	Br  string           `json:"br"`  // 音乐bit率 例如:128000 320000
}

SongPlayerReq

{
   "ids": "[1955097630]",
   "br": "128000",
   "csrf_token": "77bf3a5074699038504234d63d68d917"
}

type SongPlayerResp

type SongPlayerResp struct {
	types.RespCommon[[]SongPlayerRespData]
}

type SongPlayerRespData added in v0.3.2

type SongPlayerRespData struct {
	Id                     int64                        `json:"id"`
	Url                    string                       `json:"url"`
	Br                     int64                        `json:"br"`
	Size                   int64                        `json:"size"`
	Md5                    string                       `json:"md5"`
	Code                   int64                        `json:"code"` // 歌曲状态 200:正常 404:歌曲下架(也就是变灰歌曲)
	Expi                   int64                        `json:"expi"`
	Type                   string                       `json:"type"` // 类型eg: mp3、FLAC
	Gain                   float64                      `json:"gain"`
	Peak                   float64                      `json:"peak"`
	Fee                    int64                        `json:"fee"`
	Uf                     interface{}                  `json:"uf"`
	Payed                  int64                        `json:"payed"`
	Flag                   int64                        `json:"flag"`
	CanExtend              bool                         `json:"canExtend"`
	FreeTrialInfo          types.FreeTrialInfo          `json:"freeTrialInfo"`
	Level                  string                       `json:"level"` // 通常所说的音质水平 eg: standard、exhigh、higher、lossless、hires
	EncodeType             string                       `json:"encodeType"`
	ChannelLayout          interface{}                  `json:"channelLayout"`
	FreeTrialPrivilege     types.FreeTrialPrivilege     `json:"freeTrialPrivilege"`
	FreeTimeTrialPrivilege types.FreeTimeTrialPrivilege `json:"freeTimeTrialPrivilege"`
	UrlSource              int64                        `json:"urlSource"`
	RightSource            int64                        `json:"rightSource"`
	PodcastCtrp            interface{}                  `json:"podcastCtrp"`
	EffectTypes            interface{}                  `json:"effectTypes"`
	Time                   int64                        `json:"time"` // 音乐时长,单位毫秒
	Message                interface{}                  `json:"message"`
}

type SongPlayerRespV1Data

type SongPlayerRespV1Data struct {
	Id                     int64                        `json:"id"`   // 歌曲id
	Url                    string                       `json:"url"`  // 歌曲资源url有时效性
	Br                     int64                        `json:"br"`   // 码率
	Size                   int64                        `json:"size"` // 文件大小单位字节
	Md5                    string                       `json:"md5"`  // 文件MD5值
	Code                   int64                        `json:"code"` // 歌曲状态 200:正常 404:歌曲下架(也就是变灰歌曲)
	Expi                   int64                        `json:"expi"` // 可访问url的过期时间,目前为1200秒
	Type                   string                       `json:"type"` // 类型eg: mp3、FLAC
	Gain                   float64                      `json:"gain"`
	Peak                   float64                      `json:"peak"`
	Fee                    int64                        `json:"fee"`
	Uf                     interface{}                  `json:"uf"`
	Payed                  int64                        `json:"payed"`
	Flag                   int64                        `json:"flag"`
	CanExtend              bool                         `json:"canExtend"`
	FreeTrialInfo          types.FreeTrialInfo          `json:"freeTrialInfo"`
	Level                  string                       `json:"level"`      // 音质水平 see: types.Level
	EncodeType             string                       `json:"encodeType"` // eg: mp3
	ChannelLayout          interface{}                  `json:"channelLayout"`
	FreeTrialPrivilege     types.FreeTrialPrivilege     `json:"freeTrialPrivilege"`
	FreeTimeTrialPrivilege types.FreeTimeTrialPrivilege `json:"freeTimeTrialPrivilege"`
	UrlSource              int64                        `json:"urlSource"`
	RightSource            int64                        `json:"rightSource"`
	PodcastCtrp            interface{}                  `json:"podcastCtrp"`
	EffectTypes            interface{}                  `json:"effectTypes"`
	Time                   int64                        `json:"time"` // 音乐时长,单位毫秒
	Message                interface{}                  `json:"message"`
	LevelConfuse           interface{}                  `json:"levelConfuse"`
}

type SongPlayerV1Req

type SongPlayerV1Req struct {
	types.ReqCommon
	Ids         types.IntsString `json:"ids"`         // 歌曲id eg: 2016588459_1289504343 下滑线前位歌曲id, todo: 后位目前未知,不过不传下划线后面的内容也是可以正常返回得
	Level       types.Level      `json:"level"`       // 音乐质量
	EncodeType  string           `json:"encodeType"`  // 音乐格式 eg: mp3、aac、flac(可能还有其他类型) 作用未知
	ImmerseType string           `json:"immerseType"` // 只有Level为sky时生效(可能还有其他类型)
	TrialMode   string           `json:"trialMode"`   // 试听模式 36:(貌似是私人漫游场景) 还有其他模式待探索
}

type SongPlayerV1Resp

type SongPlayerV1Resp struct {
	types.RespCommon[[]SongPlayerRespV1Data]
}

type TokenRefreshReq

type TokenRefreshReq struct {
	types.ReqCommon
}

type TokenRefreshResp

type TokenRefreshResp struct {
	types.RespCommon[any]
	BizCode string `json:"bizCode"` // 201:貌似刷新成功 400:貌似刷新不成功 504:貌似token已经过期了或者无效了
}

type TopListReq

type TopListReq struct{}

type TopListResp

type TopListResp struct {
	types.RespCommon[any]
	List []TopListRespList `json:"list"`
}

type TopListRespList

type TopListRespList struct {
	ToplistType           string        `json:"ToplistType,omitempty"`
	AdType                int           `json:"adType"`
	AlgType               interface{}   `json:"algType"`
	Anonimous             bool          `json:"anonimous"`
	Artists               interface{}   `json:"artists"`
	BackgroundCoverId     int           `json:"backgroundCoverId"`
	BackgroundCoverUrl    interface{}   `json:"backgroundCoverUrl"`
	CloudTrackCount       int           `json:"cloudTrackCount"`
	CommentThreadId       string        `json:"commentThreadId"`
	CoverImageUrl         interface{}   `json:"coverImageUrl"`
	CoverImgId            int64         `json:"coverImgId"`
	CoverImgIdStr         string        `json:"coverImgId_str"`
	CoverImgUrl           string        `json:"coverImgUrl"`
	CoverText             interface{}   `json:"coverText"`
	CreateTime            int64         `json:"createTime"`
	Creator               interface{}   `json:"creator"`
	Description           *string       `json:"description"`
	EnglishTitle          interface{}   `json:"englishTitle"`
	HighQuality           bool          `json:"highQuality"`
	IconImageUrl          interface{}   `json:"iconImageUrl"`
	Id                    int64         `json:"id"`
	Name                  string        `json:"name"`
	NewImported           bool          `json:"newImported"`
	OpRecommend           bool          `json:"opRecommend"`
	Ordered               bool          `json:"ordered"`
	PlayCount             int64         `json:"playCount"`
	Privacy               int           `json:"privacy"`
	RecommendInfo         interface{}   `json:"recommendInfo"`
	SocialPlaylistCover   interface{}   `json:"socialPlaylistCover"`
	SpecialType           int           `json:"specialType"`
	Status                int           `json:"status"`
	Subscribed            interface{}   `json:"subscribed"`
	SubscribedCount       int           `json:"subscribedCount"`
	Subscribers           []interface{} `json:"subscribers"`
	Tags                  []string      `json:"tags"`
	TitleImage            int           `json:"titleImage"`
	TitleImageUrl         interface{}   `json:"titleImageUrl"`
	TotalDuration         int           `json:"totalDuration"`
	TrackCount            int           `json:"trackCount"`
	TrackNumberUpdateTime int64         `json:"trackNumberUpdateTime"`
	TrackUpdateTime       int64         `json:"trackUpdateTime"`
	Tracks                interface{}   `json:"tracks"`
	TsSongCount           int           `json:"tsSongCount"`
	UpdateFrequency       string        `json:"updateFrequency"`
	UpdateTime            int64         `json:"updateTime"`
	UserId                int64         `json:"userId"`
}

type TopNewSongsReq

type TopNewSongsReq struct {
	AreaId AreaId `json:"areaId"`
	Total  bool   `json:"total"`
}

type TopNewSongsResp

type TopNewSongsResp struct {
	types.RespCommon[[]TopNewSongsRespData]
}

type TopNewSongsRespData

type TopNewSongsRespData struct {
	Album struct {
		Alias  []string `json:"alias"`
		Artist struct {
			AlbumSize   int           `json:"albumSize"`
			Alias       []interface{} `json:"alias"`
			BriefDesc   string        `json:"briefDesc"`
			Followed    bool          `json:"followed"`
			Id          int           `json:"id"`
			Img1V1Id    int64         `json:"img1v1Id"`
			Img1V1IdStr string        `json:"img1v1Id_str"`
			Img1V1Url   string        `json:"img1v1Url"`
			MusicSize   int           `json:"musicSize"`
			Name        string        `json:"name"`
			PicId       int           `json:"picId"`
			PicUrl      string        `json:"picUrl"`
			TopicPerson int           `json:"topicPerson"`
			Trans       string        `json:"trans"`
		} `json:"artist"`
		Artists []struct {
			AlbumSize   int           `json:"albumSize"`
			Alias       []interface{} `json:"alias"`
			BriefDesc   string        `json:"briefDesc"`
			Followed    bool          `json:"followed"`
			Id          int           `json:"id"`
			Img1V1Id    int64         `json:"img1v1Id"`
			Img1V1IdStr string        `json:"img1v1Id_str"`
			Img1V1Url   string        `json:"img1v1Url"`
			MusicSize   int           `json:"musicSize"`
			Name        string        `json:"name"`
			PicId       int           `json:"picId"`
			PicUrl      string        `json:"picUrl"`
			TopicPerson int           `json:"topicPerson"`
			Trans       string        `json:"trans"`
		} `json:"artists"`
		BlurPicUrl      string      `json:"blurPicUrl"`
		BriefDesc       string      `json:"briefDesc"`
		CommentThreadId string      `json:"commentThreadId"`
		Company         string      `json:"company"`
		CompanyId       int         `json:"companyId"`
		CopyrightId     int         `json:"copyrightId"`
		Description     string      `json:"description"`
		Id              int         `json:"id"`
		Name            string      `json:"name"`
		OnSale          bool        `json:"onSale"`
		Paid            bool        `json:"paid"`
		Pic             int64       `json:"pic"`
		PicId           int64       `json:"picId"`
		PicIdStr        string      `json:"picId_str"`
		PicUrl          string      `json:"picUrl"`
		PublishTime     int64       `json:"publishTime"`
		Size            int         `json:"size"`
		Songs           interface{} `json:"songs"`
		Status          int         `json:"status"`
		SubType         string      `json:"subType"`
		Tags            string      `json:"tags"`
		Type            string      `json:"type"`
		TransNames      []string    `json:"transNames,omitempty"`
	} `json:"album"`
	AlbumData interface{} `json:"albumData"`
	Alias     []string    `json:"alias"`
	Artists   []struct {
		AlbumSize   int           `json:"albumSize"`
		Alias       []interface{} `json:"alias"`
		BriefDesc   string        `json:"briefDesc"`
		Followed    bool          `json:"followed"`
		Id          int           `json:"id"`
		Img1V1Id    int64         `json:"img1v1Id"`
		Img1V1IdStr string        `json:"img1v1Id_str"`
		Img1V1Url   string        `json:"img1v1Url"`
		MusicSize   int           `json:"musicSize"`
		Name        string        `json:"name"`
		PicId       int           `json:"picId"`
		PicUrl      string        `json:"picUrl"`
		TopicPerson int           `json:"topicPerson"`
		Trans       string        `json:"trans"`
	} `json:"artists"`
	Audition        interface{}  `json:"audition"`
	BMusic          MusicQuality `json:"bMusic"`
	CommentThreadId string       `json:"commentThreadId"`
	CopyFrom        string       `json:"copyFrom"`
	CopyrightId     int          `json:"copyrightId"`
	Crbt            interface{}  `json:"crbt"`
	DayPlays        int          `json:"dayPlays"`
	Disc            string       `json:"disc"`
	Duration        int          `json:"duration"`
	Exclusive       bool         `json:"exclusive"`
	Fee             int          `json:"fee"`
	Ftype           int          `json:"ftype"`
	HMusic          MusicQuality `json:"hMusic"`
	HearTime        int          `json:"hearTime"`
	Id              int64        `json:"id"`
	LMusic          MusicQuality `json:"lMusic"`
	MMusic          MusicQuality `json:"mMusic"`
	Mp3Url          string       `json:"mp3Url"`
	Mvid            int          `json:"mvid"`
	Name            string       `json:"name"`
	No              int          `json:"no"`
	PlayedNum       int          `json:"playedNum"`
	Popularity      float64      `json:"popularity"`
	Position        int          `json:"position"`
	Privilege       struct {
		ChargeInfoList []struct {
			ChargeMessage interface{} `json:"chargeMessage"`
			ChargeType    int         `json:"chargeType"`
			ChargeUrl     interface{} `json:"chargeUrl"`
			Rate          int         `json:"rate"`
		} `json:"chargeInfoList"`
		Cp                 int    `json:"cp"`
		Cs                 bool   `json:"cs"`
		Dl                 int    `json:"dl"`
		DlLevel            string `json:"dlLevel"`
		DownloadMaxBrLevel string `json:"downloadMaxBrLevel"`
		DownloadMaxbr      int    `json:"downloadMaxbr"`
		Fee                int    `json:"fee"`
		Fl                 int    `json:"fl"`
		FlLevel            string `json:"flLevel"`
		Flag               int    `json:"flag"`
		FreeTrialPrivilege struct {
			CannotListenReason interface{} `json:"cannotListenReason"`
			ListenType         interface{} `json:"listenType"`
			PlayReason         interface{} `json:"playReason"`
			ResConsumable      bool        `json:"resConsumable"`
			UserConsumable     bool        `json:"userConsumable"`
		} `json:"freeTrialPrivilege"`
		Id             int64       `json:"id"`
		MaxBrLevel     string      `json:"maxBrLevel"`
		Maxbr          int         `json:"maxbr"`
		Payed          int         `json:"payed"`
		Pl             int         `json:"pl"`
		PlLevel        string      `json:"plLevel"`
		PlayMaxBrLevel string      `json:"playMaxBrLevel"`
		PlayMaxbr      int         `json:"playMaxbr"`
		PreSell        bool        `json:"preSell"`
		RightSource    int         `json:"rightSource"`
		Rscl           interface{} `json:"rscl"`
		Sp             int         `json:"sp"`
		St             int         `json:"st"`
		Subp           int         `json:"subp"`
		Toast          bool        `json:"toast"`
	} `json:"privilege"`
	RelatedVideo interface{} `json:"relatedVideo"`
	Ringtone     string      `json:"ringtone"`
	RtUrl        interface{} `json:"rtUrl"`
	RtUrls       interface{} `json:"rtUrls"`
	Rtype        int         `json:"rtype"`
	Rurl         interface{} `json:"rurl"`
	Score        int         `json:"score"`
	St           int         `json:"st"`
	Starred      bool        `json:"starred"`
	StarredNum   int         `json:"starredNum"`
	Status       int         `json:"status"`
	VideoInfo    interface{} `json:"videoInfo"`
	TransNames   []string    `json:"transNames,omitempty"`
}

type TransUser

type TransUser struct {
	Id       int64  `json:"id"`
	Status   int64  `json:"status"`
	Demand   int64  `json:"demand"`
	UserId   int64  `json:"userid"`
	Nickname string `json:"nickname"`
	Uptime   int64  `json:"uptime"` // 1571647920128
}

type VipCashierInfoData added in v0.3.0

type VipCashierInfoData struct {
	Vip  VipCashierInfoDataVip  `json:"vip"`
	User VipCashierInfoDataUser `json:"user"`
}

type VipCashierInfoDataUser added in v0.3.0

type VipCashierInfoDataUser struct {
	Account struct {
		Id                 int64  `json:"id"`
		UserName           string `json:"userName"`
		Type               int64  `json:"type"`
		Status             int64  `json:"status"`
		WhitelistAuthority int64  `json:"whitelistAuthority"`
		CreateTime         int64  `json:"createTime"`
		TokenVersion       int64  `json:"tokenVersion"`
		Ban                int64  `json:"ban"`
		BaoyueVersion      int64  `json:"baoyueVersion"`
		DonateVersion      int64  `json:"donateVersion"`
		VipType            int64  `json:"vipType"`
		IsAnonimousUser    bool   `json:"isAnonimousUser"`
		AdjustSongVersion  int64  `json:"adjustSongVersion"`
		ViptypeVersion     int64  `json:"viptypeVersion"`
		IsPaidFee          bool   `json:"isPaidFee"`
	} `json:"account"`
	Profile struct {
		UserId            int64       `json:"userId"`
		UserType          int64       `json:"userType"`
		Nickname          string      `json:"nickname"`
		AvatarImgId       int64       `json:"avatarImgId"`
		AvatarUrl         string      `json:"avatarUrl"`
		BackgroundImgId   int64       `json:"backgroundImgId"`
		BackgroundUrl     string      `json:"backgroundUrl"`
		Signature         string      `json:"signature"`
		CreateTime        int64       `json:"createTime"`
		UserName          string      `json:"userName"`
		AccountType       int64       `json:"accountType"`
		ShortUserName     string      `json:"shortUserName"`
		Birthday          int64       `json:"birthday"`
		Authority         int64       `json:"authority"`
		Gender            int64       `json:"gender"`
		AccountStatus     int64       `json:"accountStatus"`
		Province          int64       `json:"province"`
		City              int64       `json:"city"`
		AuthStatus        int64       `json:"authStatus"`
		Description       interface{} `json:"description"`
		DetailDescription interface{} `json:"detailDescription"`
		IsDefaultAvatar   bool        `json:"isDefaultAvatar"`
		ExpertTags        interface{} `json:"expertTags"`
		Experts           interface{} `json:"experts"`
		DjStatus          int64       `json:"djStatus"`
		LocationStatus    int64       `json:"locationStatus"`
		VipType           int64       `json:"vipType"`
		IsFollowed        bool        `json:"isFollowed"`
		IsMutual          bool        `json:"isMutual"`
		IsAuthenticated   bool        `json:"isAuthenticated"`
		LastLoginTime     int64       `json:"lastLoginTime"`
		LastLoginIP       string      `json:"lastLoginIP"`
		RemarkName        interface{} `json:"remarkName"`
	} `json:"profile"`
}

type VipCashierInfoDataVip added in v0.3.0

type VipCashierInfoDataVip struct {
	RedVipLevelIcon            string  `json:"redVipLevelIcon"`
	RedVipLeve                 int64   `json:"redVipLeve"`
	UserVipStatus              []int64 `json:"userVipStatus"`
	RedVipAnnualCount          int64   `json:"redVipAnnualCount"`
	RedVipAnnualRequiredMonths int64   `json:"redVipAnnualRequiredMonths"`
	Associator                 struct {
		VipCode         int64  `json:"vipCode"`
		ExpireTime      int64  `json:"expireTime"`
		IconUrl         string `json:"iconUrl"`
		DynamicIconUrl  string `json:"dynamicIconUrl"`
		VipLevel        int64  `json:"vipLevel"`
		IsSignDeduct    bool   `json:"isSignDeduct"`
		IsSignIap       bool   `json:"isSignIap"`
		IsSignIapDeduct bool   `json:"isSignIapDeduct"`
		IsSign          bool   `json:"isSign"`
	} `json:"associator"`
	MusicPackage struct {
		VipCode         int64  `json:"vipCode"`
		ExpireTime      int64  `json:"expireTime"`
		IconUrl         string `json:"iconUrl"`
		DynamicIconUrl  string `json:"dynamicIconUrl"`
		VipLevel        int64  `json:"vipLevel"`
		IsSignDeduct    bool   `json:"isSignDeduct"`
		IsSignIap       bool   `json:"isSignIap"`
		IsSignIapDeduct bool   `json:"isSignIapDeduct"`
		IsSign          bool   `json:"isSign"`
	} `json:"musicPackage"`
	RedVipDynamicIconUrl  interface{} `json:"redVipDynamicIconUrl"`
	RedVipDynamicIconUrl2 interface{} `json:"redVipDynamicIconUrl2"`
	Redplus               struct {
		VipCode         int64       `json:"vipCode"`
		ExpireTime      int64       `json:"expireTime"`
		IconUrl         string      `json:"iconUrl"`
		DynamicIconUrl  interface{} `json:"dynamicIconUrl"`
		VipLevel        int64       `json:"vipLevel"`
		IsSignDeduct    bool        `json:"isSignDeduct"`
		IsSignIap       bool        `json:"isSignIap"`
		IsSignIapDeduct bool        `json:"isSignIapDeduct"`
		IsSign          bool        `json:"isSign"`
	} `json:"redplus"`
}

type VipCashierInfoReq added in v0.3.0

type VipCashierInfoReq struct {
	types.ReqCommon
}

type VipCashierInfoResp added in v0.3.0

type VipCashierInfoResp struct {
	types.RespCommon[VipCashierInfoData]
}

type VipClientInfoReq

type VipClientInfoReq struct {
	UserId string `json:"userId"` // 为空默认为当前登录用户
}

type VipClientInfoResp

type VipClientInfoResp struct {
	types.RespCommon[VipClientInfoRespData]
}

type VipClientInfoRespData

type VipClientInfoRespData struct {
	AlbumVip struct {
		DynamicIconUrl  interface{} `json:"dynamicIconUrl"`
		ExpireTime      int64       `json:"expireTime"`
		IconUrl         interface{} `json:"iconUrl"`
		IsSign          bool        `json:"isSign"`
		IsSignDeduct    bool        `json:"isSignDeduct"`
		IsSignIap       bool        `json:"isSignIap"`
		IsSignIapDeduct bool        `json:"isSignIapDeduct"`
		VipCode         int64       `json:"vipCode"`
		VipLevel        int64       `json:"vipLevel"`
	} `json:"albumVip"`
	Associator struct {
		DynamicIconUrl  interface{} `json:"dynamicIconUrl"`
		ExpireTime      int64       `json:"expireTime"`
		IconUrl         interface{} `json:"iconUrl"`
		IsSign          bool        `json:"isSign"`
		IsSignDeduct    bool        `json:"isSignDeduct"`
		IsSignIap       bool        `json:"isSignIap"`
		IsSignIapDeduct bool        `json:"isSignIapDeduct"`
		VipCode         int64       `json:"vipCode"`
		VipLevel        int64       `json:"vipLevel"`
	} `json:"associator"`
	MusicPackage struct {
		DynamicIconUrl  interface{} `json:"dynamicIconUrl"`
		ExpireTime      int64       `json:"expireTime"`
		IconUrl         interface{} `json:"iconUrl"`
		IsSign          bool        `json:"isSign"`
		IsSignDeduct    bool        `json:"isSignDeduct"`
		IsSignIap       bool        `json:"isSignIap"`
		IsSignIapDeduct bool        `json:"isSignIapDeduct"`
		VipCode         int64       `json:"vipCode"`
		VipLevel        int64       `json:"vipLevel"`
	} `json:"musicPackage"`
	Now               int64 `json:"now"` // eg: 1746370409099
	OldCacheProtocol  bool  `json:"oldCacheProtocol"`
	RedVipAnnualCount int64 `json:"redVipAnnualCount"`
	RedVipLevel       int64 `json:"redVipLevel"`
	Redplus           struct {
		DynamicIconUrl  interface{} `json:"dynamicIconUrl"`
		ExpireTime      int64       `json:"expireTime"`
		IconUrl         interface{} `json:"iconUrl"`
		IsSign          bool        `json:"isSign"`
		IsSignDeduct    bool        `json:"isSignDeduct"`
		IsSignIap       bool        `json:"isSignIap"`
		IsSignIapDeduct bool        `json:"isSignIapDeduct"`
		VipCode         int64       `json:"vipCode"`
		VipLevel        int64       `json:"vipLevel"`
	} `json:"redplus"`
	RelationOtherUserId               int64 `json:"relationOtherUserId"`
	RelationOtherUserRedVipExpireTime int64 `json:"relationOtherUserRedVipExpireTime"`
	RelationType                      int64 `json:"relationType"`
	UserId                            int64 `json:"userId"`
	VoiceBookVip                      struct {
		DynamicIconUrl  interface{} `json:"dynamicIconUrl"`
		ExpireTime      int64       `json:"expireTime"`
		IconUrl         interface{} `json:"iconUrl"`
		IsSign          bool        `json:"isSign"`
		IsSignDeduct    bool        `json:"isSignDeduct"`
		IsSignIap       bool        `json:"isSignIap"`
		IsSignIapDeduct bool        `json:"isSignIapDeduct"`
		VipCode         int64       `json:"vipCode"`
		VipLevel        int64       `json:"vipLevel"`
	} `json:"voiceBookVip"`
}

type VipCommonListReq added in v0.3.0

type VipCommonListReq struct {
	types.ReqCommon
	PositionType string `json:"positionType"` // eg:25
}

type VipCommonListResp added in v0.3.0

type VipCommonListResp struct {
	types.RespCommon[VipCommonListRespData]
}

type VipCommonListRespData added in v0.3.0

type VipCommonListRespData struct {
	ContentList []string `json:"contentList"` // 里面是jsonVipCommonListRespDataContentList
}

type VipCommonListRespDataContentList added in v0.3.0

type VipCommonListRespDataContentList struct {
	Type     string                                     `json:"type"`
	Title    string                                     `json:"title"`
	MoreUrl  string                                     `json:"moreUrl"`
	MoreText string                                     `json:"moreText"`
	Children []VipCommonListRespDataContentListChildren `json:"children"`
}

type VipCommonListRespDataContentListChildren added in v0.3.0

type VipCommonListRespDataContentListChildren struct {
	Type     string      `json:"type"`
	Title    string      `json:"title"`
	MoreUrl  string      `json:"moreUrl"`
	MoreText string      `json:"moreText"`
	Collapse interface{} `json:"collapse"`
}

type VipConfigData added in v0.3.0

type VipConfigData struct {
	Title string              `json:"title"`
	List  []VipConfigDataList `json:"list"`
}

type VipConfigDataList added in v0.3.0

type VipConfigDataList struct {
	Action      string `json:"action"`
	Description string `json:"description"`
	IconUrl     string `json:"iconUrl"`
	TaskTag     string `json:"taskTag"`
	BtnText     string `json:"btnText"`
	JumpUrl     string `json:"jumpUrl"`
}

type VipConfigReq added in v0.3.0

type VipConfigReq struct {
	types.ReqCommon
	ConfigName string `json:"configName"` // viplevel.paytask.tasklist
}

type VipConfigResp added in v0.3.0

type VipConfigResp struct {
	types.RespCommon[string] // VipConfigData
}

type VipDetailListData added in v0.3.0

type VipDetailListData struct {
	Id              int64  `json:"id"`
	RightsType      int64  `json:"rightsType"`
	SubRightsType   int64  `json:"subRightsType"`
	ShowName        string `json:"showName"`
	SubTitle        string `json:"subTitle"`
	RightsDetailUrl string `json:"rightsDetailUrl"`
	CornerType      int64  `json:"cornerType"`
	RightsIcon      struct {
		IconSvg string `json:"iconSvg"`
	} `json:"rightsIcon"`
	ReceiveType          int64  `json:"receiveType"`
	LimitType            int64  `json:"limitType"`
	ReceiveJumpUrl       string `json:"receiveJumpUrl"`
	AleadyReveiveJumpUrl string `json:"aleadyReveiveJumpUrl"`
	Level                int64  `json:"level"`
	ReceiveStatus        int64  `json:"receiveStatus"`
	PrivilegeDetail      string `json:"privilegeDetail"`
	DeliveryId           int64  `json:"deliveryId"`
	Seq                  int64  `json:"seq"`
}

type VipDetailListReq added in v0.3.0

type VipDetailListReq struct {
	types.ReqCommon
	IsSupportHistoryGift bool `json:"isSupportHistoryGift"`
}

type VipDetailListResp added in v0.3.0

type VipDetailListResp struct {
	types.RespCommon[[]VipDetailListData] // key为等级
}

type VipDowngradeCompensateData added in v0.3.0

type VipDowngradeCompensateData struct {
	UserId                   int64       `json:"userId"`
	NickName                 interface{} `json:"nickName"`
	UserAvatarUrl            interface{} `json:"userAvatarUrl"`
	Downgrade                bool        `json:"downgrade"`
	Receive                  bool        `json:"receive"`
	ReceiveScore             int64       `json:"receiveScore"`
	Level                    int64       `json:"level"`
	IconImg                  interface{} `json:"iconImg"`
	ReceiveScoreAfterLevel   int64       `json:"receiveScoreAfterLevel"`
	ReceiveScoreAfterIconImg interface{} `json:"receiveScoreAfterIconImg"`
	ActivityValid            bool        `json:"activityValid"`
	SpecialV6                bool        `json:"specialV6"`
}

type VipDowngradeCompensateReq added in v0.3.0

type VipDowngradeCompensateReq struct {
	types.ReqCommon
}

type VipDowngradeCompensateResp added in v0.3.0

type VipDowngradeCompensateResp struct {
	types.RespCommon[VipDowngradeCompensateData]
}

type VipFloatDataReq added in v0.3.0

type VipFloatDataReq struct {
	types.ReqCommon
}

type VipFloatDataResp added in v0.3.0

type VipFloatDataResp struct {
	types.RespCommon[VipFloatDataRespData]
}

type VipFloatDataRespData added in v0.3.0

type VipFloatDataRespData struct {
	BirthdayData struct {
		UserId     int64  `json:"userId"`
		NickName   string `json:"nickName"`
		Birthday   string `json:"birthday"`
		NeedPopUp  bool   `json:"needPopUp"`
		CurrentDay bool   `json:"currentDay"`
	} `json:"birthdayData"`
	FloatTip     interface{} `json:"floatTip"`
	GiftCardTip  interface{} `json:"giftCardTip"`
	LevelPopData struct {
		Code    int64       `json:"code"`
		Data    interface{} `json:"data"`
		Message string      `json:"message"`
	} `json:"levelPopData"`
	PopupData     interface{} `json:"popupData"`
	TopRedDotData struct {
		NewWelfareIdLevelMap struct {
			Field1 int64 `json:"0"`
			Field2 int64 `json:"1"`
			Field3 int64 `json:"2"`
			Field4 int64 `json:"3"`
			Field5 int64 `json:"4"`
			Field6 int64 `json:"5"`
			Field7 int64 `json:"6"`
			Field8 int64 `json:"7"`
		} `json:"newWelfareIdLevelMap"`
		NewGiftCard string `json:"newGiftCard"`
	} `json:"topRedDotData"`
	ViewTaskData interface{} `json:"viewTaskData"`
	VipInfo      struct {
		RedVipLevelIcon   string `json:"redVipLevelIcon"`
		RedVipLevel       int64  `json:"redVipLevel"`
		RedVipAnnualCount int64  `json:"redVipAnnualCount"`
		MusicPackage      struct {
			VipCode         int64  `json:"vipCode"`
			ExpireTime      int64  `json:"expireTime"`
			IconUrl         string `json:"iconUrl"`
			DynamicIconUrl  string `json:"dynamicIconUrl"`
			VipLevel        int64  `json:"vipLevel"`
			IsSignDeduct    bool   `json:"isSignDeduct"`
			IsSignIap       bool   `json:"isSignIap"`
			IsSignIapDeduct bool   `json:"isSignIapDeduct"`
			IsSign          bool   `json:"isSign"`
		} `json:"musicPackage"`
		Associator struct {
			VipCode         int64  `json:"vipCode"`
			ExpireTime      int64  `json:"expireTime"`
			IconUrl         string `json:"iconUrl"`
			DynamicIconUrl  string `json:"dynamicIconUrl"`
			VipLevel        int64  `json:"vipLevel"`
			IsSignDeduct    bool   `json:"isSignDeduct"`
			IsSignIap       bool   `json:"isSignIap"`
			IsSignIapDeduct bool   `json:"isSignIapDeduct"`
			IsSign          bool   `json:"isSign"`
		} `json:"associator"`
		RedVipDynamicIconUrl  interface{} `json:"redVipDynamicIconUrl"`
		RedVipDynamicIconUrl2 interface{} `json:"redVipDynamicIconUrl2"`
		Redplus               struct {
			VipCode         int64  `json:"vipCode"`
			ExpireTime      int64  `json:"expireTime"`
			IconUrl         string `json:"iconUrl"`
			DynamicIconUrl  string `json:"dynamicIconUrl"`
			VipLevel        int64  `json:"vipLevel"`
			IsSignDeduct    bool   `json:"isSignDeduct"`
			IsSignIap       bool   `json:"isSignIap"`
			IsSignIapDeduct bool   `json:"isSignIapDeduct"`
			IsSign          bool   `json:"isSign"`
		} `json:"redplus"`
	} `json:"vipInfo"`
	ValidUser   bool `json:"validUser"`
	CashierData struct {
		IsNotify   bool        `json:"isNotify"`
		Link       string      `json:"link"`
		CashierTab interface{} `json:"cashierTab"`
	} `json:"cashierData"`
	BirthdayEggData struct {
		IsNotify  bool   `json:"isNotify"`
		Link      string `json:"link"`
		LottieUrl string `json:"lottieUrl"`
		SourceUrl string `json:"sourceUrl"`
	} `json:"birthdayEggData"`
}

type VipGrowPointReq added in v0.3.0

type VipGrowPointReq struct {
	types.ReqCommon
}

type VipGrowPointResp added in v0.3.0

type VipGrowPointResp struct {
	types.RespCommon[VipGrowPointRespData]
}

type VipGrowPointRespData added in v0.3.0

type VipGrowPointRespData struct {
	UserLevel struct {
		UserId          int64       `json:"userId"`
		Level           int64       `json:"level"`
		GrowthPoint     int64       `json:"growthPoint"` // 当前成长值
		LevelName       string      `json:"levelName"`   // 黑胶·肆
		YesterdayPoint  int64       `json:"yesterdayPoint"`
		VipType         int64       `json:"vipType"`    // -2:过期?
		ExtJson         string      `json:"extJson"`    // eg: "{\"yearMonth\":\"20255\",\"lastDay\":\"202554\",\"lastDayScore\":-6,\"todayScore\":6,\"currentDay\":\"202555\",\"totalScore\":0,\"monthTaskTotalScore\":6}"
		ExpireTime      int64       `json:"expireTime"` // 1746892799000,
		AvatarUrl       interface{} `json:"avatarUrl"`
		LatestVipType   int64       `json:"latestVipType"`   // 100:领取的赠送?
		LatestVipStatus int64       `json:"latestVipStatus"` // 0:失效或关闭 1: 貌似正常
		Normal          bool        `json:"normal"`
		MaxLevel        bool        `json:"maxLevel"` // true: 最高等级
	} `json:"userLevel"`
	LevelCard struct {
		RightId                           int64       `json:"rightId"`
		Level                             int64       `json:"level"`             // vip等级
		PrivilegeName                     string      `json:"privilegeName"`     // V4等级标识
		PrivilegeSubTitle                 string      `json:"privilegeSubTitle"` // V4尊享
		PrivilegeIconUrl                  string      `json:"privilegeIconUrl"`
		PrivilegePlusIconUrl              interface{} `json:"privilegePlusIconUrl"`
		ResourceId                        int64       `json:"resourceId"`
		ObtainLimitType                   int64       `json:"obtainLimitType"`
		LevelBackgroundCardImageUrl       string      `json:"levelBackgroundCardImageUrl"`
		LevelBackgroundCardExpireImageUrl string      `json:"levelBackgroundCardExpireImageUrl"`
		LevelName                         string      `json:"levelName"` // eg: 黑胶·肆
		LevelMarkImageUrl                 string      `json:"levelMarkImageUrl"`
		LevelMarkExpireImageUrl           string      `json:"levelMarkExpireImageUrl"`
		BackgroundImageUrl                string      `json:"backgroundImageUrl"`
		UpgradeFireworksImageUrl          string      `json:"upgradeFireworksImageUrl"`
		NewUpgradeFireworksImageUrl       string      `json:"newUpgradeFireworksImageUrl"`
		BlurryBackgroundImageUrl          string      `json:"blurryBackgroundImageUrl"`
		RedVipImageUrl                    string      `json:"redVipImageUrl"`
		RedVipExpireImageUrl              string      `json:"redVipExpireImageUrl"`
		RedVipWholeImageUrl               string      `json:"redVipWholeImageUrl"`
		RedVipExpireWholeImageUrl         string      `json:"redVipExpireWholeImageUrl"`
		RedVipBuckleImageUrl              string      `json:"redVipBuckleImageUrl"`
		RedVipExpireBuckleImageUrl        string      `json:"redVipExpireBuckleImageUrl"`
		VipGiftRightBarImageUrl           string      `json:"vipGiftRightBarImageUrl"`
		VipGiftExpireRightBarImageUrl     interface{} `json:"vipGiftExpireRightBarImageUrl"`
		VipLevelPageCardImgUrl            string      `json:"vipLevelPageCardImgUrl"`
		VipLevelPageExpireCardImgUrl      string      `json:"vipLevelPageExpireCardImgUrl"`
		AccountPageIconImgUrl             string      `json:"accountPageIconImgUrl"`
		FlashIconImgUrl                   string      `json:"flashIconImgUrl"`
	} `json:"levelCard"`
}

type VipInfoReq

type VipInfoReq struct {
	UserId string `json:"userId"` // 为空默认为当前登录用户
}

type VipInfoResp

type VipInfoResp struct {
	types.RespCommon[VipInfoRespData]
}

type VipInfoRespData

type VipInfoRespData struct {
	Associator struct {
		DynamicIconUrl  string `json:"dynamicIconUrl"`
		ExpireTime      int64  `json:"expireTime"`
		IconUrl         string `json:"iconUrl"`
		IsSign          bool   `json:"isSign"`
		IsSignDeduct    bool   `json:"isSignDeduct"`
		IsSignIap       bool   `json:"isSignIap"`
		IsSignIapDeduct bool   `json:"isSignIapDeduct"`
		VipCode         int64  `json:"vipCode"`
		VipLevel        int64  `json:"vipLevel"`
	} `json:"associator"`
	MusicPackage struct {
		DynamicIconUrl  string `json:"dynamicIconUrl"`
		ExpireTime      int64  `json:"expireTime"`
		IconUrl         string `json:"iconUrl"`
		IsSign          bool   `json:"isSign"`
		IsSignDeduct    bool   `json:"isSignDeduct"`
		IsSignIap       bool   `json:"isSignIap"`
		IsSignIapDeduct bool   `json:"isSignIapDeduct"`
		VipCode         int64  `json:"vipCode"`
		VipLevel        int64  `json:"vipLevel"`
	} `json:"musicPackage"`
	RedVipAnnualCount     int64       `json:"redVipAnnualCount"`
	RedVipDynamicIconUrl  interface{} `json:"redVipDynamicIconUrl"`
	RedVipDynamicIconUrl2 interface{} `json:"redVipDynamicIconUrl2"`
	RedVipLevel           int64       `json:"redVipLevel"`
	RedVipLevelIcon       string      `json:"redVipLevelIcon"`
	Redplus               struct {
		DynamicIconUrl  string `json:"dynamicIconUrl"`
		ExpireTime      int64  `json:"expireTime"`
		IconUrl         string `json:"iconUrl"`
		IsSign          bool   `json:"isSign"`
		IsSignDeduct    bool   `json:"isSignDeduct"`
		IsSignIap       bool   `json:"isSignIap"`
		IsSignIapDeduct bool   `json:"isSignIapDeduct"`
		VipCode         int64  `json:"vipCode"`
		VipLevel        int64  `json:"vipLevel"`
	} `json:"redplus"`
}

type VipInterestsReq added in v0.3.0

type VipInterestsReq struct {
	types.ReqCommon
	InterestsType string `json:"interestsType"`
}

type VipInterestsResp added in v0.3.0

type VipInterestsResp struct {
	types.RespCommon[any]
}

type VipLevelListData added in v0.3.0

type VipLevelListData struct {
	Level                          int64  `json:"level"`          // 2
	Title                          string `json:"title"`          // eg: 黑胶·贰
	MaxGrowthPoint                 int64  `json:"maxGrowthPoint"` // 1500
	MinGrowthPoint                 int64  `json:"minGrowthPoint"` // 480
	LevelBackgroundCardImage       string `json:"levelBackgroundCardImage"`
	LevelBackgroundCardExpireImage string `json:"levelBackgroundCardExpireImage,omitempty"`
	VipLevelPageCardImg            string `json:"vipLevelPageCardImg"`
	VipLevelPageExpireCardImg      string `json:"vipLevelPageExpireCardImg"`
}

type VipLevelListReq added in v0.3.0

type VipLevelListReq struct {
	types.ReqCommon
}

type VipLevelListResp added in v0.3.0

type VipLevelListResp struct {
	types.RespCommon[[]VipLevelListData]
}

type VipMAXScoreReq added in v0.3.0

type VipMAXScoreReq struct {
	types.ReqCommon
}

type VipMAXScoreResp added in v0.3.0

type VipMAXScoreResp struct {
	types.RespCommon[VipMAXScoreRespData]
}

type VipMAXScoreRespData added in v0.3.0

type VipMAXScoreRespData struct {
	ReachMonthMaxScore bool  `json:"reachMonthMaxScore"` // 是否达到本月最大成长值 true:是
	UnGetAllScore      int64 `json:"unGetAllScore"`      // ?
	Gap                int64 `json:"gap"`                // 剩余可获得分值数
	MaxTaskScore       int64 `json:"maxTaskScore"`       // 黑胶每月可获得300 svip为400
}

type VipNewAccountPageReq added in v0.3.0

type VipNewAccountPageReq struct {
	types.ReqCommon
	GroupName string `json:"groupName"` // eg: t2
}

type VipNewAccountPageResp added in v0.3.0

type VipNewAccountPageResp struct {
	types.RespCommon[VipNewAccountPageRespData]
}

type VipNewAccountPageRespData added in v0.3.0

type VipNewAccountPageRespData struct {
	MainTitle struct {
		VipCurrLevel  int64  `json:"vipCurrLevel"`  // 当前vip等级
		SubPercent    int64  `json:"subPercent"`    // 进度百分比 eg: 86
		NextLevel     int64  `json:"nextLevel"`     // 下一级vip等级
		ImgUrl        string `json:"imgUrl"`        // img
		ReachMaxLevel bool   `json:"reachMaxLevel"` // 是否满级
		JumpUrl       string `json:"jumpUrl"`       // 站内跳转地址
		CurrScore     int64  `json:"currScore"`     // 当前分数
	} `json:"mainTitle"`
	SubTitle struct {
		CarouselKey string   `json:"carouselKey"` // eg: 1107_1745808226000
		Carousels   []string `json:"carousels"`   // "黑胶有效期仅6天","会员任务|打卡升级提醒⏰","会员权益|联名装扮上新","会员福利|上新福利集合","黑胶时光机|音乐报告周日更新"
		HasRedot    bool     `json:"hasRedot"`
	} `json:"subTitle"`
	ButtonTitle struct {
		Title   string `json:"title"` // 会员中心
		JumpUrl string `json:"jumpUrl"`
	} `json:"buttonTitle"`
}

type VipNewListData added in v0.3.0

type VipNewListData struct {
	RightsTypeImage map[string]string `json:"rightsTypeImage"` // VipNewListDataRightsTypeImage
	LevelAuthList   map[string]string `json:"levelAuthList"`   // key对应的等级,value: VipNewListDataLevelAuthList
}

type VipNewListDataLevelAuthList added in v0.3.0

type VipNewListDataLevelAuthList struct {
	Id                   int64                         `json:"id"`
	RightsType           int64                         `json:"rightsType"`
	ShowName             string                        `json:"showName"`
	SubTitle             string                        `json:"subTitle"`
	RightsDetailUrl      string                        `json:"rightsDetailUrl"`
	TabornerType         int64                         `json:"tabornerType"`
	RightsIcon           VipNewListDataRightsTypeImage `json:"rightsIcon"`
	ReceiveType          int64                         `json:"receiveType"`
	ReceiveJumpUrl       interface{}                   `json:"receiveJumpUrl"`
	AleadyReveiveJumpUrl string                        `json:"aleadyReveiveJumpUrl"`
	Status               int64                         `json:"status"`
	PrivilegeDetail      string                        `json:"privilegeDetail"`
	Seq                  int64                         `json:"seq"`
}

type VipNewListDataRightsTypeImage added in v0.3.0

type VipNewListDataRightsTypeImage struct {
	IconSvg any `json:"iconSvg"`
}

type VipNewListReq added in v0.3.0

type VipNewListReq struct {
	types.ReqCommon
}

type VipNewListResp added in v0.3.0

type VipNewListResp struct {
	types.RespCommon[VipNewListData]
}

type VipProgressListReq added in v0.3.0

type VipProgressListReq struct {
	types.ReqCommon
}

type VipProgressListResp added in v0.3.0

type VipProgressListResp struct {
	types.RespCommon[[]VipProgressListRespData]
}

type VipProgressListRespData added in v0.3.0

type VipProgressListRespData struct {
	UserId                int64       `json:"userId"`
	UserType              string      `json:"userType"`
	ProgressRate          int64       `json:"progressRate"`
	TotalCompleteNum      int64       `json:"totalCompleteNum"`
	MissionStatus         int64       `json:"missionStatus"`
	UserMissionProgressId interface{} `json:"userMissionProgressId"`
	LatestRecordTime      interface{} `json:"latestRecordTime"`
	StartTime             string      `json:"startTime"`
	EndTime               string      `json:"endTime"`
	UpdateTime            interface{} `json:"updateTime"`
	BasicMissionDTO       struct {
		MissionId              int64       `json:"missionId"`
		MissionCode            string      `json:"missionCode"`
		Name                   string      `json:"name"`
		MissionType            int64       `json:"missionType"`
		Alue                   int64       `json:"alue"`
		NeedToReceive          bool        `json:"needToReceive"`
		MissionEntityId        int64       `json:"missionEntityId"`
		StartTime              string      `json:"startTime"`
		CurrentPeriodStartTime string      `json:"currentPeriodStartTime"`
		EndTime                string      `json:"endTime"`
		CurrentPeriodEndTime   string      `json:"currentPeriodEndTime"`
		Tag                    int64       `json:"tag"`
		SchemaContent          string      `json:"schemaContent"` // use VipProgressListRespDataSchemaContent
		MissionTimeSettingDto  interface{} `json:"missionTimeSettingDto"`
	} `json:"basicMissionDTO"`
	StageProgressDTOS []struct {
		CompleteNum       int64       `json:"completeNum"`
		CompleteNumPerDay interface{} `json:"completeNumPerDay"`
		ProgressRate      int64       `json:"progressRate"`
		StageStatus       int64       `json:"stageStatus"`
		IsCurrentStage    bool        `json:"isCurrentStage"`
		RewardType        int64       `json:"rewardType"`
		RewardId          int64       `json:"rewardId"`
		RewardName        string      `json:"rewardName"`
		ProvideMethod     int64       `json:"provideMethod"`
		Worth             int64       `json:"worth"`
		RewardCount       int64       `json:"rewardCount"`
		UserRewardId      interface{} `json:"userRewardId"`
		UserProgressId    interface{} `json:"userProgressId"`
		RewardExpireTime  interface{} `json:"rewardExpireTime"`
		RewardExtendInfo  string      `json:"rewardExtendInfo"`
		StageIx           int64       `json:"stageIx"`
		ComposeInterestId interface{} `json:"composeInterestId"`
		RewardInfoDTOS    interface{} `json:"rewardInfoDTOS"`
		StageDescription  string      `json:"stageDescription"`
	} `json:"stageProgressDTOS"`
	HistoryUnObtainRewardWorth int64         `json:"historyUnObtainRewardWorth"`
	Children                   []interface{} `json:"children"`
}

type VipProgressListRespDataSchemaContent added in v0.3.0

type VipProgressListRespDataSchemaContent struct {
	TaskTitle string `json:"taskTitle"`
	Icon      []struct {
		Url         string `json:"url"`
		CompleteUrl string `json:"completeUrl"`
		NosKey      string `json:"nosKey"`
	} `json:"icon"`
	GoldenIcon []struct {
		Url         string `json:"url"`
		CompleteUrl string `json:"completeUrl"`
		NosKey      string `json:"nosKey"`
	} `json:"goldenIcon"`
	BottomVipIcon []struct {
		Url         string `json:"url"`
		CompleteUrl string `json:"completeUrl"`
		NosKey      string `json:"nosKey"`
	} `json:"bottomVipIcon"`
	BottomSvipIcon []struct {
		Url         string `json:"url"`
		CompleteUrl string `json:"completeUrl"`
		NosKey      string `json:"nosKey"`
	} `json:"bottomSvipIcon"`
	FinishedTaskSubTitle           string      `json:"finishedTaskSubTitle"`
	UnfinishTaskSubTitle           string      `json:"unfinishTaskSubTitle"`
	TaskInitButton                 string      `json:"taskInitButton "`
	TaskRewardWaitingReceiveButton string      `json:"taskRewardWaitingReceiveButton "`
	JumpUrl                        string      `json:"jumpUrl "`
	SeqName                        string      `json:"seqName"`
	FinishedReceiveRewardJumpUrl   interface{} `json:"finishedReceiveRewardJumpUrl"`
}

type VipRewardGetAllReq

type VipRewardGetAllReq struct{}

type VipRewardGetAllResp

type VipRewardGetAllResp struct {
	types.RespCommon[VipRewardGetAllRespData]
}

type VipRewardGetAllRespData

type VipRewardGetAllRespData struct {
	Result bool `json:"result"`
}

type VipRewardGetReq

type VipRewardGetReq struct {
	TaskIds []string
}

type VipRewardGetResp

type VipRewardGetResp struct {
	types.RespCommon[any]
}

type VipSignInfoReq added in v0.3.0

type VipSignInfoReq struct {
	types.ReqCommon
}

type VipSignInfoResp added in v0.3.0

type VipSignInfoResp struct {
	types.RespCommon[[]VipSignInfoRespData] // 貌似一次只返回7条也就是七天
}

type VipSignInfoRespData added in v0.3.0

type VipSignInfoRespData struct {
	RecordId  int64       `json:"recordId"`
	UserId    int64       `json:"userId"`
	Time      int64       `json:"time"`    // eg: 1746421099000,
	TimeStr   string      `json:"timeStr"` // eg: 2025-05-03
	SongId    int64       `json:"songId"`
	SongCover interface{} `json:"songCover"`
	Score     int64       `json:"score"` // 成长值
	Today     bool        `json:"today"` // 是否今天签到 true:是
}

VipSignInfoRespData 当Today为true时则RecordId、Time、SongId有值返回则为0

type VipTaskReq

type VipTaskReq struct{}

type VipTaskResp

type VipTaskResp struct {
	types.RespCommon[VipTaskRespData]
}

type VipTaskRespData

type VipTaskRespData struct {
	TaskList []struct {
		Seq       int64  `json:"seq"`
		SeqName   string `json:"seqName"`
		TaskItems []struct {
			Action          string      `json:"action"`
			ActionType      int64       `json:"actionType"`
			BasicTaskId     int64       `json:"basicTaskId"`
			BusinessIdent   interface{} `json:"businessIdent"`
			CurrentProgress int64       `json:"currentProgress"`
			Description     string      `json:"description"`
			GrowthPoint     int64       `json:"growthPoint"`
			IconUrl         string      `json:"iconUrl"`
			MissionId       int64       `json:"missionId"`
			Name            string      `json:"name"`
			NeedReceive     bool        `json:"needReceive"`
			Period          int64       `json:"period"`
			ProgressType    int64       `json:"progressType"`
			RuleId          int64       `json:"ruleId"`
			SeqTag          int64       `json:"seqTag"`
			ShowProgress    bool        `json:"showProgress"`
			SortValue       int64       `json:"sortValue"`
			Status          int64       `json:"status"`
			TagId           int64       `json:"tagId"`
			TargetWorth     int64       `json:"targetWorth"`
			Targets         interface{} `json:"targets"`
			TaskId          string      `json:"taskId"`
			TaskTag         string      `json:"taskTag"`
			TotalUngetScore int64       `json:"totalUngetScore"`
			Type            int64       `json:"type"`
			TypeCode        interface{} `json:"typeCode"`
			UnGetIds        []string    `json:"unGetIds"`
			UpdateTime      int64       `json:"updateTime"`
			Url             string      `json:"url"`
			UserMissionId   interface{} `json:"userMissionId"`
		} `json:"taskItems"`
		TaskType int64 `json:"taskType"`
	} `json:"taskList"`
	TaskScore int64 `json:"taskScore"`
}

type VipTaskSignReq added in v0.3.0

type VipTaskSignReq struct {
	types.ReqCommon
	IsNew string `json:"isNew,omitempty"`
}

type VipTaskSignResp added in v0.3.0

type VipTaskSignResp struct {
	types.RespCommon[bool]
}

type VipTaskV2Req

type VipTaskV2Req struct{}

type VipTaskV2Resp

type VipTaskV2Resp struct {
	types.RespCommon[VipTaskV2RespData]
}

type VipTaskV2RespData

type VipTaskV2RespData struct {
	MaxScore      int64 `json:"maxScore"`
	ScoreDuration int64 `json:"scoreDuration"`
	TaskScore     int64 `json:"taskScore"`
	UnGetAllScore int64 `json:"unGetAllScore"`
	TaskList      []struct {
		Seq       int64  `json:"seq"`
		SeqName   string `json:"seqName"`
		TaskItems []struct {
			CurrentInfo struct {
				Action          string      `json:"action"`
				ActionType      int64       `json:"actionType"`
				BasicTaskId     int64       `json:"basicTaskId"`
				BusinessIdent   interface{} `json:"businessIdent"`
				CurrentProgress int64       `json:"currentProgress"`
				Description     string      `json:"description"`
				GrowthPoint     int64       `json:"growthPoint"`
				IconUrl         string      `json:"iconUrl"`
				MissionId       int64       `json:"missionId"`
				Name            string      `json:"name"`
				NeedReceive     bool        `json:"needReceive"`
				Period          int64       `json:"period"`
				ProgressType    int64       `json:"progressType"`
				RuleId          int64       `json:"ruleId"`
				SeqTag          int64       `json:"seqTag"`
				ShowProgress    bool        `json:"showProgress"`
				SortValue       int64       `json:"sortValue"`
				Status          int64       `json:"status"`
				TagId           int64       `json:"tagId"`
				TargetWorth     int64       `json:"targetWorth"`
				TaskId          string      `json:"taskId"`
				TaskTag         string      `json:"taskTag"`
				TotalUngetScore int64       `json:"totalUngetScore"`
				Type            int64       `json:"type"`
				TypeCode        interface{} `json:"typeCode"`
				UnGetIds        interface{} `json:"unGetIds"`
				UpdateTime      int64       `json:"updateTime"`
				Url             string      `json:"url"`
				UserMissionId   *int64      `json:"userMissionId"`
			} `json:"currentInfo"`
			SubList interface{} `json:"subList"`
		} `json:"taskItems"`
		TaskType int64 `json:"taskType"`
	} `json:"taskList"`
}

type VipWelfareListData added in v0.3.0

type VipWelfareListData struct {
	Id          int64  `json:"id"`
	Type        int64  `json:"type"`
	Level       int64  `json:"level"` // 对应黑胶等级
	ShowName    string `json:"showName"`
	WelfareIcon struct {
		IconNosKey            string `json:"iconNosKey"`
		IconImgUrl            string `json:"iconImgUrl"`
		FrontColor            string `json:"frontColor"`
		BackgroundColor       string `json:"backgroundColor"`
		SolidBackgroundColor  string `json:"solidBackgroundColor"`
		ButtonBackgroundColor string `json:"buttonBackgroundColor"`
		ButtonTextColor       string `json:"buttonTextColor"`
	} `json:"welfareIcon,omitempty"`
	JumpUrl         string  `json:"jumpUrl"`
	EffectStartTime int64   `json:"effectStartTime"`
	EffectEndTime   int64   `json:"effectEndTime"`
	ShowMinLevel    int64   `json:"showMinLevel"`
	ShowMaxLevel    int64   `json:"showMaxLevel"`
	SpecialPrice    float64 `json:"specialPrice"`
	OrginalPrice    float64 `json:"orginalPrice"`
	Status          int64   `json:"status"`
	Seq             int64   `json:"seq"`
	WelfareItem     struct {
		Level        int64  `json:"level"`
		SubtitleName string `json:"subtitleName"`
	} `json:"welfareItem"`
}

type VipWelfareListReq added in v0.3.0

type VipWelfareListReq struct {
	types.ReqCommon
}

type VipWelfareListResp added in v0.3.0

type VipWelfareListResp struct {
	types.RespCommon[map[string][]VipWelfareListData] // key为等级
}

type WebLogReq

type WebLogReq struct {
	CsrfToken string                   `json:"csrf_token"` // 可不用传递
	Logs      []map[string]interface{} `json:"logs"`       // 具体事件内容
}

WebLogReq *** 以下日志是针对mac pc网页端日志分析,由于日志类型太多不能穷举各种日志,而且很多日志无需关心 分析时间:2024-06-24 *** 1.应该是准备开始播放事件 "[{"action":"startplay","json":{"id":1984580503,"type":"song","content":"id=1981392816","mainsite":"1"}}]" 2.开始播放事件 "[{"action":"play","json":{"id":"1984580503","type":"song","source":"list","sourceid":"1981392816","mainsite":"1","content":"id=1981392816"}}]" 3.播放完成事件 "[{"action":"play","json":{"type":"song","wifi":0,"download":0,"id":1984580503,"time":199,"end":"ui","source":"list","sourceId":"1981392816","mainsite":"1","content":"id=1981392816"}}]" 其中歌曲播放一半切歌之后的日志时间为 "[{"action":"play","json":{"type":"song","wifi":0,"download":0,"id":2600804126,"time":22,"end":"interrupt","source":"toplist","sourceId":"19723756","mainsite":"1","content":"id=1981392816"}}]" 4.未知 在播放音乐时间隔一定时间会上传此日志 "[{"action":"impress","json":{"mspm":"619df35ce51b6b383f5fafdb","page":"mainpage","module":"nav_bar","target":"friends","reddot":"1","mainsite":"1"}}]" 5.未知 当一首歌曲播放完之后会产生此日志 "[{"action":"sysaction","json":{"dataType":"cdnCompare","cdnType":"NetEase","loadeddataTime":41716,"resourceType":"audiom4a","resourceId":1984580503,"resourceUrl":"https://m804.music.126.net/20240624165706/16fab8b9a63e70c89f75de59635a784b/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/19576100567/d33e/c04b/ac0d/829119824fad1696351f7e0898dd266a.m4a?authSecret=00000190495fb0bc11120a3b1e596978","xySupport":true,"error":false,"errorType":"","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36","mainsite":"1"}}]" 6.未知 "[{\"action\":\"mobile_monitor\",\"json\":{\"meta._ver\":2,\"meta._dataName\":\"pip_lyric_monitor\",\"action\":\"impress\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\",\"chromeVersion\":120,\"mainsite\":\"1\"}}]",

type WebLogResp

type WebLogResp struct {
	types.RespCommon[string]
}

type YunBeiActivityReserveReq added in v0.3.0

type YunBeiActivityReserveReq struct {
	types.ReqCommon
}

type YunBeiActivityReserveResp added in v0.3.0

type YunBeiActivityReserveResp struct {
	types.RespCommon[YunBeiActivityReserveRespData]
	Success bool `json:"success"`
}

type YunBeiActivityReserveRespData added in v0.3.0

type YunBeiActivityReserveRespData struct {
	Type          string `json:"type"`          // eg: NO_PREV_BOOKED:? PREV_CLAIMED_NO_BOOKED:未预约,PREV_CLAIMED_BOOKED:已预约
	CurrentAmount int64  `json:"currentAmount"` // 当前可领取的数量
	ImgUrl        string `json:"imgUrl"`
	Title         string `json:"title"`
	SubTitle      string `json:"subTitle"`
	ButtonTitle   string `json:"buttonTitle"`
	Countdown     int64  `json:"countdown"` // 倒计时
}

type YunBeiBalanceReq added in v0.1.5

type YunBeiBalanceReq struct {
	types.ReqCommon
}

type YunBeiBalanceResp added in v0.1.5

type YunBeiBalanceResp struct {
	types.RespCommon[YunBeiBalanceRespData]
}

type YunBeiBalanceRespData added in v0.1.5

type YunBeiBalanceRespData struct {
	UserId       int64 `json:"userId"`       // 用户id
	Balance      int64 `json:"balance"`      // 可用数量
	BlockBalance int64 `json:"blockBalance"` // 冻结数量
}

type YunBeiCoinRecordInsertReq added in v0.3.0

type YunBeiCoinRecordInsertReq struct {
	types.ReqCommon
	ReqId string `json:"reqId"` // eg: 6c63b960-d8fe-446a-b640-b8be30ff99c2
}

type YunBeiCoinRecordInsertResp added in v0.3.0

type YunBeiCoinRecordInsertResp struct {
	types.RespCommon[any]
}

type YunBeiDayVipInfoReq added in v0.3.0

type YunBeiDayVipInfoReq struct {
	types.ReqCommon
}

type YunBeiDayVipInfoResp added in v0.3.0

type YunBeiDayVipInfoResp struct {
	types.RespCommon[YunBeiDayVipInfoRespData]
}

type YunBeiDayVipInfoRespData added in v0.3.0

type YunBeiDayVipInfoRespData struct {
	ReqId                        string      `json:"reqId"`
	SkuCode                      int64       `json:"skuCode"`
	SkuImgUrl                    string      `json:"skuImgUrl"`
	CurrentStageOriginCoinAmount int64       `json:"currentStageOriginCoinAmount"` // 兑换需要的原价云贝数量
	CurrentStageActualCoinAmount int64       `json:"currentStageActualCoinAmount"` // 当前兑换需要的实际云贝数量
	CurrentUserCoinAmount        int64       `json:"currentUserCoinAmount"`        // 当前用户的当前阶段可用的云贝数量
	CurrentStage                 int64       `json:"currentStage"`
	CurrentStageCompleted        bool        `json:"currentStageCompleted"`
	TodayHasNext                 bool        `json:"todayHasNext"`
	TodayUnlockNext              interface{} `json:"todayUnlockNext"`
	ButtonTitle                  string      `json:"buttonTitle"` // eg: 去兑换
	CurrentButtonStatus          int64       `json:"currentButtonStatus"`
	UnlockCoinAmount             interface{} `json:"unlockCoinAmount"`
	ActionUrl                    interface{} `json:"actionUrl"`
	BubbleDisplayed              interface{} `json:"bubbleDisplayed"`
	BubbleCoinAmount             interface{} `json:"bubbleCoinAmount"`
	SubButtonTitle               interface{} `json:"subButtonTitle"`
	SubActionUrl                 interface{} `json:"subActionUrl"`
	SubTitle                     string      `json:"subTitle"` // eg: 金币已集齐,快去兑换VIP吧~
}

type YunBeiDragonJudgePopupReq added in v0.3.0

type YunBeiDragonJudgePopupReq struct {
	types.ReqCommon
}

type YunBeiDragonJudgePopupResp added in v0.3.0

type YunBeiDragonJudgePopupResp struct {
	types.RespCommon[YunBeiDragonJudgePopupRespData]
}

type YunBeiDragonJudgePopupRespData added in v0.3.0

type YunBeiDragonJudgePopupRespData struct {
	Code    int64       `json:"code"`
	Message interface{} `json:"message"`
	Data    bool        `json:"data"`
}

type YunBeiExpenseReq

type YunBeiExpenseReq struct {
	// Limit 每页数量default 10
	Limit int64 `json:"limit"`
	// Offset 第几页
	Offset int64 `json:"offset"`
}

type YunBeiExpenseResp

type YunBeiExpenseResp struct {
	// Code 错误码 200:成功
	types.RespCommon[[]YunBeiReceiptAndExpenseRespData]
	// HasMore 分页迭代使用
	HasMore bool `json:"hasmore"`
}

YunBeiExpenseResp .

type YunBeiExpireReq

type YunBeiExpireReq struct{}

type YunBeiExpireResp

type YunBeiExpireResp struct {
	types.RespCommon[YunBeiExpireRespData]
}

type YunBeiExpireRespData

type YunBeiExpireRespData struct {
	ExpireAmount int64 `json:"expireAmount"`
	Day          int64 `json:"day"`
}

type YunBeiMergeConvertReq added in v0.3.0

type YunBeiMergeConvertReq struct {
	types.ReqCommon
}

type YunBeiMergeConvertResp added in v0.3.0

type YunBeiMergeConvertResp struct {
	types.RespCommon[int64]
}

type YunBeiMultiTerminalWidgetCalenderReq added in v0.3.0

type YunBeiMultiTerminalWidgetCalenderReq struct {
	types.ReqCommon
	Suggest string `json:"suggest"`
}

type YunBeiMultiTerminalWidgetCalenderResp added in v0.3.0

type YunBeiMultiTerminalWidgetCalenderResp struct {
	types.RespCommon[YunBeiMultiTerminalWidgetCalenderRespData]
}

type YunBeiMultiTerminalWidgetCalenderRespData added in v0.3.0

type YunBeiMultiTerminalWidgetCalenderRespData struct {
	Texts           []string `json:"texts"`
	Origin          string   `json:"origin"`
	SongId          int64    `json:"songId"`
	CommentId       int64    `json:"commentId"`
	SongName        string   `json:"songName"`
	CoverUrl        string   `json:"coverUrl"`
	SingerName      string   `json:"singerName"`
	CommentCalendar struct {
		Festival                  interface{} `json:"festival"`
		DateImg                   interface{} `json:"dateImg"`
		BigBackground             string      `json:"bigBackground"`
		Background                string      `json:"background"`
		FontColor                 interface{} `json:"fontColor"`
		AndroidRoundedCornerImg   string      `json:"androidRoundedCornerImg"`
		AndroidSmallWidgetMainImg interface{} `json:"androidSmallWidgetMainImg"`
		MonthImg                  string      `json:"monthImg"`
		Month                     int64       `json:"month"`
		Day                       int64       `json:"day"`
		DayOfWeek                 int64       `json:"dayOfWeek"`
		DayImg                    string      `json:"dayImg"`
		DateColor                 interface{} `json:"dateColor"`
		LogoColor                 interface{} `json:"logoColor"`
		ContentColor              interface{} `json:"contentColor"`
		DescColor                 interface{} `json:"descColor"`
		MusicNameColor            interface{} `json:"musicNameColor"`
		MusicArtistColor          interface{} `json:"musicArtistColor"`
		PlayBtnColor              interface{} `json:"playBtnColor"`
	} `json:"commentCalendar"`
}

type YunBeiNewJudgeReq

type YunBeiNewJudgeReq struct{}

type YunBeiNewJudgeResp

type YunBeiNewJudgeResp struct {
	types.RespCommon[YunBeiNewJudgeRespData]
}

type YunBeiNewJudgeRespData

type YunBeiNewJudgeRespData struct {
	Count       int64 `json:"count"`
	DetailId    int64 `json:"detailId"`
	DepositCode int64 `json:"depositCode"`
}

type YunBeiPositionResourceReq added in v0.3.0

type YunBeiPositionResourceReq struct {
	types.ReqCommon
	PositionCode string `json:"positionCode"` // eg: yunbei_banner
}

type YunBeiPositionResourceResp added in v0.3.0

type YunBeiPositionResourceResp struct {
	types.RespCommon[YunBeiPositionResourceRespData]
	Trp struct {
		Rules []string `json:"rules"`
	} `json:"trp"`
}

type YunBeiPositionResourceRespData added in v0.3.0

type YunBeiPositionResourceRespData struct {
	LibraLogList    []interface{} `json:"libraLogList"`
	ExposureRecords string        `json:"exposureRecords"`
}

type YunBeiProductListReq added in v0.3.0

type YunBeiProductListReq struct {
	types.ReqCommon
	Limit  string `json:"limit"`
	Offset string `json:"offset"` // TODO: 需要明确是否有此字段
}

type YunBeiProductListResp added in v0.3.0

type YunBeiProductListResp struct {
	types.RespCommon[YunBeiProductListRespData]
}

type YunBeiProductListRespData added in v0.3.0

type YunBeiProductListRespData struct {
	RedirectCategoryId int64                                `json:"redirectCategoryId"`
	OrderList          []YunBeiProductListRespDataOrderList `json:"orderList"`
}

type YunBeiProductListRespDataOrderList added in v0.3.0

type YunBeiProductListRespDataOrderList struct {
	ProductId       int64  `json:"productId"`
	UserId          int64  `json:"userId"`
	NickName        string `json:"nickName"`
	AvatarUrl       string `json:"avatarUrl"`
	ProductShowName string `json:"productShowName"`
	CategoryId      int64  `json:"categoryId"`
}

type YunBeiReceiptAndExpenseRespData

type YunBeiReceiptAndExpenseRespData struct {
	Date string `json:"date"`
	// Fixed 描述
	Fixed string `json:"fixed"`
	Id    int64  `json:"id"`
	// OrderId 订单id
	OrderId interface{} `json:"orderId"`
	// PointCost 云贝数量
	PointCost int64 `json:"pointCost"`
	// Type 0:云贝过期、购买商品、签到奖励、听歌任务奖励、xxx活动等都是0 2:求歌词 其他待补充
	Type int64 `json:"type"`
	// Variable Fixed描述中使用得变量,展示时进行拼接比如type=2时 fixed="求翻译:" variable="爱如潮水" 则前端展示`求翻译:爱如潮水`
	Variable string `json:"variable"`
}

type YunBeiReceiptReq

type YunBeiReceiptReq struct {
	// Limit 每页数量default 10
	Limit int64 `json:"limit"`
	// Offset 第几页
	Offset int64 `json:"offset"`
}

type YunBeiReceiptResp

type YunBeiReceiptResp struct {
	// Code 错误码 200:成功
	types.RespCommon[[]YunBeiReceiptAndExpenseRespData]
	// HasMore 分页迭代使用
	HasMore bool `json:"hasmore"`
}

YunBeiReceiptResp .

type YunBeiRecommendConfigReq

type YunBeiRecommendConfigReq struct{}

type YunBeiRecommendConfigResp

type YunBeiRecommendConfigResp struct {
	types.RespCommon[YunBeiRecommendConfigRespData]
}

type YunBeiRecommendConfigRespData

type YunBeiRecommendConfigRespData struct {
	RedeemCount      int64  `json:"redeemCount"`
	RedeemFlag       int64  `json:"redeemFlag"`
	RedeemProductIds string `json:"redeemProductIds"`
	RefreshTime      int64  `json:"refreshTime"`
}

type YunBeiRecommendReq added in v0.3.0

type YunBeiRecommendReq struct {
	types.ReqCommon
}

type YunBeiRecommendResp added in v0.3.0

type YunBeiRecommendResp struct {
	types.RespCommon[[]YunBeiRecommendRespData]
}

type YunBeiRecommendRespData added in v0.3.0

type YunBeiRecommendRespData struct {
	Id             int64       `json:"id"`
	Name           string      `json:"name"`
	CoverIdStr     string      `json:"coverIdStr"`
	CoverUrl       string      `json:"coverUrl"`
	SpecialType    int64       `json:"specialType"`
	AllowDupBuy    bool        `json:"allowDupBuy"`
	Price          int64       `json:"price"`
	Status         int64       `json:"status"`
	ListPicUrl     string      `json:"listPicUrl"`
	Sales          int64       `json:"sales"`
	RmbOriginPrice string      `json:"rmbOriginPrice"`
	SkuId          int64       `json:"skuId"`
	ExtItemType    interface{} `json:"extItemType"`
	ExtItemId      interface{} `json:"extItemId"`
	CnySkuId       int64       `json:"cnySkuId"`
	CnyProductId   int64       `json:"cnyProductId"`
	ShowTagName    string      `json:"showTagName"`
	ListWebPicUrl  interface{} `json:"listWebPicUrl"`
	SupportShare   int64       `json:"supportShare"`
	ShowType       int64       `json:"showType"`
	InnerLabel     string      `json:"innerLabel"`
	DayLimit       int64       `json:"dayLimit"`
}

type YunBeiSceneResourceReq added in v0.3.0

type YunBeiSceneResourceReq struct {
	types.ReqCommon
}

type YunBeiSceneResourceResp added in v0.3.0

type YunBeiSceneResourceResp struct {
	types.RespCommon[YunBeiSceneResourceRespData]
}

type YunBeiSceneResourceRespData added in v0.3.0

type YunBeiSceneResourceRespData struct {
	ExclusivePositionCodes []interface{} `json:"exclusivePositionCodes"`
	Hints                  []struct {
		Template struct {
			TemplateType int64 `json:"templateType"`
		} `json:"template"`
		Data struct {
			Extra struct {
				Duration int64 `json:"duration"`
				Log      struct {
				} `json:"log"`
				ConstructLogId    string `json:"constructLogId"`
				IconType          int64  `json:"iconType"`
				ShowType          string `json:"showType"`
				StartTime         int64  `json:"startTime"`
				Position          int64  `json:"position"`
				EndTime           int64  `json:"endTime"`
				GeneralizedObject []struct {
					CreativeReachId              string `json:"creativeReachId"`
					Summary                      string `json:"summary"`
					SubIndex                     int64  `json:"subIndex"`
					ResourceId                   string `json:"resourceId"`
					Code                         string `json:"code"`
					ResourceFrequencyControlCode struct {
						PositionCode string `json:"positionCode"`
					} `json:"resourceFrequencyControlCode"`
					TrpId string `json:"trp_id"`
					Log   struct {
						SCtrp string `json:"s_ctrp"`
					} `json:"log"`
					PositionCode string `json:"positionCode"`
					TemplateId   int64  `json:"templateId"`
					CreativeId   int64  `json:"creativeId"`
					Scene        string `json:"scene"`
					TrpType      string `json:"trp_type"`
					PlanId       string `json:"planId"`
					SCtrp        string `json:"s_ctrp"`
					ResourceType string `json:"resourceType"`
					ChannelCode  string `json:"channelCode"`
				} `json:"generalizedObject"`
				LogMap struct {
					Fgid string `json:"fgid"`
				} `json:"logMap"`
			} `json:"extra"`
		} `json:"data"`
		Position struct {
			Code string `json:"code"`
		} `json:"position"`
	} `json:"hints"`
	FixedActions []string `json:"fixedActions"`
	Message      string   `json:"message"`
	Trp          struct {
		Rules []string `json:"rules"`
	} `json:"trp"`
}

type YunBeiSignCalenderDayReq added in v0.3.0

type YunBeiSignCalenderDayReq struct {
	types.ReqCommon
	Month string `json:"month"` // eg: 5
	Day   string `json:"day"`   // eg: 5
}

type YunBeiSignCalenderDayResp added in v0.3.0

type YunBeiSignCalenderDayResp struct {
	types.RespCommon[YunBeiSignCalenderDayRespData]
}

type YunBeiSignCalenderDayRespData added in v0.3.0

type YunBeiSignCalenderDayRespData struct{}

type YunBeiSignHolidayReq added in v0.3.0

type YunBeiSignHolidayReq struct {
	types.ReqCommon
}

type YunBeiSignHolidayResp added in v0.3.0

type YunBeiSignHolidayResp struct {
	types.RespCommon[string] // 电力满格 快乐无限🥳
}

type YunBeiSignInCalendarReq

type YunBeiSignInCalendarReq struct{}

type YunBeiSignInCalendarResp

type YunBeiSignInCalendarResp struct {
	types.RespCommon[YunBeiSignInCalendarRespData]
}

type YunBeiSignInCalendarRespData

type YunBeiSignInCalendarRespData struct {
	// SignStr 例如:000000000000111101100000000000 其中1代表对应天数数是否签到
	SignStr string `json:"signStr"`
	// CurTimeStamp 例如:1718792819079
	CurTimeStamp int64 `json:"curTimeStamp"`
}

type YunBeiSignInJudgeReq

type YunBeiSignInJudgeReq struct{}

type YunBeiSignInJudgeResp

type YunBeiSignInJudgeResp struct {
	types.RespCommon[bool]
}

type YunBeiSignInProgressReq

type YunBeiSignInProgressReq struct{}

type YunBeiSignInProgressResp

type YunBeiSignInProgressResp struct {
	types.RespCommon[YunBeiSignInProgressRespData]
}

type YunBeiSignInProgressRespData

type YunBeiSignInProgressRespData struct {
	ReSignJumpUrl string `json:"reSignJumpUrl,omitempty"`
	// ExtraCount 待分析: 再签几天到可以获得奖励(此理论不对)
	ExtraCount    int64                                       `json:"extraCount,omitempty"`
	ExtInfo       string                                      `json:"extInfo,omitempty"`
	LotteryConfig []YunBeiSignInProgressRespDataLotteryConfig `json:"lotteryConfig,omitempty"`
}

type YunBeiSignInProgressRespDataLotteryConfig

type YunBeiSignInProgressRespDataLotteryConfig struct {
	// SignDay 签到多少天可以获得奖励
	SignDay int64 `json:"signDay"`
	// BaseGrant 签到奖励相关描述
	BaseGrant struct {
		Id int64 `json:"id"`
		// Name 签到奖励描述 例如: 3云贝
		Name    string `json:"name"`
		IconUrl string `json:"iconUrl"`
		Type    int64  `json:"type"`
		// Note 提示描述 例如: 云贝直接充值到账,详情可至账单查看
		Note string `json:"note"`
	} `json:"baseGrant"`
	ExtraGrant *ExtraGrant `json:"extraGrant"`
	// BaseLotteryId 签到奖励id,当可以领取时则有值,反之id为0
	BaseLotteryId int64 `json:"baseLotteryId"`
	// BaseLotteryStatus 签到奖励状态 0:可领取或未达成? 1:已领取
	BaseLotteryStatus  int64 `json:"baseLotteryStatus"`
	ExtraLotteryId     int64 `json:"extraLotteryId"`
	ExtraLotteryStatus int64 `json:"extraLotteryStatus"`
}

type YunBeiSignInReq

type YunBeiSignInReq struct{}

type YunBeiSignInResp

type YunBeiSignInResp struct {
	types.RespCommon[YunBeiSignInRespData]
}

type YunBeiSignInRespData

type YunBeiSignInRespData struct {
	// Sign 签到成功返回true重复签到则返回false
	Sign bool `json:"sign"`
}

type YunBeiSignInfoReq

type YunBeiSignInfoReq struct{}

type YunBeiSignInfoResp

type YunBeiSignInfoResp struct {
	// Code 错误码 200:成功
	types.RespCommon[YunBeiSignInfoRespData]
	// Point 签到获得积分奖励数量,目前签到规则已经更改变成连续几天签到才能拿获取奖励
	Point int64 `json:"point"`
}

YunBeiSignInfoResp 签到返回

type YunBeiSignInfoRespData

type YunBeiSignInfoRespData struct {
	Days   int64 `json:"days"`
	Shells int64 `json:"shells"`
}

type YunBeiSignLotteryReq added in v0.2.2

type YunBeiSignLotteryReq struct {
	types.ReqCommon
	UserLotteryId string `json:"userLotteryId"` // 对应 YunBeiSignInProgressRespDataLotteryConfig 中得BaseLotteryId字段
}

type YunBeiSignLotteryResp added in v0.2.2

type YunBeiSignLotteryResp struct {
	types.RespCommon[bool] // true: 领取成功,如果领取过则为false
}

type YunBeiSignRemindReq added in v0.3.0

type YunBeiSignRemindReq struct {
	types.ReqCommon
}

type YunBeiSignRemindResp added in v0.3.0

type YunBeiSignRemindResp struct {
	types.RespCommon[int64] // 0:关闭 1:开启
}

type YunBeiSquareBlockCategoryReq added in v0.3.0

type YunBeiSquareBlockCategoryReq struct {
	types.ReqCommon
}

type YunBeiSquareBlockCategoryResp added in v0.3.0

type YunBeiSquareBlockCategoryResp struct {
	types.RespCommon[YunBeiSquareBlockCategoryRespData]
}

type YunBeiSquareBlockCategoryRespData added in v0.3.0

type YunBeiSquareBlockCategoryRespData struct {
	BlockCategoryList []YunBeiSquareBlockCategoryRespDataBlockCategoryList `json:"blockCategoryList"`
}

type YunBeiSquareBlockCategoryRespDataBlockCategoryList added in v0.3.0

type YunBeiSquareBlockCategoryRespDataBlockCategoryList struct {
	Id                   int64                                                                    `json:"id"`
	Name                 string                                                                   `json:"name"`
	ImageUrl             string                                                                   `json:"imageUrl"`
	SecondCategoryVOList []YunBeiSquareBlockCategoryRespDataBlockCategoryListSecondCategoryVOList `json:"secondCategoryVOList"`
}

type YunBeiSquareBlockCategoryRespDataBlockCategoryListSecondCategoryVOList added in v0.3.0

type YunBeiSquareBlockCategoryRespDataBlockCategoryListSecondCategoryVOList struct {
	Id   int64  `json:"id"`
	Name string `json:"name"`
}

type YunBeiTaskFinishReq

type YunBeiTaskFinishReq struct {
	Period      string `json:"period"`      // eg: 1
	UserTaskId  string `json:"userTaskId"`  // eg: 293239602686
	DepositCode string `json:"depositCode"` // eg: 1304
}

type YunBeiTaskFinishResp

type YunBeiTaskFinishResp struct {
	types.RespCommon[bool]
}

type YunBeiTaskListReq

type YunBeiTaskListReq struct{}

type YunBeiTaskListResp

type YunBeiTaskListResp struct {
	types.RespCommon[[]YunBeiTaskListRespData]
}

type YunBeiTaskListRespData

type YunBeiTaskListRespData struct {
	ActionType       int64       `json:"actionType"`
	BackgroundPicUrl interface{} `json:"backgroundPicUrl"`
	// Completed 任务数是否处理
	Completed        bool        `json:"completed"`
	CompletedIconUrl interface{} `json:"completedIconUrl"`
	CompletedPoint   int64       `json:"completedPoint"`
	ExtInfoMap       interface{} `json:"extInfoMap"`
	// Link 任务跳转链接 例如: orpheus://songrcmd
	Link             string      `json:"link"`
	LinkText         string      `json:"linkText"`
	Period           int64       `json:"period"`
	Position         int64       `json:"position"`
	Status           int64       `json:"status"`
	TargetPoint      int64       `json:"targetPoint"`
	TargetStatus     interface{} `json:"targetStatus"`
	TargetUserTaskId int64       `json:"targetUserTaskId"`
	// TaskDescription 任务描述
	TaskDescription string `json:"taskDescription"`
	// TaskId 任务id
	TaskId int64 `json:"taskId"`
	// TaskName 任务名称
	TaskName string `json:"taskName"`
	// TaskPoint 任务云贝奖励数量
	TaskPoint       int64 `json:"taskPoint"`
	TaskPointDetail []struct {
		ProgressRate     int64  `json:"progressRate"`
		RewardExtendInfo string `json:"rewardExtendInfo"`
		RewardId         int64  `json:"rewardId"`
		RewardType       int64  `json:"rewardType"`
		SortValue        int64  `json:"sortValue"`
		StageType        int64  `json:"stageType"`
		Status           int64  `json:"status"`
		SumTarget        int64  `json:"sumTarget"`
		Times            int64  `json:"times"`
		UserMissionId    int64  `json:"userMissionId"`
		Value            int64  `json:"value"`
		Worth            int64  `json:"worth"`
	} `json:"taskPointDetail"`
	TaskType    string      `json:"taskType"`
	UserTaskId  int64       `json:"userTaskId"`
	WebPicUrl   string      `json:"webPicUrl"`
	WordsPicUrl interface{} `json:"wordsPicUrl"`
}

type YunBeiTaskListRespV3Data

type YunBeiTaskListRespV3Data struct {
	Newbie interface{} `json:"newbie"`
	Normal struct {
		List []struct {
			ActionType       int64       `json:"actionType"`
			BackgroundPicUrl interface{} `json:"backgroundPicUrl"`
			Completed        bool        `json:"completed"`
			CompletedIconUrl interface{} `json:"completedIconUrl"`
			CompletedPoint   int64       `json:"completedPoint"`
			ExtInfoMap       *struct {
				MissionCode string `json:"missionCode"`
			} `json:"extInfoMap"`
			Link             string      `json:"link"`
			LinkText         string      `json:"linkText"`
			Period           int64       `json:"period"`
			Position         int64       `json:"position"`
			Status           int64       `json:"status"`
			TargetPoint      int64       `json:"targetPoint"`
			TargetStatus     interface{} `json:"targetStatus"`
			TargetUserTaskId int64       `json:"targetUserTaskId"`
			TaskDescription  string      `json:"taskDescription"`
			TaskId           int64       `json:"taskId"`
			TaskName         string      `json:"taskName"`
			TaskPoint        int64       `json:"taskPoint"`
			TaskPointDetail  []struct {
				ProgressRate     int64  `json:"progressRate"`
				RewardExtendInfo string `json:"rewardExtendInfo"`
				RewardId         int64  `json:"rewardId"`
				RewardType       int64  `json:"rewardType"`
				SortValue        int64  `json:"sortValue"`
				StageType        int64  `json:"stageType"`
				Status           int64  `json:"status"`
				SumTarget        int64  `json:"sumTarget"`
				Times            int64  `json:"times"`
				UserMissionId    int64  `json:"userMissionId"`
				Value            int64  `json:"value"`
				Worth            int64  `json:"worth"`
			} `json:"taskPointDetail"`
			TaskType    string      `json:"taskType"`
			UserTaskId  int64       `json:"userTaskId"`
			WebPicUrl   string      `json:"webPicUrl"`
			WordsPicUrl interface{} `json:"wordsPicUrl"`
		} `json:"list"`
		TypeList []struct {
			Name string `json:"name"`
		} `json:"typeList"`
	} `json:"normal"`
}

type YunBeiTaskListV3Req

type YunBeiTaskListV3Req struct{}

type YunBeiTaskListV3Resp

type YunBeiTaskListV3Resp struct {
	types.RespCommon[YunBeiTaskListRespV3Data]
}

type YunBeiTaskRecommendV2Req added in v0.3.0

type YunBeiTaskRecommendV2Req struct {
	types.ReqCommon
	AdExtJson YunBeiTaskRecommendV2ReqAdExtJson `json:"adExtJson"`
}

type YunBeiTaskRecommendV2ReqAdExtJson added in v0.3.0

type YunBeiTaskRecommendV2ReqAdExtJson struct {
	Resolution struct {
		Width  int64 `json:"width"`
		Height int64 `json:"height"`
	} `json:"resolution"`
	Idfa         string `json:"idfa"`
	Openudid     string `json:"openudid"`
	Imei         string `json:"imei"`
	Aaid         string `json:"aaid"`
	Mobilename   string `json:"mobilename"`
	AndroidId    string `json:"android_id"`
	Terminal     string `json:"terminal"`
	Mac          string `json:"mac"`
	Network      int64  `json:"network"`
	Op           string `json:"op"`
	Manufacturer string `json:"manufacturer"`
	Oaid         string `json:"oaid"`
	TeenMode     bool   `json:"teenMode"`
	AdReqId      string `json:"adReqId"`
	SceneInfo    struct {
		SongId string `json:"songId"`
		GameId string `json:"gameId"`
	} `json:"sceneInfo"`
}

YunBeiTaskRecommendV2ReqAdExtJson {"resolution":{"width":450,"height":800},"idfa":"","openudid":"","imei":"","aaid":"","mobilename":"","android_id":"","terminal":"","mac":"","network":0,"op":"","manufacturer":"","oaid":"","teenMode":false,"adReqId":"1289504343_1746441620734_49400","sceneInfo":{"songId":"","gameId":""}}

type YunBeiTaskRecommendV2Resp added in v0.3.0

type YunBeiTaskRecommendV2Resp struct {
	types.RespCommon[[]YunBeiTaskRecommendV2RespData]
}

type YunBeiTaskRecommendV2RespData added in v0.3.0

type YunBeiTaskRecommendV2RespData struct {
	TaskId           int64       `json:"taskId"`
	UserTaskId       int64       `json:"userTaskId"`
	TaskName         string      `json:"taskName"`
	TaskPoint        int64       `json:"taskPoint"`
	WebPicUrl        string      `json:"webPicUrl"`
	CompletedIconUrl interface{} `json:"completedIconUrl"`
	BackgroundPicUrl interface{} `json:"backgroundPicUrl"`
	WordsPicUrl      interface{} `json:"wordsPicUrl"`
	Link             string      `json:"link"`
	LinkText         string      `json:"linkText"`
	Completed        bool        `json:"completed"`
	CompletedPoint   int64       `json:"completedPoint"`
	Status           int64       `json:"status"`
	TargetStatus     interface{} `json:"targetStatus"`
	TargetPoint      int64       `json:"targetPoint"`
	TargetUserTaskId int64       `json:"targetUserTaskId"`
	TaskDescription  string      `json:"taskDescription"`
	Position         int64       `json:"position"`
	ActionType       int64       `json:"actionType"`
	TaskType         string      `json:"taskType"`
	ExtInfoMap       struct {
		MissionCode string `json:"missionCode"`
	} `json:"extInfoMap"`
	TaskPointDetail []struct {
		UserMissionId    int64  `json:"userMissionId"`
		SortValue        int64  `json:"sortValue"`
		StageType        int64  `json:"stageType"`
		Times            int64  `json:"times"`
		Value            int64  `json:"value"`
		ProgressRate     int64  `json:"progressRate"`
		SumTarget        int64  `json:"sumTarget"`
		RewardId         int64  `json:"rewardId"`
		RewardType       int64  `json:"rewardType"`
		Worth            int64  `json:"worth"`
		RewardExtendInfo string `json:"rewardExtendInfo"`
		Status           int64  `json:"status"`
	} `json:"taskPointDetail"`
	Period    int64  `json:"period"`
	SubAction string `json:"subAction"`
}

type YunBeiTaskTodoReq

type YunBeiTaskTodoReq struct{}

type YunBeiTaskTodoResp

type YunBeiTaskTodoResp struct {
	types.RespCommon[[]YunBeiTaskTodoRespData]
}

type YunBeiTaskTodoRespData

type YunBeiTaskTodoRespData struct {
	// Completed 任务数是否处理
	Completed   bool  `json:"completed"`
	DepositCode int64 `json:"depositCode"`
	ExpireTime  int64 `json:"expireTime"`
	// Link 任务跳转链接 例如: orpheus://songrcmd
	Link   string `json:"link"`
	Period int64  `json:"period"`
	// TaskName 任务名称
	TaskName string `json:"taskName"`
	// TaskPoint 任务云贝奖励数量
	TaskPoint  int64 `json:"taskPoint"`
	UserTaskId int64 `json:"userTaskId"`
}

type YunBeiTodayRecommendCardReq added in v0.3.0

type YunBeiTodayRecommendCardReq struct {
	types.ReqCommon
	Scene string `json:"scene"` // eg: 0
}

type YunBeiTodayRecommendCardResp added in v0.3.0

type YunBeiTodayRecommendCardResp struct {
	types.RespCommon[[]YunBeiTodayRecommendCardRespData]
}

type YunBeiTodayRecommendCardRespData added in v0.3.0

type YunBeiTodayRecommendCardRespData struct {
	Background string `json:"background"`
	Overlay    string `json:"overlay"`
	Theme      string `json:"theme"`
	DateDesc   string `json:"dateDesc"`
}

type YunBeiTodaySignInInfoReq

type YunBeiTodaySignInInfoReq struct{}

type YunBeiTodaySignInInfoResp

type YunBeiTodaySignInInfoResp struct {
	types.RespCommon[YunBeiTodaySignInInfoRespData]
}

type YunBeiTodaySignInInfoRespData

type YunBeiTodaySignInInfoRespData struct {
	Shells int64 `json:"shells"`
}

type YunBeiUserInfoReq

type YunBeiUserInfoReq struct{}

type YunBeiUserInfoResp

type YunBeiUserInfoResp struct {
	types.RespCommon[any]
	// Level 账号等级L1~L10
	Level     int64 `json:"level"`
	UserPoint struct {
		// Balance 云贝可用数量
		Balance int64 `json:"balance"`
		// BlockBalance 云贝冻结数量
		BlockBalance int64 `json:"blockBalance"`
		// Status 状态 0:正常 其他待补充
		Status     int64 `json:"status"`
		UpdateTime int64 `json:"updateTime"`
		UserId     int64 `json:"userId"`
		Version    int64 `json:"version"`
	} `json:"userPoint"`
	MobileSign       bool        `json:"mobileSign"`
	PcSign           bool        `json:"pcSign"`
	Viptype          int64       `json:"viptype"`
	Expiretime       int64       `json:"expiretime"`
	BackupExpireTime int64       `json:"backupExpireTime"`
	StoreTitle       string      `json:"storeTitle"`
	Pubwords         string      `json:"pubwords"`
	GameConfig       interface{} `json:"gameConfig"`
	RingConfig       interface{} `json:"ringConfig"`
	FmConfig         interface{} `json:"fmConfig"`
	TicketConfig     struct {
		PicId  string `json:"picId"`
		PicUrl string `json:"picUrl"`
	} `json:"ticketConfig"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL