weapi

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2025 License: MIT Imports: 18 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: 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) GetUserInfo

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

GetUserInfo 获取用户信息

func (*Api) Layout

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

Layout 退出

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) PartnerDailyTask

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

PartnerDailyTask 查询当日任务情况

func (*Api) PartnerEvaluate

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

PartnerEvaluate 音乐评审提交

func (*Api) PartnerExtraReport

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

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

func (*Api) PartnerExtraTask

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

PartnerExtraTask 扩展听歌任务列表,返回得数据有100首歌(2024年10月21日推出的新功能测评)。

func (*Api) PartnerHome

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

PartnerHome 查询本周完成任务情况

func (*Api) PartnerLatest

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

PartnerLatest 查询下个周期开始时间

func (*Api) PartnerNotice

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

PartnerNotice 是否开启通知?

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:正确数量?

func (*Api) PartnerUserinfo

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

PartnerUserinfo 查询当前用户数据

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) PlaylistDetail

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

PlaylistDetail 歌单列表 url: testdata/har/7.har needLogin: 不需要认证 https://music.163.com/api/v6/playlist/detail?id=1981392816

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) RecommendSongs

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

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

func (*Api) SearchDefault

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

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

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: 未知 说明: 使用 `/song/url/v1` 接口获取的是歌曲试听 url, 但存在部分歌曲在非 VIP 账号上可以下载无损音质而不能试听无损音质, 使用此接口可使非 VIP 账号获取这些歌曲的无损音频

func (*Api) SongMusicQuality

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

SongMusicQuality 根据歌曲id获取支持哪些音质.其中types.Quality部位nil得则代表支持得品质 url: 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。

func (*Api) TokenRefresh

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

TokenRefresh 登录token刷新

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) VipClientInfo

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

VipClientInfo vip信息 url: needLogin: 未知

func (*Api) VipInfo

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

VipInfo vip信息 url: 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) VipTask

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

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

func (*Api) VipTaskV2

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

VipTaskV2 vip任务列表V2 url: needLogin: 未知

func (*Api) WebLog

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

WebLog 日志上报

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) YunBeiNewJudge

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

YunBeiNewJudge TODO: 未知 url: needLogin: 是

func (*Api) YunBeiReceipt

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

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

func (*Api) YunBeiRecommendConfig

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

YunBeiRecommendConfig 推荐配置 url: 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: 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: needLogin: 是

func (*Api) YunBeiSignInfo

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

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

func (*Api) YunBeiTaskFinish

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

YunBeiTaskFinish 获取完成云贝任务奖励,一次只能领取一个,网易一键领取是调用了多次该接口实现。 url: 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) YunBeiTaskTodo

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

YunBeiTaskTodo 获取用户云贝todo任务列表,返回得列表中只包含未完成的任务。 url: 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时出现此错误,经后来测试多试了几次重传发现又好了貌似是临时性错误,待确认排查。
	Code           int64        `json:"code,omitempty"`
	SongId         string       `json:"songId,omitempty"`
	WaitTime       int64        `json:"waitTime"`
	Exists         bool         `json:"exists"`
	NextUploadTime int64        `json:"nextUploadTime"`
	SongIdLong     int          `json:"songIdLong"`
	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
	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"`
	Token      string `json:"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" json:"needUpload,omitempty"`
}

type CloudUploadLbsResp

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

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 EapiOption

type EapiOption struct {
	Json string
	Path string
	Url  string
}

EapiOption eapi 请求所需要的参数

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 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 PartnerEvaluateReq

type PartnerEvaluateReq struct {
	types.ReqCommon
	TaskId        int64       `json:"taskId"`        // 任务id 参数值对应https://interface.music.163.com/weapi/music/partner/daily/task/get 接口
	WorkId        int64       `json:"workId"`        // 哪首歌曲id 参数值对应https://interface.music.163.com/weapi/music/partner/daily/task/get 接口
	Score         int64       `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
	ExtraResource bool        `json:"extraResource"` // 当测评更多歌曲时使用
}

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[any]
}

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"`          // 当前歌曲测评得分
}

type PartnerExtraReportReq

