Documentation
¶
Index ¶
- Variables
- type Album
- type AlbumDetail
- type CommentResult
- type CommentType
- type GlobRecommendMusicRes
- type LoginStatusStruct
- type MusicDetail
- type MusicIDName
- type MusicInfo
- type NetEaseContext
- func (neteaseCtx *NetEaseContext) AsyncGetSearchRes(ctx context.Context, searchRes SearchMusic) (result []*SearchMusicItem, err error)
- func (neteaseCtx *NetEaseContext) CheckIfLogin(ctx context.Context) bool
- func (neteaseCtx *NetEaseContext) GetAlbumDetail(ctx context.Context, albumID string) (result *AlbumDetail, err error)
- func (neteaseCtx *NetEaseContext) GetComment(ctx context.Context, commentType CommentType, id string) (res *CommentResult, err error)
- func (neteaseCtx *NetEaseContext) GetDailyRecommendID() (musicIDs map[string]string, err error)
- func (neteaseCtx *NetEaseContext) GetDetail(ctx context.Context, musicID string) (musicDetail *MusicDetail)
- func (neteaseCtx *NetEaseContext) GetLyrics(ctx context.Context, songID string) (lyrics string, lyricsURL string)
- func (neteaseCtx *NetEaseContext) GetMusicURL(ctx context.Context, ID string) (url string, err error)
- func (neteaseCtx *NetEaseContext) GetMusicURLByID(ctx context.Context, musicIDName []*MusicIDName) (InfoList []MusicInfo, err error)
- func (neteaseCtx *NetEaseContext) GetMusicURLByIDs(ctx context.Context, musicIDs []string) (musicIDURL map[string]string, err error)
- func (neteaseCtx *NetEaseContext) GetNewRecommendMusic() (res []SearchMusicItem, err error)
- func (neteaseCtx *NetEaseContext) GetQRBase64(ctx context.Context) (err error)
- func (neteaseCtx *NetEaseContext) GetUniKey(ctx context.Context) (err error)
- func (neteaseCtx *NetEaseContext) InnerAsyncGetSearchRes(ctx context.Context, searchMusic SearchMusic, err error, ...)
- func (neteaseCtx *NetEaseContext) LoginNetEase(ctx context.Context) (err error)
- func (neteaseCtx *NetEaseContext) LoginNetEaseQR(ctx context.Context) (err error)
- func (neteaseCtx *NetEaseContext) RefreshLogin(ctx context.Context) error
- func (neteaseCtx *NetEaseContext) SaveCookie(ctx context.Context)
- func (neteaseCtx *NetEaseContext) SearchAlbumByKeyWord(ctx context.Context, keywords ...string) (result []*Album, err error)
- func (neteaseCtx *NetEaseContext) SearchMusicByKeyWord(ctx context.Context, keywords ...string) (result []*SearchMusicItem, err error)
- func (neteaseCtx *NetEaseContext) SearchPlaylistByKeyWord(ctx context.Context, keywords ...string)
- func (neteaseCtx *NetEaseContext) TryGetLastCookie(ctx context.Context)
- type Playlist
- type SearchLyrics
- type SearchMusic
- type SearchMusicItem
- type Song
Constants ¶
This section is empty.
Variables ¶
View Source
var IsTest = os.Getenv("IS_TEST")
IsTest 是否测试环境
View Source
var NetEaseAPIBaseURL = "http://netease-api:3335"
NetEaseAPIBaseURL 网易云API基础URL
View Source
var NetEaseGCtx = &NetEaseContext{}
NetEaseGCtx 网易云全局API调用封装
Functions ¶
This section is empty.
Types ¶
type AlbumDetail ¶
type AlbumDetail struct {
Songs []Song `json:"songs"`
}
type CommentResult ¶
type CommentType ¶
type CommentType string
const ( CommentTypeSong CommentType = "0" CommentTypeAlbum CommentType = "3" )
type GlobRecommendMusicRes ¶
type GlobRecommendMusicRes struct {
Result []struct {
PicURL string `json:"picUrl"`
Song struct {
Name string `json:"name"`
ID int `json:"id"`
Artists []struct {
Name string `json:"name"`
ID int `json:"id"`
} `json:"artists"`
} `json:"song"`
} `json:"result"`
}
GlobRecommendMusicRes 推荐音乐返回结果
type LoginStatusStruct ¶
type LoginStatusStruct struct {
Data struct {
Code int `json:"code"`
Account map[string]interface{} `json:"account"`
Profile map[string]interface{} `json:"profile"`
} `json:"data"`
}
LoginStatusStruct 登录状态
type MusicDetail ¶
type MusicDetail struct {
Songs []struct {
Name string `json:"name"`
ID int `json:"id"`
Pst int `json:"pst"`
T int `json:"t"`
Ar []struct {
ID int `json:"id"`
Name string `json:"name"`
Tns []interface{} `json:"tns"`
Alias []interface{} `json:"alias"`
} `json:"ar"`
Alia []interface{} `json:"alia"`
Pop int `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 struct {
ID int `json:"id"`
Name string `json:"name"`
PicURL string `json:"picUrl"`
Tns []interface{} `json:"tns"`
PicStr string `json:"pic_str"`
Pic int64 `json:"pic"`
} `json:"al"`
Dt int `json:"dt"`
H struct {
Br int `json:"br"`
Fid int `json:"fid"`
Size int `json:"size"`
Vd int `json:"vd"`
Sr int `json:"sr"`
} `json:"h"`
M struct {
Br int `json:"br"`
Fid int `json:"fid"`
Size int `json:"size"`
Vd int `json:"vd"`
Sr int `json:"sr"`
} `json:"m"`
L struct {
Br int `json:"br"`
Fid int `json:"fid"`
Size int `json:"size"`
Vd int `json:"vd"`
Sr int `json:"sr"`
} `json:"l"`
Sq interface{} `json:"sq"`
Hr interface{} `json:"hr"`
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"`
TagPicList interface{} `json:"tagPicList"`
ResourceState bool `json:"resourceState"`
Version int `json:"version"`
SongJumpInfo interface{} `json:"songJumpInfo"`
EntertainmentTags interface{} `json:"entertainmentTags"`
AwardTags interface{} `json:"awardTags"`
Single int `json:"single"`
NoCopyrightRcmd interface{} `json:"noCopyrightRcmd"`
Mv int `json:"mv"`
Rtype int `json:"rtype"`
Rurl interface{} `json:"rurl"`
Mst int `json:"mst"`
Cp int `json:"cp"`
PublishTime int `json:"publishTime"`
} `json:"songs"`
Privileges []struct {
ID int `json:"id"`
Fee int `json:"fee"`
Payed int `json:"payed"`
St int `json:"st"`
Pl int `json:"pl"`
Dl int `json:"dl"`
Sp int `json:"sp"`
Cp int `json:"cp"`
Subp int `json:"subp"`
Cs bool `json:"cs"`
Maxbr int `json:"maxbr"`
Fl int `json:"fl"`
Toast bool `json:"toast"`
Flag int `json:"flag"`
PreSell bool `json:"preSell"`
PlayMaxbr int `json:"playMaxbr"`
DownloadMaxbr int `json:"downloadMaxbr"`
MaxBrLevel string `json:"maxBrLevel"`
PlayMaxBrLevel string `json:"playMaxBrLevel"`
DownloadMaxBrLevel string `json:"downloadMaxBrLevel"`
PlLevel string `json:"plLevel"`
DlLevel string `json:"dlLevel"`
FlLevel string `json:"flLevel"`
Rscl interface{} `json:"rscl"`
FreeTrialPrivilege struct {
ResConsumable bool `json:"resConsumable"`
UserConsumable bool `json:"userConsumable"`
ListenType interface{} `json:"listenType"`
CannotListenReason interface{} `json:"cannotListenReason"`
PlayReason interface{} `json:"playReason"`
} `json:"freeTrialPrivilege"`
RightSource int `json:"rightSource"`
ChargeInfoList []struct {
Rate int `json:"rate"`
ChargeURL interface{} `json:"chargeUrl"`
ChargeMessage interface{} `json:"chargeMessage"`
ChargeType int `json:"chargeType"`
} `json:"chargeInfoList"`
} `json:"privileges"`
Code int `json:"code"`
}
type MusicIDName ¶
type NetEaseContext ¶
type NetEaseContext struct {
// contains filtered or unexported fields
}
NetEaseContext 网易云API调用封装
func (*NetEaseContext) AsyncGetSearchRes ¶
func (neteaseCtx *NetEaseContext) AsyncGetSearchRes(ctx context.Context, searchRes SearchMusic) (result []*SearchMusicItem, err error)
func (*NetEaseContext) CheckIfLogin ¶
func (neteaseCtx *NetEaseContext) CheckIfLogin(ctx context.Context) bool
CheckIfLogin 检查是否登陆
@receiver ctx @return bool
func (*NetEaseContext) GetAlbumDetail ¶
func (neteaseCtx *NetEaseContext) GetAlbumDetail(ctx context.Context, albumID string) (result *AlbumDetail, err error)
GetAlbumDetail 通过关键字搜索歌曲
@receiver neteaseCtx *NetEaseContext @param ctx context.Context @param albumID @return result []*Album @return err error
func (*NetEaseContext) GetComment ¶
func (neteaseCtx *NetEaseContext) GetComment(ctx context.Context, commentType CommentType, id string) (res *CommentResult, err error)
func (*NetEaseContext) GetDailyRecommendID ¶
func (neteaseCtx *NetEaseContext) GetDailyRecommendID() (musicIDs map[string]string, err error)
GetDailyRecommendID 获取当前账号日推
@receiver ctx @return musicIDs @return err
func (*NetEaseContext) GetDetail ¶
func (neteaseCtx *NetEaseContext) GetDetail(ctx context.Context, musicID string) (musicDetail *MusicDetail)
func (*NetEaseContext) GetMusicURL ¶
func (*NetEaseContext) GetMusicURLByID ¶
func (neteaseCtx *NetEaseContext) GetMusicURLByID(ctx context.Context, musicIDName []*MusicIDName) (InfoList []MusicInfo, err error)
GetMusicURLByID 依据ID获取URL/Name //TODO: replace this method more generic
@receiver ctx @param IDName @return InfoList @return err
func (*NetEaseContext) GetMusicURLByIDs ¶
func (neteaseCtx *NetEaseContext) GetMusicURLByIDs(ctx context.Context, musicIDs []string) (musicIDURL map[string]string, err error)
GetMusicURLByIDs 依据ID获取URL/Name
@receiver ctx @param IDName @return InfoList @return err
func (*NetEaseContext) GetNewRecommendMusic ¶
func (neteaseCtx *NetEaseContext) GetNewRecommendMusic() (res []SearchMusicItem, err error)
GetNewRecommendMusic 获得新的推荐歌曲
@receiver ctx @return res @return err
func (*NetEaseContext) GetQRBase64 ¶
func (neteaseCtx *NetEaseContext) GetQRBase64(ctx context.Context) (err error)
func (*NetEaseContext) GetUniKey ¶
func (neteaseCtx *NetEaseContext) GetUniKey(ctx context.Context) (err error)
func (*NetEaseContext) InnerAsyncGetSearchRes ¶
func (neteaseCtx *NetEaseContext) InnerAsyncGetSearchRes(ctx context.Context, searchMusic SearchMusic, err error, urlChan chan *SearchMusicItem)
func (*NetEaseContext) LoginNetEase ¶
func (neteaseCtx *NetEaseContext) LoginNetEase(ctx context.Context) (err error)
LoginNetEase 获取登陆Cookie
@receiver ctx @return err
func (*NetEaseContext) LoginNetEaseQR ¶
func (neteaseCtx *NetEaseContext) LoginNetEaseQR(ctx context.Context) (err error)
LoginNetEaseQR 通过二维码获取登陆Cookie
@receiver ctx @return err
func (*NetEaseContext) RefreshLogin ¶
func (neteaseCtx *NetEaseContext) RefreshLogin(ctx context.Context) error
RefreshLogin 刷新登录
@receiver ctx @return error
func (*NetEaseContext) SaveCookie ¶
func (neteaseCtx *NetEaseContext) SaveCookie(ctx context.Context)
SaveCookie 保存Cookie
@receiver ctx
func (*NetEaseContext) SearchAlbumByKeyWord ¶
func (neteaseCtx *NetEaseContext) SearchAlbumByKeyWord(ctx context.Context, keywords ...string) (result []*Album, err error)
SearchAlbumByKeyWord 通过关键字搜索歌曲
@receiver neteaseCtx *NetEaseContext @param ctx context.Context @param keywords ...string @return result []*Album @return err error @author heyuhengmatt @update 2024-08-07 08:46:58
func (*NetEaseContext) SearchMusicByKeyWord ¶
func (neteaseCtx *NetEaseContext) SearchMusicByKeyWord(ctx context.Context, keywords ...string) (result []*SearchMusicItem, err error)
SearchMusicByKeyWord 通过关键字搜索歌曲
@receiver neteaseCtx @param ctx @param keywords @return result @return err
func (*NetEaseContext) SearchPlaylistByKeyWord ¶
func (neteaseCtx *NetEaseContext) SearchPlaylistByKeyWord(ctx context.Context, keywords ...string)
func (*NetEaseContext) TryGetLastCookie ¶
func (neteaseCtx *NetEaseContext) TryGetLastCookie(ctx context.Context)
TryGetLastCookie 获取初始化Cookie
@receiver ctx
type Playlist ¶
type Playlist struct {
Result struct {
SearchQcReminder interface{} `json:"searchQcReminder"`
Playlists []struct {
ID int64 `json:"id"`
Name string `json:"name"`
CoverImgURL string `json:"coverImgUrl"`
Creator struct {
Nickname string `json:"nickname"`
UserID int `json:"userId"`
UserType int `json:"userType"`
AvatarURL interface{} `json:"avatarUrl"`
AuthStatus int `json:"authStatus"`
ExpertTags interface{} `json:"expertTags"`
Experts interface{} `json:"experts"`
} `json:"creator"`
Subscribed bool `json:"subscribed"`
TrackCount int `json:"trackCount"`
UserID int `json:"userId"`
PlayCount int `json:"playCount"`
BookCount int `json:"bookCount"`
SpecialType int `json:"specialType"`
OfficialTags interface{} `json:"officialTags"`
Action interface{} `json:"action"`
ActionType interface{} `json:"actionType"`
RecommendText interface{} `json:"recommendText"`
Score interface{} `json:"score"`
Description string `json:"description"`
HighQuality bool `json:"highQuality"`
} `json:"playlists"`
PlaylistCount int `json:"playlistCount"`
} `json:"result"`
Code int `json:"code"`
}
type SearchLyrics ¶
type SearchLyrics struct {
Sgc bool `json:"sgc"`
Sfy bool `json:"sfy"`
Qfy bool `json:"qfy"`
TransUser struct {
ID int `json:"id"`
Status int `json:"status"`
Demand int `json:"demand"`
Userid int `json:"userid"`
Nickname string `json:"nickname"`
Uptime int64 `json:"uptime"`
} `json:"transUser"`
LyricUser struct {
ID int `json:"id"`
Status int `json:"status"`
Demand int `json:"demand"`
Userid int `json:"userid"`
Nickname string `json:"nickname"`
Uptime int64 `json:"uptime"`
} `json:"lyricUser"`
Lrc struct {
Version int `json:"version"`
Lyric string `json:"lyric"`
} `json:"lrc"`
Klyric struct {
Version int `json:"version"`
Lyric string `json:"lyric"`
} `json:"klyric"`
Tlyric struct {
Version int `json:"version"`
Lyric string `json:"lyric"`
} `json:"tlyric"`
Romalrc struct {
Version int `json:"version"`
Lyric string `json:"lyric"`
} `json:"romalrc"`
Code int `json:"code"`
}
type SearchMusic ¶
type SearchMusic struct {
Result struct {
Songs []Song `json:"songs"`
} `json:"result"`
}
Click to show internal directories.
Click to hide internal directories.