chore: remove netease api code from repo

This commit is contained in:
qier222 2021-01-26 11:56:03 +08:00
parent e1f1d18aa4
commit 4bce2c7071
228 changed files with 1 additions and 20219 deletions

View file

@ -1,19 +0,0 @@
// 初始化名字
module.exports = (query, request) => {
const data = {
nickname: query.nickname,
};
return request(
'POST',
`https://music.163.com/eapi/activate/initProfile`,
data,
{
crypto: 'eapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
url: '/api/activate/initProfile',
},
);
};

View file

@ -1,15 +0,0 @@
// 专辑内容
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/v1/album/${query.id}`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 数字专辑详情
module.exports = (query, request) => {
const data = {
id: query.id,
};
return request(
'POST',
`https://music.163.com/weapi/vipmall/albumproduct/detail`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 专辑动态信息
module.exports = (query, request) => {
const data = {
id: query.id,
};
return request(
'POST',
`https://music.163.com/api/album/detail/dynamic`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,21 +0,0 @@
// 数字专辑-新碟上架
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
offset: query.offset || 0,
total: true,
area: query.area || 'ALL', //ALL:全部,ZH:华语,EA:欧美,KR:韩国,JP:日本
type: query.type,
};
return request(
'POST',
`https://music.163.com/weapi/vipmall/albumproduct/list`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,20 +0,0 @@
// 数字专辑-语种风格馆
module.exports = (query, request) => {
const data = {
limit: query.limit || 10,
offset: query.offset || 0,
total: true,
area: query.area || 'Z_H', //Z_H:华语,E_A:欧美,KR:韩国,JP:日本
};
return request(
'POST',
`https://music.163.com/weapi/vipmall/appalbum/album/style`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// 全部新碟
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
offset: query.offset || 0,
total: true,
area: query.area || 'ALL', //ALL:全部,ZH:华语,EA:欧美,KR:韩国,JP:日本
};
return request('POST', `https://music.163.com/weapi/album/new`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,15 +0,0 @@
// 最新专辑
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/api/discovery/newAlbum`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,24 +0,0 @@
// 数字专辑&数字单曲-榜单
module.exports = (query, request) => {
let data = {
albumType: query.albumType || 0, //0为数字专辑,1为数字单曲
};
const type = query.type || 'daily'; // daily,week,year,total
if (type === 'year') {
data = {
...data,
year: query.year,
};
}
return request(
'POST',
`https://music.163.com/api/feealbum/songsaleboard/${type}/type`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,14 +0,0 @@
// 收藏/取消收藏专辑
module.exports = (query, request) => {
query.t = query.t == 1 ? 'sub' : 'unsub';
const data = {
id: query.id,
};
return request('POST', `https://music.163.com/api/album/${query.t}`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,15 +0,0 @@
// 已收藏专辑列表
module.exports = (query, request) => {
const data = {
limit: query.limit || 25,
offset: query.offset || 0,
total: true,
};
return request('POST', `https://music.163.com/weapi/album/sublist`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,20 +0,0 @@
// 歌手专辑列表
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
offset: query.offset || 0,
total: true,
};
return request(
'POST',
`https://music.163.com/weapi/artist/albums/${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,18 +0,0 @@
// 歌手介绍
module.exports = (query, request) => {
const data = {
id: query.id,
};
return request(
'POST',
`https://music.163.com/weapi/artist/introduction`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,37 +0,0 @@
// 歌手分类
/*
type 取值
1:男歌手
2:女歌手
3:乐队
area 取值
-1:全部
7华语
96欧美
8:日本
16韩国
0:其他
initial 取值 a-z/A-Z
*/
module.exports = (query, request) => {
const data = {
initial: isNaN(query.initial)
? (query.initial || '').toUpperCase().charCodeAt() || undefined
: query.initial,
offset: query.offset || 0,
limit: query.limit || 30,
total: true,
type: query.type || '1',
area: query.area,
};
return request('POST', `https://music.163.com/api/v1/artist/list`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,16 +0,0 @@
// 歌手相关MV
module.exports = (query, request) => {
const data = {
artistId: query.id,
limit: query.limit,
offset: query.offset,
total: true,
};
return request('POST', `https://music.163.com/weapi/artist/mvs`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,17 +0,0 @@
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
id: query.id,
private_cloud: 'true',
work_type: 1,
order: query.order || 'hot', //hot,time
offset: query.offset || 0,
limit: query.limit || 100,
};
return request('POST', `https://music.163.com/api/v1/artist/songs`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,20 +0,0 @@
// 收藏与取消收藏歌手
module.exports = (query, request) => {
query.t = query.t == 1 ? 'sub' : 'unsub';
const data = {
artistId: query.id,
artistIds: '[' + query.id + ']',
};
return request(
'POST',
`https://music.163.com/weapi/artist/${query.t}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// 关注歌手列表
module.exports = (query, request) => {
const data = {
limit: query.limit || 25,
offset: query.offset || 0,
total: true,
};
return request('POST', `https://music.163.com/weapi/artist/sublist`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,12 +0,0 @@
// 歌手热门 50 首歌曲
module.exports = (query, request) => {
const data = {
id: query.id,
};
return request('POST', `https://music.163.com/api/artist/top/song`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,15 +0,0 @@
// 歌手单曲
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/v1/artist/${query.id}`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,19 +0,0 @@
const realData =
'eJx10mtIU2EcBvDtnCwNMfO2klUSmSQ5ZugKW/v/0TIjJVdhDStbXpqXrhY5Kwhtrcwiut9VSqMUMxX6IFqsD92sD1YgWGHRBcowKrpnPa/v+drg4flt572ds2PQ6XQut7MwJ940w2TOyS0pzF+/BV/MJrNO+3TVLOHUzKx5iw3/H5uZ7yxegct3tTl7Cr6QEa0gZ/dZOFsvfe5YHe1D+yFZxpncqEj/cCdwoirdVxHNnZrX3xygU5g7Eh6I9uOx8Ch4y9FQjlKkDz1pYrFXIJLUOovFGcYivqJgXqaXDqu7Rzc0XzmZxG81B/fF8wRVusn2jN5rDnwca8tFhyAJP4L4qiI9vX8cWzEmVKzT/46qxNpIdZOZz2HNcHhSkZ3D4AjYFpfGFkX6+dB+FvcSBe/SWbkLPVnEOJ1DFelXxVVci/Wj4TsBLhrQ/LGoaU4HxsTA28L76Cc8Dfau/U6F6FgkyBDDJar0g8tesmOvOHioWeXXmme6l3MLbIIre6wciU5E2t/k8WVxHfHvuUWXsH4SPCv1NW1Cz0aivgYO34vw1AEvi3MlIw0xHl6JNVPEGW41UJsqPaXYYTuEnotMdHwYfv7CFR/i+aXmrY5wrlSkEwr+0EJ0GvLmdw4/RS9Amj93UAbGZMIF40ezE3PtcG/yBWrT3L6oh66hFyMXK4xsUKT7aufzapxnFTwiNc3Wis5Bdm+OYCvmOuHj/ZeoQPOI00PUrUjXpG+kMFU61tFFDvQaZOn5DH4mzoLw4Hsaj14rzu/K4jF66fSWTnJinW3wBvcveqjZN3iFjKp0qKuF1mi21keST3NtTcbwu1eG3Dussr9eemljLIco0tVH7HwA493wOr+FlIjfy+GvkR4uwfjt4v/6G8K3NX8K38lt6B1ISa+Bv2O8Fy69foZOovci2S4Lr1aku4P9OEWVTt9wgMQ7exgJ8JXyI0W694WFyuBjcH75XyrEXsfhg+ZSvqZIf/Lct8Wp0md2tJN4PifEfjcm8gu02Ptbj459eum8eg8bFWlLXTb/A+uo9bM=';
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
algorithmCode: 'shazam_v2',
times: 1,
sessionId: 'C999431ACDC84EDBB984763654E6F8D7',
duration: 3.3066249999999995,
from: 'recognize-song',
rawdata: realData,
};
return request('POST', `https://music.163.com/api/music/audio/match`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,27 +0,0 @@
const uploadPlugin = require('../plugins/upload');
module.exports = async (query, request) => {
const uploadInfo = await uploadPlugin(query, request);
const res = await request(
'POST',
`https://music.163.com/weapi/user/avatar/upload/v1`,
{
imgid: uploadInfo.imgId,
},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
return {
status: 200,
body: {
code: 200,
data: {
...uploadInfo,
...res.body,
},
},
};
};

View file

@ -1,17 +0,0 @@
// 首页轮播图
module.exports = (query, request) => {
const type =
{
0: 'pc',
1: 'android',
2: 'iphone',
3: 'ipad',
}[query.type || 0] || 'pc';
return request(
'POST',
`https://music.163.com/api/v2/banner/get`,
{ clientType: type },
{ crypto: 'linuxapi', proxy: query.proxy, realIP: query.realIP },
);
};

View file

@ -1,19 +0,0 @@
// 批量请求接口
module.exports = (query, request) => {
const data = {
e_r: true,
};
Object.keys(query).forEach((i) => {
if (/^\/api\//.test(i)) {
data[i] = query[i];
}
});
return request('POST', `https://music.163.com/eapi/batch`, data, {
crypto: 'eapi',
proxy: query.proxy,
url: '/api/batch',
cookie: query.cookie,
realIP: query.realIP,
});
};

View file

@ -1,12 +0,0 @@
module.exports = (query, request) => {
const data = {
startTime: query.startTime || Date.now(),
endTime: query.endTime || Date.now(),
};
return request('POST', `https://music.163.com/api/mcalendar/detail`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,14 +0,0 @@
// 发送验证码
module.exports = (query, request) => {
const data = {
ctcode: query.ctcode || '86',
cellphone: query.phone,
};
return request('POST', `https://music.163.com/weapi/sms/captcha/sent`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,20 +0,0 @@
// 校验验证码
module.exports = (query, request) => {
const data = {
ctcode: query.ctcode || '86',
cellphone: query.phone,
captcha: query.captcha,
};
return request(
'POST',
`https://music.163.com/weapi/sms/captcha/verify`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,20 +0,0 @@
// 检测手机号码是否已注册
module.exports = (query, request) => {
const data = {
cellphone: query.phone,
countrycode: query.countrycode,
};
return request(
'POST',
`https://music.163.com/eapi/cellphone/existence/check`,
data,
{
crypto: 'eapi',
cookie: query.cookie,
proxy: query.proxy,
url: '/api/cellphone/existence/check',
realIP: query.realIP,
},
);
};

View file

@ -1,34 +0,0 @@
// 歌曲可用性
module.exports = (query, request) => {
const data = {
ids: '[' + parseInt(query.id) + ']',
br: parseInt(query.br || 999000),
};
return request(
'POST',
`https://music.163.com/weapi/song/enhance/player/url`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
).then((response) => {
let playable = false;
if (response.body.code == 200) {
if (response.body.data[0].code == 200) {
playable = true;
}
}
if (playable) {
response.body = { success: true, message: 'ok' };
return response;
} else {
response.status = 404;
response.body = { success: false, message: '亲爱的,暂无版权' };
return Promise.reject(response);
}
});
};

View file

@ -1,21 +0,0 @@
// 搜索
module.exports = (query, request) => {
const data = {
s: query.keywords,
type: query.type || 1, // 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频
limit: query.limit || 30,
offset: query.offset || 0,
};
return request(
'POST',
`https://music.163.com/weapi/cloudsearch/get/web`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,43 +0,0 @@
// 发送与删除评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
query.t = {
1: 'add',
0: 'delete',
2: 'reply',
}[query.t];
query.type = {
0: 'R_SO_4_', // 歌曲
1: 'R_MV_5_', // MV
2: 'A_PL_0_', // 歌单
3: 'R_AL_3_', // 专辑
4: 'A_DJ_1_', // 电台,
5: 'R_VI_62_', // 视频
6: 'A_EV_2_', // 动态
}[query.type];
const data = {
threadId: query.type + query.id,
};
if (query.type == 'A_EV_2_') {
data.threadId = query.threadId;
}
if (query.t == 'add') data.content = query.content;
else if (query.t == 'delete') data.commentId = query.commentId;
else if (query.t == 'reply') {
data.commentId = query.commentId;
data.content = query.content;
}
return request(
'POST',
`https://music.163.com/weapi/resource/comments/${query.t}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,22 +0,0 @@
// 专辑评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
rid: query.id,
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/weapi/v1/resource/comments/R_AL_3_${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,22 +0,0 @@
// 电台评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
rid: query.id,
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/weapi/v1/resource/comments/A_DJ_1_${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,20 +0,0 @@
// 获取动态评论
module.exports = (query, request) => {
const data = {
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/weapi/v1/resource/comments/${query.threadId}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,27 +0,0 @@
module.exports = (query, request) => {
query.type = {
0: 'R_SO_4_', // 歌曲
1: 'R_MV_5_', // MV
2: 'A_PL_0_', // 歌单
3: 'R_AL_3_', // 专辑
4: 'A_DJ_1_', // 电台,
5: 'R_VI_62_', // 视频
}[query.type];
const data = {
parentCommentId: query.parentCommentId,
threadId: query.type + query.id,
time: query.time || -1,
limit: query.limit || 20,
};
return request(
'POST',
`https://music.163.com/api/resource/comment/floor/get`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,30 +0,0 @@
// 热门评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
query.type = {
0: 'R_SO_4_', // 歌曲
1: 'R_MV_5_', // MV
2: 'A_PL_0_', // 歌单
3: 'R_AL_3_', // 专辑
4: 'A_DJ_1_', // 电台,
5: 'R_VI_62_', // 视频
}[query.type];
const data = {
rid: query.id,
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/weapi/v1/resource/hotcomments/${query.type}${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,16 +0,0 @@
// 云村热评
module.exports = (query, request) => {
const data = {};
return request(
'POST',
`https://music.163.com/api/comment/hotwall/list/get`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,33 +0,0 @@
// 点赞与取消点赞评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
query.t = query.t == 1 ? 'like' : 'unlike';
query.type = {
0: 'R_SO_4_', // 歌曲
1: 'R_MV_5_', // MV
2: 'A_PL_0_', // 歌单
3: 'R_AL_3_', // 专辑
4: 'A_DJ_1_', // 电台,
5: 'R_VI_62_', // 视频
6: 'A_EV_2_', // 动态
}[query.type];
const data = {
threadId: query.type + query.id,
commentId: query.cid,
};
if (query.type == 'A_EV_2_') {
data.threadId = query.threadId;
}
return request(
'POST',
`https://music.163.com/weapi/v1/comment/${query.t}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,22 +0,0 @@
// 歌曲评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
rid: query.id,
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/api/v1/resource/comments/R_SO_4_${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,22 +0,0 @@
// MV评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
rid: query.id,
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/weapi/v1/resource/comments/R_MV_5_${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,38 +0,0 @@
// 评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
query.type = {
0: 'R_SO_4_', // 歌曲
1: 'R_MV_5_', // MV
2: 'A_PL_0_', // 歌单
3: 'R_AL_3_', // 专辑
4: 'A_DJ_1_', // 电台,
5: 'R_VI_62_', // 视频
6: 'A_EV_2_', // 动态
}[query.type];
const threadId = query.type + query.id;
const pageSize = query.pageSize || 20;
const pageNo = query.pageNo || 1;
const data = {
threadId: threadId, //'R_SO_4_863481066',
pageNo,
showInner: query.showInner || true,
pageSize,
cursor:
+query.sortType === 3 ? query.cursor || '0' : (pageNo - 1) * pageSize,
sortType: query.sortType || 1, //1:按推荐排序,2:按热度排序,3:按时间排序
};
return request(
'POST',
`https://music.163.com/api/v2/resource/comments`,
data,
{
crypto: 'eapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
url: '/api/v2/resource/comments',
},
);
};

View file

@ -1,22 +0,0 @@
// 歌单评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
rid: query.id,
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/weapi/v1/resource/comments/A_PL_0_${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,22 +0,0 @@
// 视频评论
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
rid: query.id,
limit: query.limit || 20,
offset: query.offset || 0,
beforeTime: query.before || 0,
};
return request(
'POST',
`https://music.163.com/weapi/v1/resource/comments/R_VI_62_${query.id}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,16 +0,0 @@
// 国家编码列表
module.exports = (query, request) => {
const data = {};
return request(
'POST',
`https://interface3.music.163.com/eapi/lbs/countries/v1`,
data,
{
crypto: 'eapi',
cookie: query.cookie,
proxy: query.proxy,
url: '/api/lbs/countries/v1',
realIP: query.realIP,
},
);
};

View file

@ -1,20 +0,0 @@
// 签到
/*
0为安卓端签到 3点经验, 1为网页签到,2点经验
签到成功 {'android': {'point': 3, 'code': 200}, 'web': {'point': 2, 'code': 200}}
重复签到 {'android': {'code': -2, 'msg': '重复签到'}, 'web': {'code': -2, 'msg': '重复签到'}}
未登录 {'android': {'code': 301}, 'web': {'code': 301}}
*/
module.exports = (query, request) => {
const data = {
type: query.type || 0,
};
return request('POST', `https://music.163.com/weapi/point/dailyTask`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,27 +0,0 @@
// 购买数字专辑
module.exports = (query, request) => {
const data = {
business: 'Album',
paymentMethod: query.payment,
digitalResources: JSON.stringify([
{
business: 'Album',
resourceID: query.id,
quantity: query.quantity,
},
]),
from: 'web',
};
return request(
'POST',
`https://music.163.com/api/ordering/web/digital`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,20 +0,0 @@
// 我的数字专辑
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
offset: query.offset || 0,
total: true,
};
return request(
'POST',
`https://music.163.com/api/digitalAlbum/purchased`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 电台banner
module.exports = (query, request) => {
const data = {};
query.cookie.os = 'pc';
return request(
'POST',
`https://music.163.com/weapi/djradio/banner/get`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// 电台非热门类型
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/djradio/category/excludehot`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// 电台推荐类型
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/djradio/home/category/recommend`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// 电台分类列表
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/djradio/category/get`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,13 +0,0 @@
// 电台详情
module.exports = (query, request) => {
const data = {
id: query.rid,
};
return request('POST', `https://music.163.com/api/djradio/v2/get`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,14 +0,0 @@
// 热门电台
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
offset: query.offset || 0,
};
return request('POST', `https://music.163.com/weapi/djradio/hot/v1`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,19 +0,0 @@
// 付费电台
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
offset: query.offset || 0,
};
return request(
'POST',
`https://music.163.com/weapi/djradio/home/paygift/list?_nmclfl=1`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 电台个性推荐
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/api/djradio/personalize/rcmd`,
{
limit: query.limit || 6,
},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,21 +0,0 @@
// 电台节目列表
const { toBoolean } = require('../util');
module.exports = (query, request) => {
const data = {
radioId: query.rid,
limit: query.limit || 30,
offset: query.offset || 0,
asc: toBoolean(query.asc),
};
return request(
'POST',
`https://music.163.com/weapi/dj/program/byradio`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,13 +0,0 @@
// 电台节目详情
module.exports = (query, request) => {
const data = {
id: query.id,
};
return request('POST', `https://music.163.com/api/dj/program/detail`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,14 +0,0 @@
// 电台节目榜
module.exports = (query, request) => {
const data = {
limit: query.limit || 100,
offset: query.offset || 0,
};
return request('POST', `https://music.163.com/api/program/toplist/v1`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,18 +0,0 @@
// 电台24小时节目榜
module.exports = (query, request) => {
const data = {
limit: query.limit || 100,
// 不支持 offset
};
return request(
'POST',
`https://music.163.com/api/djprogram/toplist/hours`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// 类别热门电台
module.exports = (query, request) => {
const data = {
cateId: query.cateId,
limit: query.limit || 30,
offset: query.offset || 0,
};
return request('POST', `https://music.163.com/api/djradio/hot`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,15 +0,0 @@
// 精选电台
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/djradio/recommend/v1`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,41 +0,0 @@
// 精选电台分类
/*
有声书 10001
知识技能 453050
商业财经 453051
人文历史 11
外语世界 13
亲子宝贝 14
创作|翻唱 2001
音乐故事 2
3D|电子 10002
相声曲艺 8
情感调频 3
美文读物 6
脱口秀 5
广播剧 7
二次元 3001
明星做主播 1
娱乐|影视 4
科技科学 453052
校园|教育 4001
旅途|城市 12
*/
module.exports = (query, request) => {
const data = {
cateId: query.type,
};
return request(
'POST',
`https://music.163.com/weapi/djradio/recommend`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,19 +0,0 @@
// 订阅与取消电台
module.exports = (query, request) => {
query.t = query.t == 1 ? 'sub' : 'unsub';
const data = {
id: query.rid,
};
return request(
'POST',
`https://music.163.com/weapi/djradio/${query.t}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,20 +0,0 @@
// 订阅电台列表
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
offset: query.offset || 0,
total: true,
};
return request(
'POST',
`https://music.163.com/weapi/djradio/get/subed`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,16 +0,0 @@
// 电台详情
module.exports = (query, request) => {
const data = {
time: query.time || '-1',
id: query.id,
limit: query.limit || '20',
total: 'true',
};
return request('POST', `https://music.163.com/api/djradio/subscriber`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,18 +0,0 @@
// 电台今日优选
module.exports = (query, request) => {
const data = {
page: query.page || 0,
};
return request(
'POST',
`https://music.163.com/weapi/djradio/home/today/perfered`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,18 +0,0 @@
// 新晋电台榜/热门电台榜
const typeMap = {
new: 0,
hot: 1,
};
module.exports = (query, request) => {
const data = {
limit: query.limit || 100,
offset: query.offset || 0,
type: typeMap[query.type || 'new'] || '0', //0为新晋,1为热门
};
return request('POST', `https://music.163.com/api/djradio/toplist`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,14 +0,0 @@
// 电台24小时主播榜
module.exports = (query, request) => {
const data = {
limit: query.limit || 100,
// 不支持 offset
};
return request('POST', `https://music.163.com/api/dj/toplist/hours`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,18 +0,0 @@
// 电台新人榜
module.exports = (query, request) => {
const data = {
limit: query.limit || 100,
offset: query.offset || 0,
};
return request(
'POST',
`https://music.163.com/api/dj/toplist/newcomer`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,18 +0,0 @@
// 付费精品
module.exports = (query, request) => {
const data = {
limit: query.limit || 100,
// 不支持 offset
};
return request(
'POST',
`https://music.163.com/api/djradio/toplist/pay`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,14 +0,0 @@
// 电台最热主播榜
module.exports = (query, request) => {
const data = {
limit: query.limit || 100,
// 不支持 offset
};
return request('POST', `https://music.163.com/api/dj/toplist/popular`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,14 +0,0 @@
// 动态
module.exports = (query, request) => {
const data = {
pagesize: query.pagesize || 20,
lasttime: query.lasttime || -1,
};
return request('POST', `https://music.163.com/weapi/v1/event/get`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,13 +0,0 @@
// 删除动态
module.exports = (query, request) => {
const data = {
id: query.evId,
};
return request('POST', `https://music.163.com/eapi/event/delete`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,16 +0,0 @@
// 转发动态
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
forwards: query.forwards,
id: query.evId,
eventUserId: query.uid,
};
return request('POST', `https://music.163.com/weapi/event/forward`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,20 +0,0 @@
// 垃圾桶
module.exports = (query, request) => {
const data = {
songId: query.id,
};
return request(
'POST',
`https://music.163.com/weapi/radio/trash/add?alg=RT&songId=${
query.id
}&time=${query.time || 25}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 关注与取消关注用户
module.exports = (query, request) => {
query.cookie.os = 'pc';
query.t = query.t == 1 ? 'follow' : 'delfollow';
return request(
'POST',
`https://music.163.com/weapi/user/${query.t}/${query.id}`,
{},
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 历史每日推荐歌曲
module.exports = (query, request) => {
query.cookie.os = 'ios';
const data = {};
return request(
'POST',
`https://music.163.com/api/discovery/recommend/songs/history/recent`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,19 +0,0 @@
// 历史每日推荐歌曲详情
module.exports = (query, request) => {
query.cookie.os = 'ios';
const data = {
date: query.date || '',
};
return request(
'POST',
`https://music.163.com/api/discovery/recommend/songs/history/detail`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 首页-发现 block page
// 这个接口为移动端接口,首页-发现页,数据结构可以参考 https://github.com/hcanyz/flutter-netease-music-api/blob/master/lib/src/api/uncategorized/bean.dart#L259 HomeBlockPageWrap
// query.refresh 是否刷新数据
module.exports = (query, request) => {
const data = { refresh: query.refresh || true };
return request(
'POST',
`https://music.163.com/api/homepage/block/page`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,19 +0,0 @@
// 首页-发现 dragon ball
// 这个接口为移动端接口,首页-发现页(每日推荐、歌单、排行榜 那些入口)
// 数据结构可以参考 https://github.com/hcanyz/flutter-netease-music-api/blob/master/lib/src/api/uncategorized/bean.dart#L290 HomeDragonBallWrap
// !需要登录或者匿名登录,非登录返回 []
module.exports = (query, request) => {
const data = {};
return request(
'POST',
`https://music.163.com/eapi/homepage/dragon/ball/static`,
data,
{
crypto: 'eapi',
cookie: query.cookie,
proxy: query.proxy,
url: '/api/homepage/dragon/ball/static',
realIP: query.realIP,
},
);
};

View file

@ -1,14 +0,0 @@
//热门话题
module.exports = (query, request) => {
const data = {
limit: query.limit || 20,
offset: query.offset || 0,
};
return request('POST', `https://music.163.com/weapi/act/hot`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,23 +0,0 @@
// 红心与取消红心歌曲
const { toBoolean } = require('../util');
module.exports = (query, request) => {
query.like = query.like == 'false' ? false : true;
const data = {
trackId: query.id,
like: query.like,
};
return request(
'POST',
`https://music.163.com/weapi/radio/like?alg=${
query.alg || 'itembased'
}&trackId=${query.id}&time=${query.time || 25}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,13 +0,0 @@
// 喜欢的歌曲(无序)
module.exports = (query, request) => {
const data = {
uid: query.uid,
};
return request('POST', `https://music.163.com/weapi/song/like/get`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,47 +0,0 @@
// 邮箱登录
const crypto = require('crypto');
module.exports = async (query, request) => {
query.cookie.os = 'pc';
const data = {
username: query.email,
password:
query.md5_password ||
crypto.createHash('md5').update(query.password).digest('hex'),
rememberLogin: 'true',
};
let result = await request(
'POST',
`https://music.163.com/weapi/login`,
data,
{
crypto: 'weapi',
ua: 'pc',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
if (result.body.code === 502) {
return {
status: 200,
body: {
msg: '账号或密码错误',
code: 502,
message: '账号或密码错误',
},
};
}
if (result.body.code === 200) {
result = {
status: 200,
body: {
...result.body,
cookie: result.cookie.join(';'),
},
cookie: result.cookie,
};
}
return result;
};

View file

@ -1,39 +0,0 @@
// 手机登录
const crypto = require('crypto');
module.exports = async (query, request) => {
query.cookie.os = 'pc';
const data = {
phone: query.phone,
countrycode: query.countrycode || '86',
password:
query.md5_password ||
crypto.createHash('md5').update(query.password).digest('hex'),
rememberLogin: 'true',
};
let result = await request(
'POST',
`https://music.163.com/weapi/login/cellphone`,
data,
{
crypto: 'weapi',
ua: 'pc',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
if (result.body.code === 200) {
result = {
status: 200,
body: {
...result.body,
cookie: result.cookie.join(';'),
},
cookie: result.cookie,
};
}
return result;
};

View file

@ -1,16 +0,0 @@
// 登录刷新
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/login/token/refresh`,
{},
{
crypto: 'weapi',
ua: 'pc',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,23 +0,0 @@
// 登录状态
module.exports = (query, request) => {
return request(
'GET',
`https://music.163.com`,
{},
{ cookie: query.cookie, proxy: query.proxy, realIP: query.realIP },
).then((response) => {
try {
let profile = eval(`(${/GUser\s*=\s*([^;]+);/.exec(response.body)[1]})`);
let bindings = eval(
`(${/GBinds\s*=\s*([^;]+);/.exec(response.body)[1]})`,
);
response.body = { code: 200, profile: profile, bindings: bindings };
return response;
} catch (err) {
response.status = 301;
response.body = { code: 301 };
return Promise.reject(response);
}
});
};

View file

@ -1,16 +0,0 @@
// 退出登录
module.exports = (query, request) => {
return request(
'POST',
`https://music.163.com/weapi/logout`,
{},
{
crypto: 'weapi',
ua: 'pc',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,17 +0,0 @@
// 歌词
module.exports = (query, request) => {
query.cookie.os = 'pc';
const data = {
id: query.id,
lv: -1,
kv: -1,
tv: -1,
};
return request('POST', `https://music.163.com/api/song/lyric`, data, {
crypto: 'linuxapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,22 +0,0 @@
// 评论
module.exports = (query, request) => {
const data = {
beforeTime: query.before || '-1',
limit: query.limit || 30,
total: 'true',
uid: query.uid,
};
return request(
'POST',
`https://music.163.com/api/v1/user/comments/${query.uid}`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// @我
module.exports = (query, request) => {
const data = {
offset: query.offset || 0,
limit: query.limit || 30,
total: 'true',
};
return request('POST', `https://music.163.com/api/forwards/get`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,14 +0,0 @@
// 通知
module.exports = (query, request) => {
const data = {
limit: query.limit || 30,
time: query.lasttime || -1,
};
return request('POST', `https://music.163.com/api/msg/notices`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,15 +0,0 @@
// 私信
module.exports = (query, request) => {
const data = {
offset: query.offset || 0,
limit: query.limit || 30,
total: 'true',
};
return request('POST', `https://music.163.com/api/msg/private/users`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,21 +0,0 @@
// 私信内容
module.exports = (query, request) => {
const data = {
userId: query.uid,
limit: query.limit || 30,
time: query.before || 0,
total: 'true',
};
return request(
'POST',
`https://music.163.com/api/msg/private/history`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,20 +0,0 @@
// 全部MV
module.exports = (query, request) => {
const data = {
tags: JSON.stringify({
地区: query.area || '全部',
类型: query.type || '全部',
排序: query.order || '上升最快',
}),
offset: query.offset || 0,
total: 'true',
limit: query.limit || 30,
};
return request('POST', `https://interface.music.163.com/api/mv/all`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,13 +0,0 @@
// MV详情
module.exports = (query, request) => {
const data = {
id: query.mvid,
};
return request('POST', `https://music.163.com/api/v1/mv/detail`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

View file

@ -1,19 +0,0 @@
// MV 点赞转发评论数数据
module.exports = (query, request) => {
const data = {
threadid: `R_MV_5_${query.mvid}`,
composeliked: true,
};
return request(
'POST',
`https://music.163.com/api/comment/commentthread/info`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,19 +0,0 @@
// 网易出品
module.exports = (query, request) => {
const data = {
offset: query.offset || 0,
limit: query.limit || 30,
};
return request(
'POST',
`https://interface.music.163.com/api/mv/exclusive/rcmd`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,21 +0,0 @@
// 最新MV
module.exports = (query, request) => {
const data = {
// 'offset': query.offset || 0,
area: query.area || '',
limit: query.limit || 30,
total: true,
};
return request(
'POST',
`https://interface.music.163.com/weapi/mv/first`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
);
};

View file

@ -1,15 +0,0 @@
// 收藏与取消收藏MV
module.exports = (query, request) => {
query.t = query.t == 1 ? 'sub' : 'unsub';
const data = {
mvId: query.mvid,
mvIds: '["' + query.mvid + '"]',
};
return request('POST', `https://music.163.com/weapi/mv/${query.t}`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
});
};

Some files were not shown because too many files have changed in this diff Show more