type PartnerExtraReportReq struct {
	types.ReqCommon
	WorkId        int64  `json:"workId"`
	ResourceId    int64  `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 {
	Comment         string        `json:"comment"`
	Completed       bool          `json:"completed"`
	CustomTags      []interface{} `json:"customTags"`
	Score           float64       `json:"score"`
	SongCommentInfo interface{}   `json:"songCommentInfo"`
	Tags            []interface{} `json:"tags"`
	TaskTitleDesc   string        `json:"taskTitleDesc"`
	UserScore       float64       `json:"userScore"`
	Work            PartnerWork   `json:"work"`
}

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"`
	EndDate   int64 `json:"endDate"`
	User      struct {
		UserId    int64  `json:"userId"`
		NickName  string `json:"nickName"`
		AvatarUrl string `json:"avatarUrl"`
		Title     string `json:"title"`
		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"`
}

type PartnerLatestReq

type PartnerLatestReq struct {
	types.ReqCommon
}

type PartnerLatestResp

type PartnerLatestResp struct {
	types.RespCommon[PartnerLatestRespData]
}

type PartnerLatestRespData

type PartnerLatestRespData struct {
	SectionPeriod       string `json:"sectionPeriod"`
	Periods             string `json:"periods"`
	NextPeriodStartTime int64  `json:"nextPeriodStartTime"`
}

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"`
	// 任务数量
	Count int64 `json:"count"`
	// 完成数量
	CompletedCount int64 `json:"completedCount"`
	// 完成任务获得的积分老版为10现在3.0版本为8分
	Integral  int64       `json:"integral"`
	TaskTitle interface{} `json:"taskTitle"`
	// Works 如果没有测评资格则该任务列表为空
	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"`
	} `json:"works"`
	// 推荐歌曲列表该列表为新得音乐合伙人3.0功能中增加
	RecResources []struct {
		Work           PartnerWork `json:"work"`
		SpecialTag     interface{} `json:"specialTag"`
		SongCommonTags interface{} `json:"songCommonTags"`
		ReceivedScore  int         `json:"receivedScore"`
		QualityScore   int         `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   int         `json:"totalTaskNum"`
		FinishTaskNum  int         `json:"finishTaskNum"`
	} `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         string `json:"title"`
	Days          int64  `json:"days"`
	Integral      int64  `json:"integral"`
	EvaluateCount int64  `json:"evaluateCount"`
	PickCount     int64  `json:"pickCount"`
	// Status 状态: ELIMINATED: 可能是代表本期已经结算或者未满足320分失去测评资格了
	Status     string        `json:"status"`
	PickRights []interface{} `json:"pickRights"`
	TitleStats []struct {
		Title string `json:"title"`
		Count int64  `json:"count"`
	} `json:"titleStats"`
	CurrentPeriodRank  interface{} `json:"currentPeriodRank"`
	RecoverExpiredTime int64       `json:"recoverExpiredTime"`
	RightType          int64       `json:"rightType"`
}

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"`
	LyricContent      string `json:"lyricContent"`
	Duration          int64  `json:"duration"`
	SongStartPosition int64  `json:"songStartPosition"`
	SongEndPosition   int64  `json:"songEndPosition"`
	Status            string `json:"status"` // NORMAL
	PlayUrl           string `json:"playUrl"`
	Source            string `json:"source"` // RANK_INSERT,MUSE,等
	GoodRate          int64  `json:"goodRate"`
	Style             string `json:"style"` // 华语、华语嘻哈说唱、等
}

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 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"`
}

type QrcodeCreateKeyResp

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

type QrcodeGenerateReq

type QrcodeGenerateReq struct {
	CodeKey string
	Level   qrcode.RecoveryLevel // 二维码恢复率
}

type QrcodeGenerateResp

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

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 RequestData

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

RequestData 传入请求数据类型

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 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          interface{}                  `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          interface{}                  `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 SongMusicQualityReq

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

type SongMusicQualityResp

type SongMusicQualityResp struct {
	types.RespCommon[SongMusicQualityRespData]
}

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 SongPlayerReqData

type SongPlayerReqData 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          interface{}                  `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 SongPlayerResp

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

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          interface{}                  `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、flac(可能还有其他类型) 作用未知
	ImmerseType string           `json:"immerseType"` // 只有Level为sky时生效(可能还有其他类型)
}

type SongPlayerV1Resp

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

type TokenRefreshReq

type TokenRefreshReq struct {
	types.ReqCommon
}

type TokenRefreshResp

