mirror of
https://github.com/GiriNeko/YesPlayMusic.git
synced 2025-12-17 21:58:03 +00:00
feat: monorepo
This commit is contained in:
parent
4d54060a4f
commit
42089d4996
200 changed files with 1530 additions and 1521 deletions
23
packages/shared/api/Album.ts
Normal file
23
packages/shared/api/Album.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
export enum AlbumApiNames {
|
||||
FetchAlbum = 'fetchAlbum',
|
||||
}
|
||||
|
||||
// 专辑详情
|
||||
export interface FetchAlbumParams {
|
||||
id: number
|
||||
}
|
||||
export interface FetchAlbumResponse {
|
||||
code: number
|
||||
resourceState: boolean
|
||||
album: Album
|
||||
songs: Track[]
|
||||
description: string
|
||||
}
|
||||
|
||||
export interface LikeAAlbumParams {
|
||||
t: 1 | 2
|
||||
id: number
|
||||
}
|
||||
export interface LikeAAlbumResponse {
|
||||
code: number
|
||||
}
|
||||
28
packages/shared/api/Artist.ts
Normal file
28
packages/shared/api/Artist.ts
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
export enum ArtistApiNames {
|
||||
FetchArtist = 'fetchArtist',
|
||||
FetchArtistAlbums = 'fetchArtistAlbums',
|
||||
}
|
||||
|
||||
// 歌手详情
|
||||
export interface FetchArtistParams {
|
||||
id: number
|
||||
}
|
||||
export interface FetchArtistResponse {
|
||||
code: number
|
||||
more: boolean
|
||||
artist: Artist
|
||||
hotSongs: Track[]
|
||||
}
|
||||
|
||||
// 获取歌手的专辑列表
|
||||
export interface FetchArtistAlbumsParams {
|
||||
id: number
|
||||
limit?: number // default: 50
|
||||
offset?: number // default: 0
|
||||
}
|
||||
export interface FetchArtistAlbumsResponse {
|
||||
code: number
|
||||
hotAlbums: Album[]
|
||||
more: boolean
|
||||
artist: Artist
|
||||
}
|
||||
48
packages/shared/api/Playlists.ts
Normal file
48
packages/shared/api/Playlists.ts
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
export enum PlaylistApiNames {
|
||||
FetchPlaylist = 'fetchPlaylist',
|
||||
FetchRecommendedPlaylists = 'fetchRecommendedPlaylists',
|
||||
FetchDailyRecommendPlaylists = 'fetchDailyRecommendPlaylists',
|
||||
LikeAPlaylist = 'likeAPlaylist',
|
||||
}
|
||||
|
||||
// 歌单详情
|
||||
export interface FetchPlaylistParams {
|
||||
id: number
|
||||
s?: number // 歌单最近的 s 个收藏者
|
||||
}
|
||||
export interface FetchPlaylistResponse {
|
||||
code: number
|
||||
playlist: Playlist
|
||||
privileges: unknown // TODO: unknown type
|
||||
relatedVideos: null
|
||||
resEntrance: null
|
||||
sharedPrivilege: null
|
||||
urls: null
|
||||
}
|
||||
|
||||
// 推荐歌单
|
||||
export interface FetchRecommendedPlaylistsParams {
|
||||
limit?: number
|
||||
}
|
||||
export interface FetchRecommendedPlaylistsResponse {
|
||||
code: number
|
||||
category: number
|
||||
hasTaste: boolean
|
||||
result: Playlist[]
|
||||
}
|
||||
|
||||
// 每日推荐歌单(需要登录)
|
||||
export interface FetchDailyRecommendPlaylistsResponse {
|
||||
code: number
|
||||
featureFirst: boolean
|
||||
haveRcmdSongs: boolean
|
||||
recommend: Playlist[]
|
||||
}
|
||||
|
||||
export interface LikeAPlaylistParams {
|
||||
t: 1 | 2
|
||||
id: number
|
||||
}
|
||||
export interface LikeAPlaylistResponse {
|
||||
code: number
|
||||
}
|
||||
82
packages/shared/api/Search.ts
Normal file
82
packages/shared/api/Search.ts
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
export enum SearchApiNames {
|
||||
Search = 'search',
|
||||
MultiMatchSearch = 'multiMatchSearch',
|
||||
}
|
||||
|
||||
// 搜索
|
||||
export enum SearchTypes {
|
||||
Single = '1',
|
||||
Album = '10',
|
||||
Artist = '100',
|
||||
Playlist = '1000',
|
||||
User = '1002',
|
||||
Mv = '1004',
|
||||
Lyrics = '1006',
|
||||
Radio = '1009',
|
||||
Video = '1014',
|
||||
All = '1018',
|
||||
}
|
||||
export interface SearchParams {
|
||||
keywords: string
|
||||
limit?: number // 返回数量 , 默认为 30
|
||||
offset?: number // 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
|
||||
type: keyof typeof SearchTypes // type: 搜索类型
|
||||
}
|
||||
export interface SearchResponse {
|
||||
code: number
|
||||
result: {
|
||||
album: {
|
||||
albums: Album[]
|
||||
more: boolean
|
||||
moreText: string
|
||||
resourceIds: number[]
|
||||
}
|
||||
artist: {
|
||||
artists: Artist[]
|
||||
more: boolean
|
||||
moreText: string
|
||||
resourceIds: number[]
|
||||
}
|
||||
playList: {
|
||||
playLists: Playlist[]
|
||||
more: boolean
|
||||
moreText: string
|
||||
resourceIds: number[]
|
||||
}
|
||||
song: {
|
||||
songs: Track[]
|
||||
more: boolean
|
||||
moreText: string
|
||||
resourceIds: number[]
|
||||
}
|
||||
user: {
|
||||
users: User[]
|
||||
more: boolean
|
||||
moreText: string
|
||||
resourceIds: number[]
|
||||
}
|
||||
circle: unknown
|
||||
new_mlog: unknown
|
||||
order: string[]
|
||||
rec_type: null
|
||||
rec_query: null[]
|
||||
sim_query: unknown
|
||||
voice: unknown
|
||||
voiceList: unknown
|
||||
}
|
||||
}
|
||||
|
||||
// 搜索多重匹配
|
||||
export interface MultiMatchSearchParams {
|
||||
keywords: string
|
||||
}
|
||||
export interface MultiMatchSearchResponse {
|
||||
code: number
|
||||
result: {
|
||||
album: Album[]
|
||||
artist: Artist[]
|
||||
playlist: Playlist[]
|
||||
orpheus: unknown
|
||||
orders: Array<'artist' | 'album'>
|
||||
}
|
||||
}
|
||||
104
packages/shared/api/Track.ts
Normal file
104
packages/shared/api/Track.ts
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
export enum TrackApiNames {
|
||||
FetchTracks = 'fetchTracks',
|
||||
FetchAudioSource = 'fetchAudioSource',
|
||||
FetchLyric = 'fetchLyric',
|
||||
}
|
||||
|
||||
// 获取歌曲详情
|
||||
export interface FetchTracksParams {
|
||||
ids: number[]
|
||||
}
|
||||
export interface FetchTracksResponse {
|
||||
code: number
|
||||
songs: Track[]
|
||||
privileges: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
}
|
||||
|
||||
// 获取音源URL
|
||||
|
||||
export interface FetchAudioSourceParams {
|
||||
id: number
|
||||
br?: number // bitrate, default 999000,320000 = 320kbps
|
||||
}
|
||||
export interface FetchAudioSourceResponse {
|
||||
code: number
|
||||
data: {
|
||||
br: number
|
||||
canExtend: boolean
|
||||
code: number
|
||||
encodeType: 'mp3' | null
|
||||
expi: number
|
||||
fee: number
|
||||
flag: number
|
||||
freeTimeTrialPrivilege: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
freeTrialPrivilege: {
|
||||
[key: string]: unknown
|
||||
}
|
||||
freeTrialInfo: null
|
||||
gain: number
|
||||
id: number
|
||||
level: 'standard' | 'null'
|
||||
md5: string | null
|
||||
payed: number
|
||||
size: number
|
||||
type: 'mp3' | null
|
||||
uf: null
|
||||
url: string | null
|
||||
urlSource: number
|
||||
}[]
|
||||
}
|
||||
|
||||
// 获取歌词
|
||||
|
||||
export interface FetchLyricParams {
|
||||
id: number
|
||||
}
|
||||
export interface FetchLyricResponse {
|
||||
code: number
|
||||
sgc: boolean
|
||||
sfy: boolean
|
||||
qfy: boolean
|
||||
lyricUser?: {
|
||||
id: number
|
||||
status: number
|
||||
demand: number
|
||||
userid: number
|
||||
nickname: string
|
||||
uptime: number
|
||||
}
|
||||
transUser?: {
|
||||
id: number
|
||||
status: number
|
||||
demand: number
|
||||
userid: number
|
||||
nickname: string
|
||||
uptime: number
|
||||
}
|
||||
lrc: {
|
||||
version: number
|
||||
lyric: string
|
||||
}
|
||||
klyric?: {
|
||||
version: number
|
||||
lyric: string
|
||||
}
|
||||
tlyric?: {
|
||||
version: number
|
||||
lyric: string
|
||||
}
|
||||
}
|
||||
|
||||
// 收藏歌曲
|
||||
export interface LikeATrackParams {
|
||||
id: number
|
||||
like: boolean
|
||||
}
|
||||
export interface LikeATrackResponse {
|
||||
code: number
|
||||
playlistId: number
|
||||
songs: Track[]
|
||||
}
|
||||
108
packages/shared/api/User.ts
Normal file
108
packages/shared/api/User.ts
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
export enum UserApiNames {
|
||||
FetchUserAccount = 'fetchUserAccount',
|
||||
FetchUserLikedTracksIds = 'fetchUserLikedTracksIDs',
|
||||
FetchUserPlaylists = 'fetchUserPlaylists',
|
||||
FetchUserAlbums = 'fetchUserAlbums',
|
||||
FetchUserArtist = 'fetchUserArtists',
|
||||
}
|
||||
|
||||
// 获取账号详情
|
||||
export interface FetchUserAccountResponse {
|
||||
code: number
|
||||
account: {
|
||||
anonimousUser: boolean
|
||||
ban: number
|
||||
baoyueVersion: number
|
||||
createTime: number
|
||||
donateVersion: number
|
||||
id: number
|
||||
paidFee: boolean
|
||||
status: number
|
||||
tokenVersion: number
|
||||
type: number
|
||||
userName: string
|
||||
vipType: number
|
||||
whitelistAuthority: number
|
||||
} | null
|
||||
profile: {
|
||||
userId: number
|
||||
userType: number
|
||||
nickname: string
|
||||
avatarImgId: number
|
||||
avatarUrl: string
|
||||
backgroundImgId: number
|
||||
backgroundUrl: string
|
||||
signature: string
|
||||
createTime: number
|
||||
userName: string
|
||||
accountType: number
|
||||
shortUserName: string
|
||||
birthday: number
|
||||
authority: number
|
||||
gender: number
|
||||
accountStatus: number
|
||||
province: number
|
||||
city: number
|
||||
authStatus: number
|
||||
description: string | null
|
||||
detailDescription: string | null
|
||||
defaultAvatar: boolean
|
||||
expertTags: [] | null
|
||||
experts: [] | null
|
||||
djStatus: number
|
||||
locationStatus: number
|
||||
vipType: number
|
||||
followed: boolean
|
||||
mutual: boolean
|
||||
authenticated: boolean
|
||||
lastLoginTime: number
|
||||
lastLoginIP: string
|
||||
remarkName: string | null
|
||||
viptypeVersion: number
|
||||
authenticationTypes: number
|
||||
avatarDetail: string | null
|
||||
anchor: boolean
|
||||
} | null
|
||||
}
|
||||
|
||||
// 获取用户歌单
|
||||
export interface FetchUserPlaylistsParams {
|
||||
uid: number
|
||||
offset: number
|
||||
limit?: number // default 30
|
||||
}
|
||||
export interface FetchUserPlaylistsResponse {
|
||||
code: number
|
||||
more: boolean
|
||||
version: string
|
||||
playlist: Playlist[]
|
||||
}
|
||||
|
||||
export interface FetchUserLikedTracksIDsParams {
|
||||
uid: number
|
||||
}
|
||||
export interface FetchUserLikedTracksIDsResponse {
|
||||
code: number
|
||||
checkPoint: number
|
||||
ids: number[]
|
||||
}
|
||||
|
||||
export interface FetchUserAlbumsParams {
|
||||
offset?: number // default 0
|
||||
limit?: number // default 25
|
||||
}
|
||||
export interface FetchUserAlbumsResponse {
|
||||
code: number
|
||||
hasMore: boolean
|
||||
paidCount: number
|
||||
count: number
|
||||
data: Album[]
|
||||
}
|
||||
|
||||
// 获取收藏的歌手
|
||||
export interface FetchUserArtistsResponse {
|
||||
code: number
|
||||
hasMore: boolean
|
||||
count: number
|
||||
data: Artist[]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue