mirror of
https://gitlab.com/Binaryify/neteasecloudmusicapi.git
synced 2025-05-23 22:37:41 +08:00
change router export mode
This commit is contained in:
parent
b03914bd1f
commit
08b5d5af27
39
app.js
39
app.js
@ -94,6 +94,45 @@ fs.readdirSync(path.resolve(__dirname, 'router'))
|
||||
app.use(route, Wrap(require('./router/' + file)))
|
||||
})
|
||||
|
||||
const requestMod = require('./util/request')
|
||||
let dev = express()
|
||||
fs.readdirSync(path.resolve(__dirname, 'module'))
|
||||
.reverse()
|
||||
.forEach(file => {
|
||||
if (/\.js$/i.test(file) === false) {
|
||||
return
|
||||
}
|
||||
|
||||
let route
|
||||
|
||||
if (typeof UnusualRouteFileMap[file] !== 'undefined') {
|
||||
route = UnusualRouteFileMap[file]
|
||||
} else {
|
||||
route =
|
||||
'/' +
|
||||
file
|
||||
.replace(/\.js$/i, '')
|
||||
.replace(/_/g, '/')
|
||||
}
|
||||
|
||||
dev.use(route, (req, res) => {
|
||||
let question = require('./module/' + file)
|
||||
let query = {...req.query, cookie: req.headers.cookie}
|
||||
question(query, requestMod)
|
||||
.then(answer => {
|
||||
console.log('[OK]', req.originalUrl)
|
||||
res.append('Set-Cookie', answer.cookie)
|
||||
res.status(answer.code).send(answer.body)
|
||||
})
|
||||
.catch( answer => {
|
||||
console.log('[ERROR]', req.originalUrl)
|
||||
res.append('Set-Cookie', answer.cookie)
|
||||
res.status(answer.code).send(answer.body)
|
||||
})
|
||||
})
|
||||
})
|
||||
app.use('/dev', dev)
|
||||
|
||||
const port = process.env.PORT || 3000
|
||||
|
||||
app.server = app.listen(port, () => {
|
||||
|
26
module/album.js
Normal file
26
module/album.js
Normal file
@ -0,0 +1,26 @@
|
||||
// 获取专辑内容
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const id = req.query.id;
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/album/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/album/${query.id}`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/artist_album.js
Normal file
32
module/artist_album.js
Normal file
@ -0,0 +1,32 @@
|
||||
// 获取歌手专辑列表
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.id;
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// total: true,
|
||||
// limit: req.query.limit || 30,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/artist/albums/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 30,
|
||||
total: true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/albums/${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
27
module/artist_desc.js
Normal file
27
module/artist_desc.js
Normal file
@ -0,0 +1,27 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.id;
|
||||
// const data = {
|
||||
// id,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/artist/introduction`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/introduction`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
58
module/artist_list.js
Normal file
58
module/artist_list.js
Normal file
@ -0,0 +1,58 @@
|
||||
// 歌手分类
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
|
||||
// // categoryCode 取值
|
||||
|
||||
// // 入驻歌手 5001
|
||||
// // 华语男歌手 1001
|
||||
// // 华语女歌手 1002
|
||||
// // 华语组合/乐队 1003
|
||||
// // 欧美男歌手 2001
|
||||
// // 欧美女歌手 2002
|
||||
// // 欧美组合/乐队 2003
|
||||
// // 日本男歌手 6001
|
||||
// // 日本女歌手 6002
|
||||
// // 日本组合/乐队 6003
|
||||
// // 韩国男歌手 7001
|
||||
// // 韩国女歌手 7002
|
||||
// // 韩国组合/乐队 7003
|
||||
// // 其他男歌手 4001
|
||||
// // 其他女歌手 4002
|
||||
// // 其他组合/乐队 4003
|
||||
|
||||
// // initial 取值a-z/A-Z
|
||||
|
||||
// const data = {
|
||||
// categoryCode: req.query.cat || "1001",
|
||||
// offset: req.query.offset || 0,
|
||||
// total: req.query.total ? "true" : "false",
|
||||
// limit: req.query.limit || 30,
|
||||
// initial: (req.query.initial || "").toUpperCase().charCodeAt() || ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/artist/list",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
categoryCode: query.cat || "1001",
|
||||
offset: query.offset || 0,
|
||||
total: query.total ? "true" : "false",
|
||||
limit: query.limit || 30,
|
||||
initial: (query.initial || "").toUpperCase().charCodeAt() || ""
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/list`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/artist_mv.js
Normal file
33
module/artist_mv.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.id;
|
||||
// const data = {
|
||||
// artistId: id,
|
||||
// total: true,
|
||||
// offset: req.query.offset,
|
||||
// limit: req.query.limit,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/artist/mvs`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
artistId: query.id,
|
||||
total: true,
|
||||
offset: query.offset,
|
||||
limit: query.limit
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/mvs`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
29
module/artist_sub.js
Normal file
29
module/artist_sub.js
Normal file
@ -0,0 +1,29 @@
|
||||
// 收藏歌手
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// artistId: `${req.query.id}`
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/artist/sub",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
artistId: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/sub`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
||||
|
33
module/artist_sublist.js
Normal file
33
module/artist_sublist.js
Normal file
@ -0,0 +1,33 @@
|
||||
// 已关注歌手
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// total: req.query.total ? "true" : "false",
|
||||
// limit: req.query.limit || 25
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/artist/sublist",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
total: query.total ? "true" : "false",
|
||||
limit: query.limit || 25
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/sublist`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
30
module/artist_unsub.js
Normal file
30
module/artist_unsub.js
Normal file
@ -0,0 +1,30 @@
|
||||
// 取消收藏歌手
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// artistId: `${req.query.id}`,
|
||||
// artistIds: `[${req.query.id}]`
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/artist/unsub",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
artistId: `${query.id}`,
|
||||
artistIds: `[${query.id}]`
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/unsub`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/artists.js
Normal file
28
module/artists.js
Normal file
@ -0,0 +1,28 @@
|
||||
// 获取歌手单曲
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.id;
|
||||
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/artist/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/artist/${query.id}`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
41
module/banner.js
Normal file
41
module/banner.js
Normal file
@ -0,0 +1,41 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const options = {
|
||||
// url: "http://music.163.com/discover",
|
||||
// method: "GET",
|
||||
// headers: {
|
||||
// "Referer": "http://music.163.com",
|
||||
// "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3380.0 Safari/537.36"
|
||||
// }
|
||||
// };
|
||||
// request(options, (error, response, body) => {
|
||||
// if (error) {
|
||||
// res.status(502).send("fetch error");
|
||||
// } else {
|
||||
// try {
|
||||
// const banners = /Gbanners\s*=\s*([^;]+);/.exec(body)[1];
|
||||
// res.send(JSON.stringify(eval(`({code:200,banners:${banners}})`)));
|
||||
// } catch (error) {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'GET', `http://music.163.com/discover`, {},
|
||||
{ua: 'pc', proxy: query.proxy}
|
||||
)
|
||||
.then(response => {
|
||||
try{
|
||||
const banners = eval(`(${/Gbanners\s*=\s*([^;]+);/.exec(response.body)[1]})`)
|
||||
response.body = {code: 200, banners: banners}
|
||||
return response
|
||||
}
|
||||
catch(err){
|
||||
response.code = 500
|
||||
response.body = {code: 500, msg: err.stack}
|
||||
return Promise.reject(response)
|
||||
}
|
||||
})
|
||||
}
|
53
module/check_music.js
Normal file
53
module/check_music.js
Normal file
@ -0,0 +1,53 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const id = parseInt(req.query.id)
|
||||
// const br = parseInt(req.query.br || 999000)
|
||||
// const data = {
|
||||
// ids: [id],
|
||||
// br: br,
|
||||
// csrf_token: ''
|
||||
// }
|
||||
// const cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// '/weapi/song/enhance/player/url',
|
||||
// 'POST',
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// music_req = JSON.parse(music_req)
|
||||
// if (music_req.code == 200) {
|
||||
// if (music_req.data[0].code == 200){
|
||||
// return res.send({ success: true, message: 'ok' })
|
||||
// }
|
||||
// }
|
||||
// return res.send({ success: false, message: '亲爱的,暂无版权' })
|
||||
// },
|
||||
// err => {
|
||||
// res.status(502).send('fetch error')
|
||||
// }
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
ids: '[' + parseInt(query.id) + ']',
|
||||
br: parseInt(query.br || 999000)
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/song/enhance/player/url`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
.then(response => {
|
||||
let body = JSON.parse(response.body)
|
||||
if (body.code == 200) {
|
||||
if (body.data[0].code == 200){
|
||||
response.body = JSON.stringify({success: true, message: 'ok'})
|
||||
return response
|
||||
}
|
||||
}
|
||||
response.code = 404
|
||||
response.body = JSON.stringify({success: false, message: '亲爱的,暂无版权'})
|
||||
return Promise.reject(response)
|
||||
})
|
||||
}
|
70
module/comment.js
Normal file
70
module/comment.js
Normal file
@ -0,0 +1,70 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
// const id = req.query.id
|
||||
// const action = req.query.action == 1 ? 'add' : 'delete'
|
||||
// const typeMap = {
|
||||
// 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_' // 视频
|
||||
// }
|
||||
// const type = typeMap[req.query.type]
|
||||
|
||||
// let data = {
|
||||
// threadId: `${type}${id}`,
|
||||
// csrf_token: ''
|
||||
// }
|
||||
|
||||
// if (action == 'add') {
|
||||
// data = {
|
||||
// ...data,
|
||||
// content: req.query.content
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (action == 'delete') {
|
||||
// data = {
|
||||
// ...data,
|
||||
// commentId: req.query.commentId
|
||||
// }
|
||||
// }
|
||||
|
||||
// const url = `/weapi/resource/comments/${action}`
|
||||
|
||||
// // console.log({ url, data })
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// url,
|
||||
// 'POST',
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send('fetch error')
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.cookie = 'os=pc;' + query.cookie
|
||||
query.action = (query.action == 1 ? 'add' : 'delete')
|
||||
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 = {
|
||||
threadId: `${query.type}${query.id}`
|
||||
}
|
||||
if(action == 'add')
|
||||
data.content = query.content
|
||||
else if(action == 'delete')
|
||||
data.commentId = query.commentId
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/resource/comments/${query.action}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/comment_album.js
Normal file
33
module/comment_album.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.id;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// rid: rid,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/resource/comments/R_AL_3_${rid}/?csrf_token=`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
rid: query.id,
|
||||
limit: query.limit || 20,
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_AL_3_${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/comment_dj.js
Normal file
33
module/comment_dj.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.id;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// rid: rid,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/resource/comments/A_DJ_1_${rid}/?csrf_token=`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
rid: query.id,
|
||||
limit: query.limit || 20,
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/resource/comments/A_DJ_1_${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
51
module/comment_hot.js
Normal file
51
module/comment_hot.js
Normal file
@ -0,0 +1,51 @@
|
||||
// module.exports = (req, res, createWebAPIRequest) => {
|
||||
// let cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
// cookie = 'os=pc;' + cookie
|
||||
// const rid = req.query.id
|
||||
// const typeMap = {
|
||||
// 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_' // 视频
|
||||
// }
|
||||
// const type = typeMap[req.query.type]
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// rid: rid,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ''
|
||||
// }
|
||||
// const url = `/weapi/v1/resource/hotcomments/${type}${rid}`
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// url,
|
||||
// 'POST',
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send('fetch error')
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.cookie = 'os=pc;' + query.cookie
|
||||
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 = {
|
||||
offset: query.offset || 0,
|
||||
rid: query.id,
|
||||
limit: query.limit || 20
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/resource/hotcomments/${query.type}${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
54
module/comment_like.js
Normal file
54
module/comment_like.js
Normal file
@ -0,0 +1,54 @@
|
||||
//comment like
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// let cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
// cookie = 'os=pc;' + cookie
|
||||
// const cid = req.query.cid //评论 id
|
||||
// const id = req.query.id
|
||||
// const typeMap = {
|
||||
// 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_' // 视频
|
||||
// }
|
||||
// const type = typeMap[req.query.type]
|
||||
// const data = {
|
||||
// threadId: `${type}${id}`,
|
||||
// commentId: cid,
|
||||
// csrf_token: ''
|
||||
// }
|
||||
// const action = req.query.t == 1 ? 'like' : 'unlike'
|
||||
|
||||
// const url = `/weapi/v1/comment/${action}`
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// url,
|
||||
// 'POST',
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send('fetch error')
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.cookie = 'os=pc;' + query.cookie
|
||||
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_' // 视频
|
||||
}[query.type]
|
||||
const data = {
|
||||
threadId: `${query.type}${query.id}`,
|
||||
commentId: query.cid
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/comment/${query.t}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/comment_music.js
Normal file
33
module/comment_music.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.id;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// rid: rid,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/resource/comments/R_SO_4_${rid}/?csrf_token=`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send(err.message)
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
rid: query.id,
|
||||
limit: query.limit || 20
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_SO_4_${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/comment_mv.js
Normal file
33
module/comment_mv.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.id;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// rid: rid,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/resource/comments/R_MV_5_${rid}/?csrf_token=`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
rid: query.id,
|
||||
limit: query.limit || 20
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_MV_5_${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/comment_playlist.js
Normal file
33
module/comment_playlist.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.id;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// rid: rid,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/resource/comments/A_PL_0_${rid}/?csrf_token=`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
rid: query.id,
|
||||
limit: query.limit || 20
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/resource/comments/A_PL_0_${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/comment_video.js
Normal file
33
module/comment_video.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.id
|
||||
// const cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// rid: rid,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ''
|
||||
// }
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// `/weapi/v1/resource/comments/R_VI_62_${rid}/?csrf_token=`,
|
||||
// 'POST',
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req)
|
||||
// },
|
||||
// err => res.status(502).send('fetch error')
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
rid: query.id,
|
||||
limit: query.limit || 20
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_VI_62_${query.id}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/daily_signin.js
Normal file
32
module/daily_signin.js
Normal file
@ -0,0 +1,32 @@
|
||||
// 签到
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// let type = req.query.type || 0; //0为安卓端签到 3点经验,1为网页签到,2点经验
|
||||
// const data = {
|
||||
// csrf_token: "",
|
||||
// type
|
||||
// };
|
||||
// // {'android': {'point': 3, 'code': 200}, 'web': {'point': 2, 'code': 200}}
|
||||
// // {'android': {'code': -2, 'msg': '重复签到'}, 'web': {'code': -2, 'msg': '重复签到'}}
|
||||
// // 'android': {'code': 301}, 'web': {'code': 301}}
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/point/dailyTask",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
type: query.type || 0
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/point/dailyTask`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
24
module/dj_catelist.js
Normal file
24
module/dj_catelist.js
Normal file
@ -0,0 +1,24 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/category/get",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/category/get`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
30
module/dj_detail.js
Normal file
30
module/dj_detail.js
Normal file
@ -0,0 +1,30 @@
|
||||
//djradio detail
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.rid;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// id: rid,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/get",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.rid
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/get`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
40
module/dj_hot.js
Normal file
40
module/dj_hot.js
Normal file
@ -0,0 +1,40 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// cat: req.query.type,
|
||||
// cateId: req.query.type,
|
||||
// type: req.query.type,
|
||||
// categoryId: req.query.type,
|
||||
// category: req.query.type,
|
||||
// limit: req.query.limit,
|
||||
// offset: req.query.offset,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/hot/v1",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
cat: query.type,
|
||||
cateId: query.type,
|
||||
type: query.type,
|
||||
categoryId: query.type,
|
||||
category: query.type,
|
||||
limit: query.limit,
|
||||
offset: query.offset
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/hot/v1`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
31
module/dj_paygift.js
Normal file
31
module/dj_paygift.js
Normal file
@ -0,0 +1,31 @@
|
||||
// 付费电台
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: "",
|
||||
// limit: req.query.limit || 10,
|
||||
// offset: req.query.offset || 0,
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/home/paygift/list?_nmclfl=1",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
limit: query.limit || 10,
|
||||
offset: query.offset || 0
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/home/paygift/list?_nmclfl=1`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
36
module/dj_program.js
Normal file
36
module/dj_program.js
Normal file
@ -0,0 +1,36 @@
|
||||
//dj主播 radio
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const rid = req.query.rid;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// asc: req.query.asc,
|
||||
// radioId: rid,
|
||||
// limit: req.query.limit || 30,
|
||||
// offset: req.query.offset || 0,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/dj/program/byradio",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
asc: query.asc,
|
||||
radioId: query.rid,
|
||||
limit: query.limit || 30,
|
||||
offset: query.offset || 0
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/dj/program/byradio`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/dj_program_detail.js
Normal file
28
module/dj_program_detail.js
Normal file
@ -0,0 +1,28 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// id: req.query.id,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/dj/program/detail",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/dj/program/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
25
module/dj_recommend.js
Normal file
25
module/dj_recommend.js
Normal file
@ -0,0 +1,25 @@
|
||||
// 精选电台
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/recommend/v1",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/recommend/v1`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
29
module/dj_recommend_type.js
Normal file
29
module/dj_recommend_type.js
Normal file
@ -0,0 +1,29 @@
|
||||
//精选电台-分类电台
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// cateId: req.query.type,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/recommend",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
cateId: query.type
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/recommend`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
30
module/dj_sub.js
Normal file
30
module/dj_sub.js
Normal file
@ -0,0 +1,30 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// id: req.query.rid,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const action = req.query.t == 1 ? "sub" : "unsub";
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/djradio/${action}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.t = (query.t == 1 ? "sub" : "unsub")
|
||||
const data = {
|
||||
id: query.rid
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/${query.t}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/dj_sublist.js
Normal file
32
module/dj_sublist.js
Normal file
@ -0,0 +1,32 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// total: req.query.total ? "true" : "false",
|
||||
// limit: req.query.limit || 30
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/get/subed",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
total: query.total ? "true" : "false",
|
||||
limit: query.limit || 30
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/get/subed`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
23
module/event.js
Normal file
23
module/event.js
Normal file
@ -0,0 +1,23 @@
|
||||
//获取动态
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/event/get",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/event/get`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
31
module/fm_trash.js
Normal file
31
module/fm_trash.js
Normal file
@ -0,0 +1,31 @@
|
||||
//垃圾桶
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const songId = req.query.id;
|
||||
// const alg = "RT";
|
||||
// const time = req.query.time || 25;
|
||||
// const data = {
|
||||
// csrf_token: "",
|
||||
// songId
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/radio/trash/add?alg=${alg}&songId=${songId}&time=${time}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
songId: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://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}
|
||||
)
|
||||
}
|
27
module/follow.js
Normal file
27
module/follow.js
Normal file
@ -0,0 +1,27 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const url = req.query.type == "add" ? "follow" : "delfollow";
|
||||
// const id = req.query.id;
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/user/${url}/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.type = (query.type == "add" ? "follow" : "delfollow")
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/user/${query.type}/${query.id}`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/like.js
Normal file
33
module/like.js
Normal file
@ -0,0 +1,33 @@
|
||||
// 喜欢歌曲
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const trackId = req.query.id;
|
||||
// const like = req.query.like || true;
|
||||
// const alg = req.query.alg || "itembased";
|
||||
// const time = req.query.time || 25;
|
||||
// const data = {
|
||||
// csrf_token: "",
|
||||
// trackId,
|
||||
// like
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/radio/like?alg=${alg}&trackId=${trackId}&like=${like}&time=${time}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
trackId: query.id,
|
||||
like: query.like || true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/radio/like?alg=${query.alg || 'itembased'}&trackId=${query.id}&like=${data.like}&time=${query.time || 25}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/likelist.js
Normal file
28
module/likelist.js
Normal file
@ -0,0 +1,28 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// uid: req.query.uid,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/song/like/get`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
uid: query.uid
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/song/like/get`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
41
module/login.js
Normal file
41
module/login.js
Normal file
@ -0,0 +1,41 @@
|
||||
const crypto = require('crypto')
|
||||
|
||||
//邮箱登录
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const email = req.query.email
|
||||
// const cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
// const md5sum = crypto.createHash('md5')
|
||||
// md5sum.update(req.query.password)
|
||||
// const data = {
|
||||
// username: email,
|
||||
// password: md5sum.digest('hex'),
|
||||
// rememberLogin: 'true'
|
||||
// }
|
||||
// console.log(email, req.query.password)
|
||||
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// '/weapi/login',
|
||||
// 'POST',
|
||||
// data,
|
||||
// cookie,
|
||||
// (music_req, cookie) => {
|
||||
// // console.log(music_req)
|
||||
// res.append("Set-Cookie", cookie)
|
||||
// res.send(music_req)
|
||||
// },
|
||||
// err => res.status(502).send('fetch error')
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
username: query.email,
|
||||
password: crypto.createHash("md5").update(query.password).digest("hex"),
|
||||
rememberLogin: "true"
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/login`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
38
module/login_cellphone.js
Normal file
38
module/login_cellphone.js
Normal file
@ -0,0 +1,38 @@
|
||||
const crypto = require("crypto")
|
||||
|
||||
//手机登录
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const phone = req.query.phone;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const md5sum = crypto.createHash("md5");
|
||||
// md5sum.update(req.query.password);
|
||||
// const data = {
|
||||
// phone: phone,
|
||||
// password: md5sum.digest("hex"),
|
||||
// rememberLogin: "true"
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/login/cellphone",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// (music_req, cookie) => {
|
||||
// res.append("Set-Cookie", cookie);
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
phone: query.phone,
|
||||
password: crypto.createHash("md5").update(query.password).digest("hex"),
|
||||
rememberLogin: "true"
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/login/cellphone`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
26
module/login_refresh.js
Normal file
26
module/login_refresh.js
Normal file
@ -0,0 +1,26 @@
|
||||
//登录刷新
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/login/token/refresh`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// (music_req, cookie) => {
|
||||
// res.append("Set-Cookie", cookie);
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/login/token/refresh`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
43
module/login_status.js
Normal file
43
module/login_status.js
Normal file
@ -0,0 +1,43 @@
|
||||
//登录状态
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/",
|
||||
// "GET",
|
||||
// {},
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// try {
|
||||
// var profile = /GUser\s*=\s*([^;]+);/.exec(music_req)[1];
|
||||
// var bindings = /GBinds\s*=\s*([^;]+);/.exec(music_req)[1];
|
||||
// profile = eval(`(${profile})`);
|
||||
// bindings = eval(`(${bindings})`);
|
||||
// res.send({code: 200, profile: profile, bindings: bindings});
|
||||
// } catch (error) {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'GET', `http://music.163.com`, {},
|
||||
{cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
.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.code = 301
|
||||
response.body = {code: 301}
|
||||
return Promise.reject(response)
|
||||
}
|
||||
})
|
||||
}
|
23
module/logout.js
Normal file
23
module/logout.js
Normal file
@ -0,0 +1,23 @@
|
||||
//登出
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// '/weapi/logout',
|
||||
// 'POST',
|
||||
// {},
|
||||
// cookie,
|
||||
// (music_req, cookie) => {
|
||||
// res.append("Set-Cookie", cookie)
|
||||
// res.send(music_req)
|
||||
// },
|
||||
// err => res.status(502).send('fetch error')
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/logout`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
24
module/lyric.js
Normal file
24
module/lyric.js
Normal file
@ -0,0 +1,24 @@
|
||||
// 获取歌词
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {};
|
||||
// const id = req.query.id;
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/song/lyric?os=osx&id=" + id + "&lv=-1&kv=-1&tv=-1",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/song/lyric?os=osx&id=${query.id}&lv=-1&kv=-1&tv=-1`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
37
module/music_url.js
Normal file
37
module/music_url.js
Normal file
@ -0,0 +1,37 @@
|
||||
// 获取音乐 url
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const id = req.query.id;
|
||||
// const br = req.query.br || 999000;
|
||||
// const data = {
|
||||
// ids: [id],
|
||||
// br: br,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/song/enhance/player/url",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.setHeader("Content-Type", "application/json");
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
ids: '[' + parseInt(query.id) + ']',
|
||||
br: parseInt(query.br || 999000)
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/song/enhance/player/url`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
30
module/mv.js
Normal file
30
module/mv.js
Normal file
@ -0,0 +1,30 @@
|
||||
//mv
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const mvid = req.query.mvid;
|
||||
// const data = {
|
||||
// id: mvid
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/mv/detail`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.mvid
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/mv/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/mv_first.js
Normal file
33
module/mv_first.js
Normal file
@ -0,0 +1,33 @@
|
||||
//最新mv
|
||||
|
||||
// type ALL, ZH,EA,KR,JP
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// // 'offset': req.query.offset || 0,
|
||||
// total: true,
|
||||
// limit: req.query.limit || 30,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/mv/first",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
// 'offset': req.query.offset || 0,
|
||||
limit: req.query.limit || 30,
|
||||
total: true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/mv/first`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
18
module/mv_url.js
Normal file
18
module/mv_url.js
Normal file
@ -0,0 +1,18 @@
|
||||
module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
const url = req.query.url;
|
||||
const headers = {
|
||||
Referer: "http://music.163.com/",
|
||||
Cookie: "appver=1.5.0.75771;",
|
||||
"Content-Type": "video/mp4",
|
||||
Location: url
|
||||
};
|
||||
const options = {
|
||||
header: headers,
|
||||
url: url
|
||||
};
|
||||
request(options)
|
||||
.on("error", err => {
|
||||
res.send({ err });
|
||||
})
|
||||
.pipe(res);
|
||||
};
|
23
module/personal_fm.js
Normal file
23
module/personal_fm.js
Normal file
@ -0,0 +1,23 @@
|
||||
// 私人 FM
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/radio/get",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/radio/get`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
35
module/personalized.js
Normal file
35
module/personalized.js
Normal file
@ -0,0 +1,35 @@
|
||||
//推荐歌单
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// limit: req.query.limit || 30,
|
||||
// offset: req.query.limit || 0,
|
||||
// total: true,
|
||||
// n: 1000,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/personalized/playlist",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
limit: query.limit || 30,
|
||||
offset: query.limit || 0,
|
||||
total: true,
|
||||
n: 1000
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/personalized/playlist`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
23
module/personalized_djprogram.js
Normal file
23
module/personalized_djprogram.js
Normal file
@ -0,0 +1,23 @@
|
||||
//推荐dj
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {};
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/personalized/djprogram",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/personalized/djprogram`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
23
module/personalized_mv.js
Normal file
23
module/personalized_mv.js
Normal file
@ -0,0 +1,23 @@
|
||||
//推荐mv
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {};
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/personalized/mv",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/personalized/mv`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/personalized_newsong.js
Normal file
28
module/personalized_newsong.js
Normal file
@ -0,0 +1,28 @@
|
||||
//推荐新音乐
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// type: "recommend"
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/personalized/newsong",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
type: "recommend"
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/personalized/newsong`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
23
module/personalized_privatecontent.js
Normal file
23
module/personalized_privatecontent.js
Normal file
@ -0,0 +1,23 @@
|
||||
//独家放送
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {};
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/personalized/privatecontent",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/personalized/privatecontent`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
25
module/playlist_catlist.js
Normal file
25
module/playlist_catlist.js
Normal file
@ -0,0 +1,25 @@
|
||||
// 全部歌单分类
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/playlist/catalogue",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/playlist/catalogue`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/playlist_create.js
Normal file
28
module/playlist_create.js
Normal file
@ -0,0 +1,28 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// name: req.query.name,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/playlist/create",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
name: query.name
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/playlist/create`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
38
module/playlist_detail.js
Normal file
38
module/playlist_detail.js
Normal file
@ -0,0 +1,38 @@
|
||||
// 获取歌单内列表
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// id: req.query.id,
|
||||
// n: 100000,
|
||||
// s: req.query.s || 8,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v3/playlist/detail`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// // console.log(JSON.parse(music_req).playlist.tracks.length)
|
||||
// // console.log(JSON.parse(music_req).playlist.trackIds.length)
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.id,
|
||||
n: 100000,
|
||||
s: query.s || 8
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v3/playlist/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
23
module/playlist_hot.js
Normal file
23
module/playlist_hot.js
Normal file
@ -0,0 +1,23 @@
|
||||
// 热门歌单分类
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {};
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/playlist/hottags",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/playlist/hottags`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
30
module/playlist_subscribe.js
Normal file
30
module/playlist_subscribe.js
Normal file
@ -0,0 +1,30 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// id: req.query.id,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const action = req.query.t == 1 ? "subscribe" : "unsubscribe";
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/playlist/${action}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.t = (query.t == 1 ? "subscribe" : "unsubscribe")
|
||||
const data = {
|
||||
id: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/playlist/${query.t}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
39
module/playlist_tracks.js
Normal file
39
module/playlist_tracks.js
Normal file
@ -0,0 +1,39 @@
|
||||
//收藏单曲到歌单,从歌单删除歌曲 op=del,add;pid=歌单id,tracks=歌曲id
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const op = req.query.op;
|
||||
// const pid = req.query.pid;
|
||||
// // const tracks = req.query.tracks.split(',')
|
||||
// const tracks = req.query.tracks;
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// // console.log('COOKIESS', cookie)
|
||||
// const data = {
|
||||
// op: op,
|
||||
// pid: pid,
|
||||
// // tracks: (tracks.length == 1) ? tracks[0] : Array.apply(null,{length:tracks.length}).map(()=>({})).join(','),
|
||||
// // trackIds: (tracks.length == 1) ? JSON.stringify(tracks) : `[${tracks.join(',')}]`
|
||||
// trackIds: `[${tracks}]`,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/playlist/manipulate/tracks",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
op: query.op,
|
||||
pid: query.pid,
|
||||
trackIds: '[' + query.tracks + ']'
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/playlist/manipulate/tracks`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
41
module/playlist_update.js
Normal file
41
module/playlist_update.js
Normal file
@ -0,0 +1,41 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const playlist_id = req.query.id;
|
||||
// const desc_detail = req.query.desc || "";
|
||||
// const tags_detail = req.query.tags || "";
|
||||
// const name_detail = req.query.name;
|
||||
// const data = {
|
||||
// "/api/playlist/desc/update":
|
||||
// '{"id":' + playlist_id + ',"desc":"' + desc_detail + '"}',
|
||||
// "/api/playlist/tags/update":
|
||||
// '{"id":' + playlist_id + ',"tags":"' + tags_detail + '"}',
|
||||
// "/api/playlist/update/name":
|
||||
// '{"id":' + playlist_id + ',"name":"' + name_detail + '"}',
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/batch",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.desc = query.desc || ''
|
||||
query.tags = query.tags || ''
|
||||
const data = {
|
||||
"/api/playlist/desc/update": `{"id":${query.id},"desc":"${query.desc}"}`,
|
||||
"/api/playlist/tags/update": `{"id":${query.id},"desc":"${query.tags}"}`,
|
||||
"/api/playlist/update/name": `{"id":${query.id},"desc":"${query.name}"}`
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/batch`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
29
module/program_recommend.js
Normal file
29
module/program_recommend.js
Normal file
@ -0,0 +1,29 @@
|
||||
//推荐节目
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// cateId: req.query.type,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/program/recommend/v1",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
cateId: query.type
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/program/recommend/v1`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
24
module/recommend_dislike.js
Normal file
24
module/recommend_dislike.js
Normal file
@ -0,0 +1,24 @@
|
||||
//取消推荐
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/radio/get",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/radio/get`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
24
module/recommend_resource.js
Normal file
24
module/recommend_resource.js
Normal file
@ -0,0 +1,24 @@
|
||||
// 获取每日推荐歌单
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/discovery/recommend/resource",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/discovery/recommend/resource`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/recommend_songs.js
Normal file
32
module/recommend_songs.js
Normal file
@ -0,0 +1,32 @@
|
||||
// 获取每日推荐歌曲
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: 0,
|
||||
// total: true,
|
||||
// limit: 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/discovery/recommend/songs",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: 0,
|
||||
limit: 20,
|
||||
total: true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/discovery/recommend/resource`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
68
module/related_playlist.js
Normal file
68
module/related_playlist.js
Normal file
@ -0,0 +1,68 @@
|
||||
//related ,相关歌单
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const options = {
|
||||
// url: "http://music.163.com/playlist?id=" + req.query.id,
|
||||
// method: "GET",
|
||||
// headers: {
|
||||
// Referer: "http://music.163.com",
|
||||
// "User-Agent":
|
||||
// "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3380.0 Safari/537.36"
|
||||
// }
|
||||
// };
|
||||
// request(options, (error, response, body) => {
|
||||
// if (error) {
|
||||
// res.status(502).send("fetch error");
|
||||
// } else {
|
||||
// try {
|
||||
// const pattern = /<div class="cver u-cover u-cover-3">[\s\S]*?<img src="([^"]+)">[\s\S]*?<a class="sname f-fs1 s-fc0" href="([^"]+)"[^>]*>([^<]+?)<\/a>[\s\S]*?<a class="nm nm f-thide s-fc3" href="([^"]+)"[^>]*>([^<]+?)<\/a>/g;
|
||||
// const data = {playlists:[],code:200};
|
||||
// let result;
|
||||
// while ((result = pattern.exec(body)) != null) {
|
||||
// data.playlists.push({
|
||||
// creator: {
|
||||
// userId: result[4].slice('/user/home?id='.length),
|
||||
// nickname: result[5]
|
||||
// },
|
||||
// coverImgUrl: result[1].slice(0,-('?param=50y50'.length)),
|
||||
// name: result[3],
|
||||
// id: result[2].slice('/playlist?id='.length)
|
||||
// });
|
||||
// }
|
||||
// res.send(JSON.stringify(data));
|
||||
// } catch (error) {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'GET', `http://music.163.com/playlist?id=${query.id}`, {},
|
||||
{ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
.then(response => {
|
||||
try{
|
||||
const pattern = /<div class="cver u-cover u-cover-3">[\s\S]*?<img src="([^"]+)">[\s\S]*?<a class="sname f-fs1 s-fc0" href="([^"]+)"[^>]*>([^<]+?)<\/a>[\s\S]*?<a class="nm nm f-thide s-fc3" href="([^"]+)"[^>]*>([^<]+?)<\/a>/g;
|
||||
let result, playlists = []
|
||||
while((result = pattern.exec(response.body)) != null){
|
||||
playlists.push({
|
||||
creator: {
|
||||
userId: result[4].slice('/user/home?id='.length),
|
||||
nickname: result[5]
|
||||
},
|
||||
coverImgUrl: result[1].slice(0,-('?param=50y50'.length)),
|
||||
name: result[3],
|
||||
id: result[2].slice('/playlist?id='.length)
|
||||
})
|
||||
}
|
||||
response.body = {code: 200, playlists: playlists}
|
||||
return response
|
||||
}
|
||||
catch(err){
|
||||
response.code = 500
|
||||
response.body = {code: 500, msg: err.stack}
|
||||
return Promise.reject(response)
|
||||
}
|
||||
})
|
||||
}
|
30
module/resource_like.js
Normal file
30
module/resource_like.js
Normal file
@ -0,0 +1,30 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// threadId: req.query.id,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const action = req.query.t == 1 ? "like" : "unlike";
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/resource/${action}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.t = (query.t == 1 ? "like" : "unlike")
|
||||
const data = {
|
||||
threadId: req.query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/resource/${query.t}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
39
module/search.js
Normal file
39
module/search.js
Normal file
@ -0,0 +1,39 @@
|
||||
// 搜索
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get('Cookie') ? req.get('Cookie') : ''
|
||||
// const keywords = req.query.keywords
|
||||
// const type = req.query.type || 1
|
||||
// const limit = req.query.limit || 30
|
||||
// const offset = req.query.offset || 0
|
||||
// // *(type)* 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频
|
||||
// const data = {
|
||||
// csrf_token: '',
|
||||
// limit,
|
||||
// type,
|
||||
// s: keywords,
|
||||
// offset
|
||||
// }
|
||||
|
||||
// createWebAPIRequest(
|
||||
// 'music.163.com',
|
||||
// '/weapi/search/get',
|
||||
// 'POST',
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send('fetch error')
|
||||
// )
|
||||
// }
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
s: query.keywords,
|
||||
type: query.type || 1,
|
||||
limit: query.limit || 30,
|
||||
offset: query.offset || 0
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/search/get`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
29
module/search_hot.js
Normal file
29
module/search_hot.js
Normal file
@ -0,0 +1,29 @@
|
||||
// 热搜
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// type: 1111
|
||||
// };
|
||||
// const id = req.query.id;
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/search/hot",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
type: 1111
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/search/hot`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/search_multimatch.js
Normal file
32
module/search_multimatch.js
Normal file
@ -0,0 +1,32 @@
|
||||
//搜索 multimatch
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: "",
|
||||
// type: req.query.type || 1,
|
||||
// s: req.query.keywords || ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/search/suggest/multimatch",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
type: query.type || 1,
|
||||
s: query.keywords || ''
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/search/suggest/multimatch`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
30
module/search_suggest.js
Normal file
30
module/search_suggest.js
Normal file
@ -0,0 +1,30 @@
|
||||
// 搜索 suggest,搜索结果包含单曲,歌手,歌单,mv信息
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: "",
|
||||
// s: req.query.keywords || ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/search/suggest/web",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
s: req.query.keywords || ''
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/search/suggest/web`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/send_playlist.js
Normal file
33
module/send_playlist.js
Normal file
@ -0,0 +1,33 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const user_ids = req.query.user_ids;
|
||||
// const data = {
|
||||
// id: req.query.playlist,
|
||||
// type: "playlist",
|
||||
// msg: req.query.msg,
|
||||
// userIds: "[" + user_ids + "]",
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/msg/private/send`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.playlist,
|
||||
type: 'playlist',
|
||||
msg: query.msg,
|
||||
userIds: '[' + user_ids + ']'
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/msg/private/send`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
34
module/send_text.js
Normal file
34
module/send_text.js
Normal file
@ -0,0 +1,34 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// // user_id must be [id]
|
||||
// const user_ids = req.query.user_ids;
|
||||
// const data = {
|
||||
// type: "text",
|
||||
// msg: req.query.msg,
|
||||
// userIds: "[" + user_ids + "]",
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// console.log(data);
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/msg/private/send`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.playlist,
|
||||
type: 'text',
|
||||
msg: query.msg,
|
||||
userIds: '[' + user_ids + ']'
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/msg/private/send`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
27
module/simi_artist.js
Normal file
27
module/simi_artist.js
Normal file
@ -0,0 +1,27 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.id;
|
||||
// const data = {
|
||||
// artistid: id,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/discovery/simiArtist`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
artistid: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/discovery/simiArtist`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
26
module/simi_mv.js
Normal file
26
module/simi_mv.js
Normal file
@ -0,0 +1,26 @@
|
||||
//相似 mv
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// mvid: req.query.mvid
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/discovery/simiMV",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
mvid: query.mvid
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/discovery/simiMV`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/simi_playlist.js
Normal file
28
module/simi_playlist.js
Normal file
@ -0,0 +1,28 @@
|
||||
//simi ,相似歌单
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// songid: req.query.id
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/discovery/simiPlaylist",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
songid: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/discovery/simiPlaylist`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/simi_song.js
Normal file
28
module/simi_song.js
Normal file
@ -0,0 +1,28 @@
|
||||
//simi ,相似歌曲
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// songid: req.query.id
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/discovery/simiSong",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
songid: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/discovery/simiSong`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
28
module/simi_user.js
Normal file
28
module/simi_user.js
Normal file
@ -0,0 +1,28 @@
|
||||
//simi ,相似关注的用户
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// songid: req.query.id
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/discovery/simiUser",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
songid: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/discovery/simiUser`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
34
module/song_detail.js
Normal file
34
module/song_detail.js
Normal file
@ -0,0 +1,34 @@
|
||||
// 获取音乐详情
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = parseInt(req.query.ids);
|
||||
// const data = {
|
||||
// // "id": id,
|
||||
// c: JSON.stringify([{ id: id }]),
|
||||
// ids: "[" + id + "]",
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// console.log(data);
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v3/song/detail",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
c: JSON.stringify([{ id: query.ids }]),
|
||||
ids: '[' + query.ids + ']'
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v3/song/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
38
module/top_album.js
Normal file
38
module/top_album.js
Normal file
@ -0,0 +1,38 @@
|
||||
//最新mv
|
||||
// 新碟上架 http://music.163.com/#/discover/album/
|
||||
|
||||
// type ALL, ZH,EA,KR,JP
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// total: true,
|
||||
// limit: req.query.limit || 50,
|
||||
// area: req.query.type,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/album/new",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 50,
|
||||
area: query.type,
|
||||
total: true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/album/new`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/top_artists.js
Normal file
33
module/top_artists.js
Normal file
@ -0,0 +1,33 @@
|
||||
// 热门歌手 http://music.163.com/#/discover/artist/
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// total: true,
|
||||
// limit: req.query.limit || 50,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/artist/top`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 50,
|
||||
total: true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/artist/top`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
88
module/top_list.js
Normal file
88
module/top_list.js
Normal file
@ -0,0 +1,88 @@
|
||||
// const top_list_all = {
|
||||
// "0": ["云音乐新歌榜", "3779629"],
|
||||
// "1": ["云音乐热歌榜", "3778678"],
|
||||
// "2": ["网易原创歌曲榜", "2884035"],
|
||||
// "3": ["云音乐飙升榜", "19723756"],
|
||||
// "4": ["云音乐电音榜", "10520166"],
|
||||
// "5": ["UK排行榜周榜", "180106"],
|
||||
// "6": ["美国Billboard周榜", "60198"],
|
||||
// "7": ["KTV嗨榜", "21845217"],
|
||||
// "8": ["iTunes榜", "11641012"],
|
||||
// "9": ["Hit FM Top榜", "120001"],
|
||||
// "10": ["日本Oricon周榜", "60131"],
|
||||
// "11": ["韩国Melon排行榜周榜", "3733003"],
|
||||
// "12": ["韩国Mnet排行榜周榜", "60255"],
|
||||
// "13": ["韩国Melon原声周榜", "46772709"],
|
||||
// "14": ["中国TOP排行榜(港台榜)", "112504"],
|
||||
// "15": ["中国TOP排行榜(内地榜)", "64016"],
|
||||
// "16": ["香港电台中文歌曲龙虎榜", "10169002"],
|
||||
// "17": ["华语金曲榜", "4395559"],
|
||||
// "18": ["中国嘻哈榜", "1899724"],
|
||||
// "19": ["法国 NRJ EuroHot 30周榜", "27135204"],
|
||||
// "20": ["台湾Hito排行榜", "112463"],
|
||||
// "21": ["Beatport全球电子舞曲榜", "3812895"],
|
||||
// "22": ["云音乐ACG音乐榜", "71385702"],
|
||||
// "23": ["云音乐嘻哈榜", "991319590"]
|
||||
// };
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const idx = req.query.idx;
|
||||
// const id = top_list_all[idx][1];
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const action = "/weapi/v3/playlist/detail";
|
||||
// const data = {
|
||||
// id,
|
||||
// n: 10000,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// action,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.setHeader("Content-Type", "application/json");
|
||||
// // console.log(JSON.parse(music_req).playlist.tracks.length)
|
||||
// // console.log(JSON.parse(music_req).playlist.trackIds.length)
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
const topList = {
|
||||
0: "3779629", //云音乐新歌榜
|
||||
1: "3778678", //云音乐热歌榜
|
||||
2: "2884035", //网易原创歌曲榜
|
||||
3: "19723756", //云音乐飙升榜
|
||||
4: "10520166", //云音乐电音榜
|
||||
5: "180106", //UK排行榜周榜
|
||||
6: "60198", //美国Billboard周榜
|
||||
7: "21845217", //KTV嗨榜
|
||||
8: "11641012", //iTunes榜
|
||||
9: "120001", //Hit FM Top榜
|
||||
10: "60131", //日本Oricon周榜
|
||||
11: "3733003", //韩国Melon排行榜周榜
|
||||
12: "60255", //韩国Mnet排行榜周榜
|
||||
13: "46772709", //韩国Melon原声周榜
|
||||
14: "112504", //中国TOP排行榜(港台榜)
|
||||
15: "64016", //中国TOP排行榜(内地榜)
|
||||
16: "10169002", //香港电台中文歌曲龙虎榜
|
||||
17: "4395559", //华语金曲榜
|
||||
18: "1899724", //中国嘻哈榜
|
||||
19: "27135204", //法国 NRJ EuroHot 30周榜
|
||||
20: "112463", //台湾Hito排行榜
|
||||
21: "3812895", //Beatport全球电子舞曲榜
|
||||
22: "71385702", //云音乐ACG音乐榜
|
||||
23: "991319590" //云音乐嘻哈榜
|
||||
}
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: topList[query.idx],
|
||||
n: 10000
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v3/playlist/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
34
module/top_mv.js
Normal file
34
module/top_mv.js
Normal file
@ -0,0 +1,34 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// total: true,
|
||||
// limit: req.query.limit || 30,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/mv/toplist",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.setHeader("Content-Type", "application/json");
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 30,
|
||||
total: true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/mv/toplist`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
37
module/top_playlist.js
Normal file
37
module/top_playlist.js
Normal file
@ -0,0 +1,37 @@
|
||||
//分类歌单
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// // order可为 'hot' 可为 'new'
|
||||
// const data = {
|
||||
// cat: req.query.cat || "全部",
|
||||
// order: req.query.order || "hot",
|
||||
// offset: req.query.offset || 0,
|
||||
// total: req.query.total ? "true" : "false",
|
||||
// limit: req.query.limit || 50
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/playlist/list",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
cat: query.cat || '全部',
|
||||
order: query.order || 'hot',
|
||||
offset: query.offset || 0,
|
||||
total: query.total ? 'true' : 'false',
|
||||
limit: query.limit || 50
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/playlist/list`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/top_playlist_highquality.js
Normal file
33
module/top_playlist_highquality.js
Normal file
@ -0,0 +1,33 @@
|
||||
//精品歌单
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// cat: req.query.cat || "全部",
|
||||
// offset: req.query.offset || 0,
|
||||
// limit: req.query.limit || 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/playlist/highquality/list",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
cat: query.cat || '全部',
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 20
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/playlist/highquality/list`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
25
module/top_song.js
Normal file
25
module/top_song.js
Normal file
@ -0,0 +1,25 @@
|
||||
//暂时废弃
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/discovery/new/songs",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/discovery/new/songs`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
25
module/toplist.js
Normal file
25
module/toplist.js
Normal file
@ -0,0 +1,25 @@
|
||||
// 排行榜
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/toplist",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/toplist`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
19
module/toplist_artist.js
Normal file
19
module/toplist_artist.js
Normal file
@ -0,0 +1,19 @@
|
||||
//歌手榜
|
||||
module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
const data = {
|
||||
type: req.query.type,
|
||||
csrf_token: ""
|
||||
};
|
||||
createWebAPIRequest(
|
||||
"music.163.com",
|
||||
"/eapi/toplist/artist?params=B5CAE4715306477C2EFA74D383640F01BF227BF8E889F80E2E2A442958463A7E589CC99878CFCE88D165B64712332AF39EC61B7E68903B2F9F079E8D1AB99FC61049A6D5B97AF8E6FFE8DA16ED540D2CFA80205B889ACA39F8B05AE593FDF5A094F118FF4600C2025094ECF6EB58F6D424B7A97B21A8C1D7CF0609AF2FBE9FDD88826E1667C889757BA920684C5C425FF01B5514AF1EB08AB7D298DB4D65187829E315F9FFBBEB43C2AE3DC21222B31CEC6FF337957AC122FBCB3E793FC1960151B0BDEBB1565BFD835E7A7D6A2D034A5591070D42C32DA4B69E0061C46D61239221A1C64EF676D891B44D7B855E27C82A7EB376F0B0C27952F2006E302B47DA1DE86C3488D53FD98ED9FDC6AA341DF0ECF92BA2E8F77E41811BF9447973C5C34FFED13E28AC544347F9E6ADF4B0008C371FC41C4490D3C9E1A225791D2170326231C40662633AA93D5CEF9AABC777AF268A4B13C560157339478DFAD5D910C966B43E1F017410DBF06D189E2BD6D0CD2682F343A83994E66CA73B5E2A67A122842BF945F2B434CBDE4C5A589A3A90F70DF1A8B63E7BAFBEB624956C62CFB1114AB841379541E5BB4625F2C28CAEA6A67E77A7EEAA1149D9D0F7E190D3A3408DF88B62FBF27996ABC925A93E5A67B4B0D1D931214BB07064F2BA4DCBA2E548E5A110E9B992C21E3930EB488172929C02C06D76BB193EF923D1906E0A0C4D75F5EB909AE77B0A2E55539A182D0B2533C654F2C90A038406B8850BFC022639F2B3FB7EDF40FD74AEA0B9119E9987D2909C01C587794F53459DB8EE83AA8D15FBEAC71EB3A00D8E40E78FE9A9A4068495D9257B39D8F825086F391FD5E7A48AACA96BC261E334A1929C81633234A0B22C573AEAD05BC8B4216283ACFD9E022950AEC812F554B913B4457FDF68AA2CC5E476922C2670D49154BC1DEB6D464F60DBFAD2BB4144762CD3721F52D42FDAE56DB9C529EDB6FB946CD725B3E2EA2AFDCF3F759D384B4F7F75AAA6F01F8093C8A140B3B388FF57272A6A7E10274290A79CDCA69E37BC066CE8CCD5B4BB4E12DA841B",
|
||||
"POST",
|
||||
data,
|
||||
cookie,
|
||||
music_req => {
|
||||
res.send(music_req);
|
||||
},
|
||||
err => res.status(502).send("fetch error")
|
||||
);
|
||||
};
|
31
module/toplist_detail.js
Normal file
31
module/toplist_detail.js
Normal file
@ -0,0 +1,31 @@
|
||||
// 排行榜详情
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// id: req.query.id,
|
||||
// limit: 20,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/toplist/detail",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
id: query.id,
|
||||
limit: 20
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/toplist/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
34
module/user_audio.js
Normal file
34
module/user_audio.js
Normal file
@ -0,0 +1,34 @@
|
||||
// 获取用户电台
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const data = {
|
||||
// userId: req.query.uid,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// console.log(data);
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/djradio/get/byuser",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.setHeader("Content-Type", "application/json");
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
userId: req.query.uid
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/djradio/get/byuser`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
34
module/user_cloud.js
Normal file
34
module/user_cloud.js
Normal file
@ -0,0 +1,34 @@
|
||||
//云盘数据
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const data = {
|
||||
// limit: req.query.limit || 10,
|
||||
// offset: req.query.offset || 0,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/cloud/get",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.setHeader("Content-Type", "application/json");
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
limit: query.limit || 10,
|
||||
offset: query.offset || 0
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/cloud/get`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
34
module/user_cloud_search.js
Normal file
34
module/user_cloud_search.js
Normal file
@ -0,0 +1,34 @@
|
||||
//云盘数据详情? 暂时不要使用
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const data = {
|
||||
// byids: req.query.id,
|
||||
// id: req.query.id,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/v1/cloud/get/byids",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.setHeader("Content-Type", "application/json");
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => {
|
||||
// res.status(502).send("fetch error");
|
||||
// }
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
byids: query.id,
|
||||
id: query.id
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/cloud/get/byids`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
26
module/user_detail.js
Normal file
26
module/user_detail.js
Normal file
@ -0,0 +1,26 @@
|
||||
// 用户详情
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.uid;
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/v1/user/detail/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/user/detail/${query.id}`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/user_dj.js
Normal file
32
module/user_dj.js
Normal file
@ -0,0 +1,32 @@
|
||||
// 用户电台
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.uid;
|
||||
// const data = {
|
||||
// offset: req.query.offset || "0",
|
||||
// limit: req.query.limit || 30,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/dj/program/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 30,
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/dj/program/${query.uid}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/user_event.js
Normal file
32
module/user_event.js
Normal file
@ -0,0 +1,32 @@
|
||||
//用户动态
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.uid;
|
||||
// const data = {
|
||||
// time: -1,
|
||||
// getcounts: true,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/event/get/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
time: -1,
|
||||
getcounts: true,
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/event/get/${query.uid}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/user_followeds.js
Normal file
32
module/user_followeds.js
Normal file
@ -0,0 +1,32 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// userId: req.query.uid,
|
||||
// offset: req.query.offset || "0",
|
||||
// limit: req.query.limit || 30,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/user/getfolloweds/`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
userId: query.uid,
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 30,
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/user/getfolloweds`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/user_follows.js
Normal file
32
module/user_follows.js
Normal file
@ -0,0 +1,32 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const id = req.query.uid;
|
||||
// const data = {
|
||||
// offset: req.query.offset || "0",
|
||||
// limit: req.query.limit || 30,
|
||||
// order: true
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// `/weapi/user/getfollows/${id}`,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
offset: query.offset || 0,
|
||||
limit: query.limit || 30,
|
||||
order: true
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/user/getfollows/${query.uid}`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
33
module/user_playlist.js
Normal file
33
module/user_playlist.js
Normal file
@ -0,0 +1,33 @@
|
||||
// 获取用户歌单
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// offset: req.query.offset || 0,
|
||||
// uid: req.query.uid,
|
||||
// limit: req.query.limit || 30, //貌似无效
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/user/playlist",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => {
|
||||
// res.send(music_req);
|
||||
// // console.log(JSON.parse(music_req))
|
||||
// },
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
uid: query.uid,
|
||||
offset: query.offset || 0,
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/user/playlist`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
32
module/user_record.js
Normal file
32
module/user_record.js
Normal file
@ -0,0 +1,32 @@
|
||||
//播放记录
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
|
||||
// // type=1时只返回weekData, type=0时返回allData
|
||||
// const data = {
|
||||
// type: req.query.type || 0,
|
||||
// uid: req.query.uid, //用户 id,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// const action = `/weapi/v1/play/record`;
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// action,
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
type: query.type || 0,
|
||||
uid: query.uid,
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v1/play/record`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
22
module/user_subcount.js
Normal file
22
module/user_subcount.js
Normal file
@ -0,0 +1,22 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// const data = {
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/subcount",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/subcount`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
43
module/user_update.js
Normal file
43
module/user_update.js
Normal file
@ -0,0 +1,43 @@
|
||||
// module.exports = (req, res, createWebAPIRequest, request) => {
|
||||
// const cookie = req.get("Cookie") ? req.get("Cookie") : "";
|
||||
// // 暂时不提供更换头像接口
|
||||
// // gender为0表示保密,1为男性,2为女性
|
||||
// const gender_type = req.query.gender;
|
||||
// // birthday 为unix13位时间戳
|
||||
// // province_number and city_number
|
||||
// const data = {
|
||||
// avatarImgId: "0",
|
||||
// birthday: req.query.birthday,
|
||||
// city: req.query.city,
|
||||
// gender: gender_type,
|
||||
// nickname: req.query.nickname,
|
||||
// province: req.query.province,
|
||||
// signature: req.query.signature,
|
||||
// csrf_token: ""
|
||||
// };
|
||||
// createWebAPIRequest(
|
||||
// "music.163.com",
|
||||
// "/weapi/user/profile/update",
|
||||
// "POST",
|
||||
// data,
|
||||
// cookie,
|
||||
// music_req => res.send(music_req),
|
||||
// err => res.status(502).send("fetch error")
|
||||
// );
|
||||
// };
|
||||
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
avatarImgId: "0",
|
||||
birthday: query.birthday,
|
||||
city: query.city,
|
||||
gender: query.gender,
|
||||
nickname: query.nickname,
|
||||
province: query.province,
|
||||
signature: query.signature
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/user/profile/update`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user