type TokenRefreshResp struct {
	types.RespCommon[any]
}

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 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         int         `json:"vipCode"`
		VipLevel        int         `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         int         `json:"vipCode"`
		VipLevel        int         `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         int         `json:"vipCode"`
		VipLevel        int         `json:"vipLevel"`
	} `json:"musicPackage"`
	Now               int64 `json:"now"`
	OldCacheProtocol  bool  `json:"oldCacheProtocol"`
	RedVipAnnualCount int   `json:"redVipAnnualCount"`
	RedVipLevel       int   `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         int         `json:"vipCode"`
		VipLevel        int         `json:"vipLevel"`
	} `json:"redplus"`
	RelationOtherUserId               int `json:"relationOtherUserId"`
	RelationOtherUserRedVipExpireTime int `json:"relationOtherUserRedVipExpireTime"`
	RelationType                      int `json:"relationType"`
	UserId                            int `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         int         `json:"vipCode"`
		VipLevel        int         `json:"vipLevel"`
	} `json:"voiceBookVip"`
}

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         int    `json:"vipCode"`
		VipLevel        int    `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         int    `json:"vipCode"`
		VipLevel        int    `json:"vipLevel"`
	} `json:"musicPackage"`
	RedVipAnnualCount     int         `json:"redVipAnnualCount"`
	RedVipDynamicIconUrl  interface{} `json:"redVipDynamicIconUrl"`
	RedVipDynamicIconUrl2 interface{} `json:"redVipDynamicIconUrl2"`
	RedVipLevel           int         `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         int    `json:"vipCode"`
		VipLevel        int    `json:"vipLevel"`
	} `json:"redplus"`
}

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 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      int         `json:"actionType"`
			BasicTaskId     int         `json:"basicTaskId"`
			BusinessIdent   interface{} `json:"businessIdent"`
			CurrentProgress int         `json:"currentProgress"`
			Description     string      `json:"description"`
			GrowthPoint     int         `json:"growthPoint"`
			IconUrl         string      `json:"iconUrl"`
			MissionId       int         `json:"missionId"`
			Name            string      `json:"name"`
			NeedReceive     bool        `json:"needReceive"`
			Period          int         `json:"period"`
			ProgressType    int         `json:"progressType"`
			RuleId          int         `json:"ruleId"`
			SeqTag          int         `json:"seqTag"`
			ShowProgress    bool        `json:"showProgress"`
			SortValue       int         `json:"sortValue"`
			Status          int         `json:"status"`
			TagId           int         `json:"tagId"`
			TargetWorth     int         `json:"targetWorth"`
			Targets         interface{} `json:"targets"`
			TaskId          string      `json:"taskId"`
			TaskTag         string      `json:"taskTag"`
			TotalUngetScore int         `json:"totalUngetScore"`
			Type            int         `json:"type"`
			TypeCode        interface{} `json:"typeCode"`
			UnGetIds        []string    `json:"unGetIds"`
			UpdateTime      int         `json:"updateTime"`
			Url             string      `json:"url"`
			UserMissionId   interface{} `json:"userMissionId"`
		} `json:"taskItems"`
		TaskType int `json:"taskType"`
	} `json:"taskList"`
	TaskScore int `json:"taskScore"`
}

type VipTaskV2Req

type VipTaskV2Req struct{}

type VipTaskV2Resp

type VipTaskV2Resp struct {
	types.RespCommon[VipTaskV2RespData]
}

type VipTaskV2RespData

