This repository was archived by the owner on Jul 17, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathrec.ts
More file actions
117 lines (107 loc) · 2.61 KB
/
Copy pathrec.ts
File metadata and controls
117 lines (107 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import request from "@/utils/request";
import idMeta from "@/assets/data/idMeta.json";
/**
* 每日推荐 - 需要登录
* @param {string} [type] - 推荐类型,songs 日推歌曲 / resource 推荐歌单
*/
export const dailyRecommend = (type: "songs" | "resource" = "songs") => {
return request({
url: `/recommend/${type}`,
params: { timestamp: Date.now() },
});
};
/**
* 每日推荐 - 不感兴趣
*/
export const dailyRecommendDislike = (id: number) => {
return request({
url: "/recommend/songs/dislike",
params: { id, timestamp: Date.now() },
});
};
/**
* 推荐内容
* @param {string} [type] - 推荐类型
* @param {number} [limit=50] - 返回结果的数量
*/
export const personalized = (
type: "playlist" | "mv" | "newsong" | "djprogram" | "privatecontent" = "playlist",
limit: number = 50,
) => {
const url = type === "playlist" ? "/personalized" : `/personalized/${type}`;
return request({
url,
params: {
limit,
},
});
};
// 雷达歌单
export const radarPlaylist = async () => {
const allRadar = idMeta.radarPlaylist.map((playlist) => {
return request({
url: "/playlist/detail",
params: { id: playlist.id },
});
});
const result = await Promise.allSettled(allRadar);
return result.map((res: any) => res?.value.playlist);
};
/**
* 获取热门歌手
* @param limit - 返回数量,默认为 10
*/
export const topArtists = async (limit: number = 10) => {
return request({
url: "/top/artists",
params: { limit },
});
};
/**
* 新歌速递
* @param {number} type - 全部:0 / 华语:7 / 欧美:96 / 韩国:16 / 日本:8
*/
export const newSongs = async (type: 0 | 7 | 96 | 16 | 8 = 0) => {
return request({
url: "/top/song",
params: { type },
});
};
// 最新专辑
export const newAlbums = async () => {
return request({
url: "/album/new",
});
};
/**
* 新碟上架 - 全部
* @param {string} [cat="ALL"] - ALL:全部 / ZH:华语 / EA:欧美 / KR:韩国 / JP:日本
* @param {number} [limit=20] - 返回数量,默认20
* @param {number} [offset=0] - 偏移数量,默认0
*/
export const newAlbumsAll = (
cat: "ALL" | "ZH" | "EA" | "KR" | "JP" = "ALL",
limit: number = 20,
offset: number = 0,
) => {
return request({
url: "/album/new",
params: { cat, limit, offset },
});
};
// 私人 FM
export const personalFm = () => {
return request({
url: "/personal_fm",
params: {
timestamp: Date.now(),
},
});
};
// 私人 FM - 垃圾桶
export const personalFmToTrash = (id: number) => {
return request({
url: "/fm_trash",
params: { id, timestamp: Date.now() },
});
};