type VipTaskV2RespData struct {
	MaxScore      int `json:"maxScore"`
	ScoreDuration int `json:"scoreDuration"`
	TaskScore     int `json:"taskScore"`
	UnGetAllScore int `json:"unGetAllScore"`
	TaskList      []struct {
		Seq       int    `json:"seq"`
		SeqName   string `json:"seqName"`
		TaskItems []struct {
			CurrentInfo struct {
				Action          string      `json:"action"`
				ActionType      int         `json:"actionType"`
				BasicTaskId     int         `json:"basicTaskId"`
				BusinessIdent   interface{} `json:"businessIdent"`
				CurrentProgress int         `json:"currentProgress"`
				Description     string      `json:"description"`
				GrowthPoint     int         `json:"growthPoint"`
				IconUrl         string      `json:"iconUrl"`
				MissionId       int         `json:"missionId"`
				Name            string      `json:"name"`
				NeedReceive     bool        `json:"needReceive"`
				Period          int         `json:"period"`
				ProgressType    int         `json:"progressType"`
				RuleId          int         `json:"ruleId"`
				SeqTag          int         `json:"seqTag"`
				ShowProgress    bool        `json:"showProgress"`
				SortValue       int         `json:"sortValue"`
				Status          int         `json:"status"`
				TagId           int         `json:"tagId"`
				TargetWorth     int         `json:"targetWorth"`
				TaskId          string      `json:"taskId"`
				TaskTag         string      `json:"taskTag"`
				TotalUngetScore int         `json:"totalUngetScore"`
				Type            int         `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 int `json:"taskType"`
	} `json:"taskList"`
}

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 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 int `json:"expireAmount"`
	Day          int `json:"day"`
}

type YunBeiNewJudgeReq

type YunBeiNewJudgeReq struct{}

type YunBeiNewJudgeResp

type YunBeiNewJudgeResp struct {
	types.RespCommon[YunBeiNewJudgeRespData]
}

type YunBeiNewJudgeRespData

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

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      int    `json:"redeemCount"`
	RedeemFlag       int    `json:"redeemFlag"`
	RedeemProductIds string `json:"redeemProductIds"`
	RefreshTime      int    `json:"refreshTime"`
}

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 {
	// data true 为已签到
	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 int `json:"signDay"`
	// BaseGrant 签到奖励相关描述
	BaseGrant struct {
		Id int `json:"id"`
		// Name 签到奖励描述 例如: 3云贝
		Name    string `json:"name"`
		IconUrl string `json:"iconUrl"`
		Type    int    `json:"type"`
		// Note 提示描述 例如: 云贝直接充值到账,详情可至账单查看
		Note string `json:"note"`
	} `json:"baseGrant"`
	ExtraseLotteryId int `json:"extraseLotteryId"`
	// BaseLotteryStatus 签到奖励状态 0:未领取 1:已领取
	BaseLotteryStatus  int `json:"baseLotteryStatus"`
	ExtraLotteryId     int `json:"extraLotteryId"`
	ExtraLotteryStatus int `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 YunBeiTaskFinishReq

type YunBeiTaskFinishReq struct {
	Period      string `json:"period"`
	UserTaskId  string `json:"userTaskId"`
	DepositCode string `json:"depositCode"`
}

type YunBeiTaskFinishResp

type YunBeiTaskFinishResp struct {
	Code    string // 此接口code返回类型为string
	Success bool
	Message string
	Data    any
	Ignore  bool
	Present bool
	Empty   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           int         `json:"status"`
	TargetPoint      int         `json:"targetPoint"`
	TargetStatus     interface{} `json:"targetStatus"`
	TargetUserTaskId int         `json:"targetUserTaskId"`
	// TaskDescription 任务描述
	TaskDescription string `json:"taskDescription"`
	// TaskId 任务id
	TaskId int `json:"taskId"`
	// TaskName 任务名称
	TaskName string `json:"taskName"`
	// TaskPoint 任务云贝奖励数量
	TaskPoint       int `json:"taskPoint"`
	TaskPointDetail []struct {
		ProgressRate     int    `json:"progressRate"`
		RewardExtendInfo string `json:"rewardExtendInfo"`
		RewardId         int    `json:"rewardId"`
		RewardType       int    `json:"rewardType"`
		SortValue        int    `json:"sortValue"`
		StageType        int    `json:"stageType"`
		Status           int    `json:"status"`
		SumTarget        int    `json:"sumTarget"`
		Times            int    `json:"times"`
		UserMissionId    int    `json:"userMissionId"`
		Value            int    `json:"value"`
		Worth            int    `json:"worth"`
	} `json:"taskPointDetail"`
	TaskType    string      `json:"taskType"`
	UserTaskId  int         `json:"userTaskId"`
	WebPicUrl   string      `json:"webPicUrl"`
	WordsPicUrl interface{} `json:"wordsPicUrl"`
}

type YunBeiTaskListRespV3Data

type YunBeiTaskListRespV3Data struct {
	Newbie interface{} `json:"newbie"`
	Normal struct {
		List []struct {
			ActionType       int         `json:"actionType"`
			BackgroundPicUrl interface{} `json:"backgroundPicUrl"`
			Completed        bool        `json:"completed"`
			CompletedIconUrl interface{} `json:"completedIconUrl"`
			CompletedPoint   int         `json:"completedPoint"`
			ExtInfoMap       *struct {
				MissionCode string `json:"missionCode"`
			} `json:"extInfoMap"`
			Link             string      `json:"link"`
			LinkText         string      `json:"linkText"`
			Period           int         `json:"period"`
			Position         int         `json:"position"`
			Status           int         `json:"status"`
			TargetPoint      int         `json:"targetPoint"`
			TargetStatus     interface{} `json:"targetStatus"`
			TargetUserTaskId int         `json:"targetUserTaskId"`
			TaskDescription  string      `json:"taskDescription"`
			TaskId           int         `json:"taskId"`
			TaskName         string      `json:"taskName"`
			TaskPoint        int         `json:"taskPoint"`
			TaskPointDetail  []struct {
				ProgressRate     int    `json:"progressRate"`
				RewardExtendInfo string `json:"rewardExtendInfo"`
				RewardId         int    `json:"rewardId"`
				RewardType       int    `json:"rewardType"`
				SortValue        int    `json:"sortValue"`
				StageType        int    `json:"stageType"`
				Status           int    `json:"status"`
				SumTarget        int    `json:"sumTarget"`
				Times            int    `json:"times"`
				UserMissionId    int64  `json:"userMissionId"`
				Value            int    `json:"value"`
				Worth            int    `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 YunBeiTaskTodoReq

type YunBeiTaskTodoReq struct{}

type YunBeiTaskTodoResp

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

type YunBeiTaskTodoRespData

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

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