diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..504f8d0 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,37 @@ +module.exports = { + root: true, + + parserOptions: { + parser: 'babel-eslint', + ecmaVersion: 2018, + sourceType: 'module' + }, + + env: { + browser: true + }, + + rules: { + indent: ['error', 2, { SwitchCase: 1 }], + 'key-spacing': [ + 2, + { + beforeColon: false, + afterColon: true + } + ], + 'no-octal': 2, + 'no-redeclare': 2, + 'comma-spacing': 2, + 'no-new-object': 2, + 'arrow-spacing': 2, + quotes: [ + 2, + 'single', + { + avoidEscape: true, + allowTemplateLiterals: true + } + ] + } +} diff --git a/app.js b/app.js index 1bbbca1..47f3602 100644 --- a/app.js +++ b/app.js @@ -3,44 +3,44 @@ const path = require('path') const express = require('express') const bodyParser = require('body-parser') const request = require('./util/request') -const package = require('./package.json') +const packageJSON = require('./package.json') const exec = require('child_process').exec const cache = require('apicache').middleware // version check exec('npm info NeteaseCloudMusicApi version', (err, stdout, stderr) => { - if(!err){ - let version = stdout.trim() - if(package.version < version){ - console.log(`最新版本: ${version}, 当前版本: ${package.version}, 请及时更新`) - } + if(!err){ + let version = stdout.trim() + if(packageJSON.version < version){ + console.log(`最新版本: ${version}, 当前版本: ${packageJSON.version}, 请及时更新`) } + } }) const app = express() // CORS app.use((req, res, next) => { - if(req.path !== '/' && !req.path.includes('.')){ - res.header({ - 'Access-Control-Allow-Credentials': true, - 'Access-Control-Allow-Origin': req.headers.origin || '*', - 'Access-Control-Allow-Headers': 'X-Requested-With', - 'Access-Control-Allow-Methods': 'PUT,POST,GET,DELETE,OPTIONS', - 'Content-Type': 'application/json; charset=utf-8' - }) - } - next() + if(req.path !== '/' && !req.path.includes('.')){ + res.header({ + 'Access-Control-Allow-Credentials': true, + 'Access-Control-Allow-Origin': req.headers.origin || '*', + 'Access-Control-Allow-Headers': 'X-Requested-With', + 'Access-Control-Allow-Methods': 'PUT,POST,GET,DELETE,OPTIONS', + 'Content-Type': 'application/json; charset=utf-8' + }) + } + next() }) // cookie parser app.use((req, res, next) => { - req.cookies = {}, (req.headers.cookie || '').split(/\s*;\s*/).forEach(pair => { - let crack = pair.indexOf('=') - if(crack < 1 || crack == pair.length - 1) return - req.cookies[decodeURIComponent(pair.slice(0, crack)).trim()] = decodeURIComponent(pair.slice(crack + 1)).trim() - }) - next() + req.cookies = {}, (req.headers.cookie || '').split(/\s*;\s*/).forEach(pair => { + let crack = pair.indexOf('=') + if(crack < 1 || crack == pair.length - 1) return + req.cookies[decodeURIComponent(pair.slice(0, crack)).trim()] = decodeURIComponent(pair.slice(crack + 1)).trim() + }) + next() }) // body parser @@ -55,37 +55,37 @@ app.use(express.static(path.join(__dirname, 'public'))) // router const special = { - 'daily_signin.js': '/daily_signin', - 'fm_trash.js': '/fm_trash', - 'personal_fm.js': '/personal_fm' + 'daily_signin.js': '/daily_signin', + 'fm_trash.js': '/fm_trash', + 'personal_fm.js': '/personal_fm' } fs.readdirSync(path.join(__dirname, 'module')).reverse().forEach(file => { - if(!(/\.js$/i.test(file))) return - let route = (file in special) ? special[file] : '/' + file.replace(/\.js$/i, '').replace(/_/g, '/') - let question = require(path.join(__dirname, 'module', file)) + if(!(/\.js$/i.test(file))) return + let route = (file in special) ? special[file] : '/' + file.replace(/\.js$/i, '').replace(/_/g, '/') + let question = require(path.join(__dirname, 'module', file)) - app.use(route, (req, res) => { - let query = Object.assign({}, req.query, req.body, {cookie: req.cookies}) - question(query, request) - .then(answer => { - console.log('[OK]', decodeURIComponent(req.originalUrl)) - res.append('Set-Cookie', answer.cookie) - res.status(answer.status).send(answer.body) - }) - .catch(answer => { - console.log('[ERR]', decodeURIComponent(req.originalUrl)) - if(answer.body.code =='301') answer.body.msg = '需要登录' - res.append('Set-Cookie', answer.cookie) - res.status(answer.status).send(answer.body) - }) - }) + app.use(route, (req, res) => { + let query = Object.assign({}, req.query, req.body, {cookie: req.cookies}) + question(query, request) + .then(answer => { + console.log('[OK]', decodeURIComponent(req.originalUrl)) + res.append('Set-Cookie', answer.cookie) + res.status(answer.status).send(answer.body) + }) + .catch(answer => { + console.log('[ERR]', decodeURIComponent(req.originalUrl)) + if(answer.body.code =='301') answer.body.msg = '需要登录' + res.append('Set-Cookie', answer.cookie) + res.status(answer.status).send(answer.body) + }) + }) }) const port = process.env.PORT || 3000 app.server = app.listen(port, () => { - console.log(`server running @ http://localhost:${port}`) + console.log(`server running @ http://localhost:${port}`) }) module.exports = app diff --git a/module/activate_init_profile.js b/module/activate_init_profile.js index 878bc9c..c9b5c3a 100644 --- a/module/activate_init_profile.js +++ b/module/activate_init_profile.js @@ -5,11 +5,11 @@ module.exports = (query, request) => { nickname: query.nickname }; return request( - "POST", + 'POST', `http://music.163.com/eapi/activate/initProfile`, data, { - crypto: "eapi", + crypto: 'eapi', cookie: query.cookie, proxy: query.proxy, url: '/api/activate/initProfile' diff --git a/module/album.js b/module/album.js index 91ec036..213d92a 100644 --- a/module/album.js +++ b/module/album.js @@ -1,8 +1,8 @@ // 专辑内容 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/v1/album/${query.id}`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/v1/album/${query.id}`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/album_detail_dynamic.js b/module/album_detail_dynamic.js index 234e075..a48386a 100644 --- a/module/album_detail_dynamic.js +++ b/module/album_detail_dynamic.js @@ -2,11 +2,11 @@ module.exports = (query, request) => { const data = { id: query.id - }; + } return request( - "POST", + 'POST', `https://music.163.com/api/album/detail/dynamic`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } - ); -}; + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } + ) +} diff --git a/module/album_newest.js b/module/album_newest.js index c6408ab..64742bb 100644 --- a/module/album_newest.js +++ b/module/album_newest.js @@ -1,8 +1,8 @@ // 最新专辑 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/api/discovery/newAlbum`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/api/discovery/newAlbum`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } diff --git a/module/album_sub.js b/module/album_sub.js index 2770cb6..0e87547 100644 --- a/module/album_sub.js +++ b/module/album_sub.js @@ -1,13 +1,13 @@ // 已收藏专辑列表 module.exports = (query, request) => { - query.t = (query.t == 1 ? 'sub' : 'unsub') - const data = { - id: query.id - }; - return request("POST", `https://music.163.com/api/album/${query.t}`, data, { - crypto: "weapi", - cookie: query.cookie, - proxy: query.proxy - }); + query.t = (query.t == 1 ? 'sub' : 'unsub') + const data = { + id: query.id + }; + return request('POST', `https://music.163.com/api/album/${query.t}`, data, { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy + }); }; diff --git a/module/album_sublist.js b/module/album_sublist.js index 7c1a8c2..d129ae6 100644 --- a/module/album_sublist.js +++ b/module/album_sublist.js @@ -1,13 +1,13 @@ // 已收藏专辑列表 module.exports = (query, request) => { - const data = { - limit: query.limit || 25, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/album/sublist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 25, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/album/sublist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/artist_album.js b/module/artist_album.js index 86d55b3..50575f4 100644 --- a/module/artist_album.js +++ b/module/artist_album.js @@ -1,13 +1,13 @@ // 歌手专辑列表 module.exports = (query, request) => { - const data = { - limit: query.limit || 30, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/artist/albums/${query.id}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 30, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/artist/albums/${query.id}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/artist_desc.js b/module/artist_desc.js index 41d6bf6..b209b33 100644 --- a/module/artist_desc.js +++ b/module/artist_desc.js @@ -1,11 +1,11 @@ // 歌手介绍 module.exports = (query, request) => { - const data = { - id: query.id - } - return request( - 'POST', `https://music.163.com/weapi/artist/introduction`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.id + } + return request( + 'POST', `https://music.163.com/weapi/artist/introduction`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/artist_list.js b/module/artist_list.js index 852698b..0f0b5f9 100644 --- a/module/artist_list.js +++ b/module/artist_list.js @@ -23,15 +23,15 @@ */ module.exports = (query, request) => { - const data = { - categoryCode: query.cat || '1001', - initial: (query.initial || '').toUpperCase().charCodeAt() || '', - offset: query.offset || 0, - limit: query.limit || 30, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/artist/list`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + categoryCode: query.cat || '1001', + initial: (query.initial || '').toUpperCase().charCodeAt() || '', + offset: query.offset || 0, + limit: query.limit || 30, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/artist/list`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/artist_mv.js b/module/artist_mv.js index 0dff01e..5c64156 100644 --- a/module/artist_mv.js +++ b/module/artist_mv.js @@ -1,14 +1,14 @@ // 歌手相关MV module.exports = (query, request) => { - const data = { - artistId: query.id, - limit: query.limit, - offset: query.offset, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/artist/mvs`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + artistId: query.id, + limit: query.limit, + offset: query.offset, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/artist/mvs`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/artist_sub.js b/module/artist_sub.js index 93d7a40..4d9115d 100644 --- a/module/artist_sub.js +++ b/module/artist_sub.js @@ -1,13 +1,13 @@ // 收藏与取消收藏歌手 module.exports = (query, request) => { - query.t = (query.t == 1 ? 'sub' : 'unsub') - const data = { - artistId: query.id, - artistIds: '[' + query.id + ']' - } - return request( - 'POST', `https://music.163.com/weapi/artist/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.t = (query.t == 1 ? 'sub' : 'unsub') + const data = { + artistId: query.id, + artistIds: '[' + query.id + ']' + } + return request( + 'POST', `https://music.163.com/weapi/artist/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/artist_sublist.js b/module/artist_sublist.js index a5c971f..e83405a 100644 --- a/module/artist_sublist.js +++ b/module/artist_sublist.js @@ -1,13 +1,13 @@ // 关注歌手列表 module.exports = (query, request) => { - const data = { - limit: query.limit || 25, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/artist/sublist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 25, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/artist/sublist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/artists.js b/module/artists.js index c5aa6d6..34ce5b7 100644 --- a/module/artists.js +++ b/module/artists.js @@ -1,8 +1,8 @@ // 歌手单曲 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/v1/artist/${query.id}`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/v1/artist/${query.id}`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/banner.js b/module/banner.js index 11cab05..63a69d6 100644 --- a/module/banner.js +++ b/module/banner.js @@ -1,14 +1,14 @@ // 首页轮播图 module.exports = (query, request) => { - const type = { - 0: 'pc', - 1: 'android', - 2: 'iphone', - 3: 'ipad' - }[query.type || 0] || 'pc'; - return request( - 'POST', `https://music.163.com/api/v2/banner/get`, {clientType: type}, - {crypto: 'linuxapi', proxy: query.proxy} - ) + const type = { + 0: 'pc', + 1: 'android', + 2: 'iphone', + 3: 'ipad' + }[query.type || 0] || 'pc'; + return request( + 'POST', `https://music.163.com/api/v2/banner/get`, {clientType: type}, + {crypto: 'linuxapi', proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/batch.js b/module/batch.js index 58b603c..7aad2cc 100644 --- a/module/batch.js +++ b/module/batch.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { const data = { - "e_r": true + 'e_r': true }; Object.keys(query).forEach(i => { if (/^\/api\//.test(i)) { diff --git a/module/cellphone_existence_check.js b/module/cellphone_existence_check.js index 47b5a47..94325dc 100644 --- a/module/cellphone_existence_check.js +++ b/module/cellphone_existence_check.js @@ -5,11 +5,11 @@ module.exports = (query, request) => { cellphone: query.phone }; return request( - "POST", + 'POST', `http://music.163.com/eapi/cellphone/existence/check`, data, { - crypto: "eapi", + crypto: 'eapi', cookie: query.cookie, proxy: query.proxy, url: '/api/cellphone/existence/check' diff --git a/module/check_music.js b/module/check_music.js index 68beb01..69f70d6 100644 --- a/module/check_music.js +++ b/module/check_music.js @@ -1,29 +1,29 @@ // 歌曲可用性 module.exports = (query, request) => { - const data = { - ids: '[' + parseInt(query.id) + ']', - br: parseInt(query.br || 999000) - } - return request( - 'POST', `https://music.163.com/weapi/song/enhance/player/url`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + ids: '[' + parseInt(query.id) + ']', + br: parseInt(query.br || 999000) + } + return request( + 'POST', `https://music.163.com/weapi/song/enhance/player/url`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) .then(response => { - let playable = false - if(response.body.code == 200){ - if(response.body.data[0].code == 200){ - playable = true - } - } - if(playable){ - response.body = {success: true, message: 'ok'} - return response - } - else{ - response.status = 404 - response.body = {success: false, message: '亲爱的,暂无版权'} - return Promise.reject(response) + let playable = false + if(response.body.code == 200){ + if(response.body.data[0].code == 200){ + playable = true } + } + if(playable){ + response.body = {success: true, message: 'ok'} + return response + } + else{ + response.status = 404 + response.body = {success: false, message: '亲爱的,暂无版权'} + return Promise.reject(response) + } }) } \ No newline at end of file diff --git a/module/comment.js b/module/comment.js index bbc55fc..2ca5cf4 100644 --- a/module/comment.js +++ b/module/comment.js @@ -1,30 +1,30 @@ // 发送与删除评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - query.t = (query.t == 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_',// 视频 - 6: 'A_EV_2_' // 动态 - }[query.type] - const data = { - threadId: query.type + query.id - } + query.cookie.os = 'pc' + query.t = (query.t == 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_', // 视频 + 6: 'A_EV_2_' // 动态 + }[query.type] + const data = { + threadId: query.type + query.id + } - if(query.type == 'A_EV_2_'){ - data.threadId = query.threadId - } - if(query.t == 'add') - data.content = query.content - else if(query.t == 'delete') - data.commentId = query.commentId - return request( - 'POST', `https://music.163.com/weapi/resource/comments/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + if(query.type == 'A_EV_2_'){ + data.threadId = query.threadId + } + if(query.t == 'add') + data.content = query.content + else if(query.t == 'delete') + data.commentId = query.commentId + return request( + 'POST', `https://music.163.com/weapi/resource/comments/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/comment_album.js b/module/comment_album.js index c384ad3..75d00c9 100644 --- a/module/comment_album.js +++ b/module/comment_album.js @@ -1,15 +1,15 @@ // 专辑评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/resource/comments/R_AL_3_${query.id}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + rid: query.id, + limit: query.limit || 20, + offset: query.offset || 0, + beforeTime: query.before || 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/resource/comments/R_AL_3_${query.id}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/comment_dj.js b/module/comment_dj.js index c2cc666..d5269eb 100644 --- a/module/comment_dj.js +++ b/module/comment_dj.js @@ -1,15 +1,15 @@ // 电台评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before|| 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/resource/comments/A_DJ_1_${query.id}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + rid: query.id, + limit: query.limit || 20, + offset: query.offset || 0, + beforeTime: query.before|| 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/resource/comments/A_DJ_1_${query.id}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/comment_event.js b/module/comment_event.js index 1ada1e6..ecb2cf9 100644 --- a/module/comment_event.js +++ b/module/comment_event.js @@ -5,9 +5,9 @@ module.exports = (query, request) => { beforeTime: query.before|| 0 }; return request( - "POST", + 'POST', `https://music.163.com/weapi/v1/resource/comments/${query.threadId}`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/comment_hot.js b/module/comment_hot.js index 2434694..82305cb 100644 --- a/module/comment_hot.js +++ b/module/comment_hot.js @@ -1,23 +1,23 @@ // 热门评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - query.type = { - 0: 'R_SO_4_', // 歌曲 - 1: 'R_MV_5_', // MV - 2: 'A_PL_0_', // 歌单 - 3: 'R_AL_3_', // 专辑 - 4: 'A_DJ_1_', // 电台, - 5: 'R_VI_62_' // 视频 - }[query.type] - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before|| 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/resource/hotcomments/${query.type}${query.id}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + query.type = { + 0: 'R_SO_4_', // 歌曲 + 1: 'R_MV_5_', // MV + 2: 'A_PL_0_', // 歌单 + 3: 'R_AL_3_', // 专辑 + 4: 'A_DJ_1_', // 电台, + 5: 'R_VI_62_' // 视频 + }[query.type] + const data = { + rid: query.id, + limit: query.limit || 20, + offset: query.offset || 0, + beforeTime: query.before|| 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/resource/hotcomments/${query.type}${query.id}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/comment_like.js b/module/comment_like.js index 10430aa..983f324 100644 --- a/module/comment_like.js +++ b/module/comment_like.js @@ -1,26 +1,26 @@ // 点赞与取消点赞评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - query.t = (query.t == 1 ? 'like' : 'unlike') - query.type = { - 0: 'R_SO_4_', // 歌曲 - 1: 'R_MV_5_', // MV - 2: 'A_PL_0_', // 歌单 - 3: 'R_AL_3_', // 专辑 - 4: 'A_DJ_1_', // 电台, - 5: 'R_VI_62_',// 视频 - 6: 'A_EV_2_' // 动态 - }[query.type] - const data = { - threadId: query.type + query.id, - commentId: query.cid - } - if(query.type == 'A_EV_2_'){ - data.threadId = query.threadId - } - return request( - 'POST', `https://music.163.com/weapi/v1/comment/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + query.t = (query.t == 1 ? 'like' : 'unlike') + query.type = { + 0: 'R_SO_4_', // 歌曲 + 1: 'R_MV_5_', // MV + 2: 'A_PL_0_', // 歌单 + 3: 'R_AL_3_', // 专辑 + 4: 'A_DJ_1_', // 电台, + 5: 'R_VI_62_', // 视频 + 6: 'A_EV_2_' // 动态 + }[query.type] + const data = { + threadId: query.type + query.id, + commentId: query.cid + } + if(query.type == 'A_EV_2_'){ + data.threadId = query.threadId + } + return request( + 'POST', `https://music.163.com/weapi/v1/comment/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/comment_music.js b/module/comment_music.js index 89d4a58..76334e3 100644 --- a/module/comment_music.js +++ b/module/comment_music.js @@ -1,7 +1,7 @@ // 歌曲评论 module.exports = (query, request) => { - query.cookie.os = "pc"; + query.cookie.os = 'pc'; const data = { rid: query.id, limit: query.limit || 20, @@ -9,9 +9,9 @@ module.exports = (query, request) => { beforeTime: query.before|| 0 }; return request( - "POST", + 'POST', `https://music.163.com/api/v1/resource/comments/R_SO_4_${query.id}`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/comment_mv.js b/module/comment_mv.js index 1492069..26e0fac 100644 --- a/module/comment_mv.js +++ b/module/comment_mv.js @@ -1,15 +1,15 @@ // MV评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before|| 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/resource/comments/R_MV_5_${query.id}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + rid: query.id, + limit: query.limit || 20, + offset: query.offset || 0, + beforeTime: query.before|| 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/resource/comments/R_MV_5_${query.id}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/comment_playlist.js b/module/comment_playlist.js index 17c8c63..38202a1 100644 --- a/module/comment_playlist.js +++ b/module/comment_playlist.js @@ -1,15 +1,15 @@ // 歌单评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before|| 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/resource/comments/A_PL_0_${query.id}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + rid: query.id, + limit: query.limit || 20, + offset: query.offset || 0, + beforeTime: query.before|| 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/resource/comments/A_PL_0_${query.id}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/comment_video.js b/module/comment_video.js index e3a13db..4d1967d 100644 --- a/module/comment_video.js +++ b/module/comment_video.js @@ -1,15 +1,15 @@ // 视频评论 module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before|| 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/resource/comments/R_VI_62_${query.id}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + rid: query.id, + limit: query.limit || 20, + offset: query.offset || 0, + beforeTime: query.before|| 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/resource/comments/R_VI_62_${query.id}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/daily_signin.js b/module/daily_signin.js index 9549544..10c3403 100644 --- a/module/daily_signin.js +++ b/module/daily_signin.js @@ -8,11 +8,11 @@ */ module.exports = (query, request) => { - const data = { - type: query.type || 0 - } - return request( - 'POST', `https://music.163.com/weapi/point/dailyTask`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + type: query.type || 0 + } + return request( + 'POST', `https://music.163.com/weapi/point/dailyTask`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/digitalAlbum_purchased.js b/module/digitalAlbum_purchased.js index 2734600..50b572c 100644 --- a/module/digitalAlbum_purchased.js +++ b/module/digitalAlbum_purchased.js @@ -1,13 +1,13 @@ // 我的数字专辑 module.exports = (query, request) => { - const data = { - limit: query.limit || 30, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/api/digitalAlbum/purchased`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 30, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/api/digitalAlbum/purchased`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_banner.js b/module/dj_banner.js index 898507c..9f20e6f 100644 --- a/module/dj_banner.js +++ b/module/dj_banner.js @@ -3,9 +3,9 @@ module.exports = (query, request) => { const data = {}; return request( - "POST", + 'POST', `http://music.163.com/weapi/djradio/banner/get`, {}, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/dj_catelist.js b/module/dj_catelist.js index ec1b7b4..934df26 100644 --- a/module/dj_catelist.js +++ b/module/dj_catelist.js @@ -1,8 +1,8 @@ // 电台分类列表 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/djradio/category/get`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/djradio/category/get`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_detail.js b/module/dj_detail.js index 2c7e77e..e987699 100644 --- a/module/dj_detail.js +++ b/module/dj_detail.js @@ -1,11 +1,11 @@ // 电台详情 module.exports = (query, request) => { - const data = { - id: query.rid - } - return request( - 'POST', `https://music.163.com/weapi/djradio/get`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.rid + } + return request( + 'POST', `https://music.163.com/weapi/djradio/get`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_hot.js b/module/dj_hot.js index fcafa6e..ab4015e 100644 --- a/module/dj_hot.js +++ b/module/dj_hot.js @@ -1,17 +1,17 @@ // 热门电台 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', `https://music.163.com/weapi/djradio/hot/v1`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + 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', `https://music.163.com/weapi/djradio/hot/v1`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_paygift.js b/module/dj_paygift.js index ae7e6b7..5fc6823 100644 --- a/module/dj_paygift.js +++ b/module/dj_paygift.js @@ -1,12 +1,12 @@ // 付费电台 module.exports = (query, request) => { - const data = { - limit: query.limit || 30, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/djradio/home/paygift/list?_nmclfl=1`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 30, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/djradio/home/paygift/list?_nmclfl=1`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_program_detail.js b/module/dj_program_detail.js index a02efda..09f9699 100644 --- a/module/dj_program_detail.js +++ b/module/dj_program_detail.js @@ -1,11 +1,11 @@ // 电台节目详情 module.exports = (query, request) => { - const data = { - id: query.id - } - return request( - 'POST', `https://music.163.com/weapi/dj/program/detail`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.id + } + return request( + 'POST', `https://music.163.com/weapi/dj/program/detail`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_recommend.js b/module/dj_recommend.js index f2ba675..0a4536d 100644 --- a/module/dj_recommend.js +++ b/module/dj_recommend.js @@ -1,8 +1,8 @@ // 精选电台 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/djradio/recommend/v1`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/djradio/recommend/v1`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } diff --git a/module/dj_recommend_type.js b/module/dj_recommend_type.js index 3eb8e31..c66777c 100644 --- a/module/dj_recommend_type.js +++ b/module/dj_recommend_type.js @@ -24,11 +24,11 @@ */ module.exports = (query, request) => { - const data = { - cateId: query.type - } - return request( - 'POST', `https://music.163.com/weapi/djradio/recommend`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + cateId: query.type + } + return request( + 'POST', `https://music.163.com/weapi/djradio/recommend`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_sub.js b/module/dj_sub.js index 6f08bd3..0e8559a 100644 --- a/module/dj_sub.js +++ b/module/dj_sub.js @@ -1,12 +1,12 @@ // 订阅与取消电台 module.exports = (query, request) => { - query.t = (query.t == 1 ? 'sub' : 'unsub') - const data = { - id: query.rid - } - return request( - 'POST', `https://music.163.com/weapi/djradio/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.t = (query.t == 1 ? 'sub' : 'unsub') + const data = { + id: query.rid + } + return request( + 'POST', `https://music.163.com/weapi/djradio/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/dj_sublist.js b/module/dj_sublist.js index 234e13a..f1ef137 100644 --- a/module/dj_sublist.js +++ b/module/dj_sublist.js @@ -1,13 +1,13 @@ // 订阅电台列表 module.exports = (query, request) => { - const data = { - limit: query.limit || 30, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/djradio/get/subed`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 30, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/djradio/get/subed`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/event.js b/module/event.js index aab886e..9a1daba 100644 --- a/module/event.js +++ b/module/event.js @@ -1,12 +1,12 @@ // 动态 module.exports = (query, request) => { - const data={ - "pagesize": query.pagesize || 20, - "lasttime": query.lasttime || -1 - } - return request( - 'POST', `https://music.163.com/weapi/v1/event/get`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data={ + 'pagesize': query.pagesize || 20, + 'lasttime': query.lasttime || -1 + } + return request( + 'POST', `https://music.163.com/weapi/v1/event/get`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/event_del.js b/module/event_del.js index 6e6d385..6baa1ec 100644 --- a/module/event_del.js +++ b/module/event_del.js @@ -1,11 +1,11 @@ // 删除动态 module.exports = (query, request) => { - const data = { - id: query.evId, - } - return request( - 'POST', `https://music.163.com/eapi/event/delete`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.evId, + } + return request( + 'POST', `https://music.163.com/eapi/event/delete`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/event_forward.js b/module/event_forward.js index 0b5af54..daba5a4 100644 --- a/module/event_forward.js +++ b/module/event_forward.js @@ -1,14 +1,14 @@ // 转发动态 module.exports = (query, request) => { - query.cookie.os = "pc"; + query.cookie.os = 'pc'; const data = { forwards: query.forwards, id: query.evId, eventUserId: query.uid }; - return request("POST", `https://music.163.com/weapi/event/forward`, data, { - crypto: "weapi", + return request('POST', `https://music.163.com/weapi/event/forward`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/fm_trash.js b/module/fm_trash.js index 14cdff8..8b84f0e 100644 --- a/module/fm_trash.js +++ b/module/fm_trash.js @@ -1,11 +1,11 @@ // 垃圾桶 module.exports = (query, request) => { - const data = { - songId: query.id - } - return request( - 'POST', `https://music.163.com/weapi/radio/trash/add?alg=RT&songId=${query.id}&time=${query.time || 25}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + songId: query.id + } + return request( + 'POST', `https://music.163.com/weapi/radio/trash/add?alg=RT&songId=${query.id}&time=${query.time || 25}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/follow.js b/module/follow.js index f1b4313..41718b0 100644 --- a/module/follow.js +++ b/module/follow.js @@ -1,10 +1,10 @@ // 关注与取消关注用户 module.exports = (query, request) => { - query.cookie.os = 'pc' - query.t = (query.t == 1 ? 'follow' : 'delfollow') - return request( - 'POST', `https://music.163.com/weapi/user/${query.t}/${query.id}`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + query.t = (query.t == 1 ? 'follow' : 'delfollow') + return request( + 'POST', `https://music.163.com/weapi/user/${query.t}/${query.id}`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/likelist.js b/module/likelist.js index e82978f..3cc0f34 100644 --- a/module/likelist.js +++ b/module/likelist.js @@ -1,11 +1,11 @@ // 喜欢的歌曲(无序) module.exports = (query, request) => { - const data = { - uid: query.uid - } - return request( - 'POST', `https://music.163.com/weapi/song/like/get`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + uid: query.uid + } + return request( + 'POST', `https://music.163.com/weapi/song/like/get`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/login.js b/module/login.js index 8f55aa1..3daad2a 100644 --- a/module/login.js +++ b/module/login.js @@ -3,14 +3,14 @@ const crypto = require('crypto') module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - username: query.email, - password: crypto.createHash('md5').update(query.password).digest('hex'), - rememberLogin: 'true' - } - return request( - 'POST', `https://music.163.com/weapi/login`, data, - {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + username: query.email, + password: crypto.createHash('md5').update(query.password).digest('hex'), + rememberLogin: 'true' + } + return request( + 'POST', `https://music.163.com/weapi/login`, data, + {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/login_cellphone.js b/module/login_cellphone.js index cc592c1..ed8f52d 100644 --- a/module/login_cellphone.js +++ b/module/login_cellphone.js @@ -3,15 +3,15 @@ const crypto = require('crypto') module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - phone: query.phone, - countrycode: query.countrycode, - password: crypto.createHash('md5').update(query.password).digest('hex'), - rememberLogin: 'true' - } - return request( - 'POST', `https://music.163.com/weapi/login/cellphone`, data, - {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + phone: query.phone, + countrycode: query.countrycode, + password: crypto.createHash('md5').update(query.password).digest('hex'), + rememberLogin: 'true' + } + return request( + 'POST', `https://music.163.com/weapi/login/cellphone`, data, + {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} + ) } diff --git a/module/login_refresh.js b/module/login_refresh.js index bd69ff3..a6f43f2 100644 --- a/module/login_refresh.js +++ b/module/login_refresh.js @@ -1,8 +1,8 @@ // 登录刷新 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/login/token/refresh`, {}, - {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/login/token/refresh`, {}, + {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/login_status.js b/module/login_status.js index 80d3e71..91f417f 100644 --- a/module/login_status.js +++ b/module/login_status.js @@ -1,21 +1,21 @@ // 登录状态 module.exports = (query, request) => { - return request( - 'GET', `https://music.163.com`, {}, - {cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'GET', `https://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.status = 301 - response.body = {code: 301} - return Promise.reject(response) - } + try{ + let profile = eval(`(${/GUser\s*=\s*([^;]+);/.exec(response.body)[1]})`) + let bindings = eval(`(${/GBinds\s*=\s*([^;]+);/.exec(response.body)[1]})`) + response.body = {code: 200, profile: profile, bindings: bindings} + return response + } + catch(err){ + response.status = 301 + response.body = {code: 301} + return Promise.reject(response) + } }) } \ No newline at end of file diff --git a/module/logout.js b/module/logout.js index c093cc1..d5f3b7d 100644 --- a/module/logout.js +++ b/module/logout.js @@ -1,8 +1,8 @@ // 退出登录 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/logout`, {}, - {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/logout`, {}, + {crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/lyric.js b/module/lyric.js index 7680b50..32fdc02 100644 --- a/module/lyric.js +++ b/module/lyric.js @@ -1,11 +1,11 @@ // 歌词 module.exports = (query, request) => { - const data={ - id:query.id - } - return request( - 'POST', `https://music.163.com/weapi/song/lyric?lv=-1&kv=-1&tv=-1`, data, - {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} - ) + const data={ + id: query.id + } + return request( + 'POST', `https://music.163.com/weapi/song/lyric?lv=-1&kv=-1&tv=-1`, data, + {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/msg_comments.js b/module/msg_comments.js index 74c0dc7..36e1e38 100644 --- a/module/msg_comments.js +++ b/module/msg_comments.js @@ -2,18 +2,18 @@ module.exports = (query, request) => { const data = { - beforeTime: query.before || "-1", + beforeTime: query.before || '-1', limit: query.limit || 30, - total: "true", + total: 'true', uid: query.uid }; return request( - "POST", + 'POST', `https://music.163.com/api/v1/user/comments/${query.uid}`, data, { - crypto: "weapi", + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } diff --git a/module/msg_forwards.js b/module/msg_forwards.js index 6a900da..8663bf4 100644 --- a/module/msg_forwards.js +++ b/module/msg_forwards.js @@ -4,10 +4,10 @@ module.exports = (query, request) => { const data = { offset: query.offset || 0, limit: query.limit || 30, - total: "true" + total: 'true' }; - return request("POST", `https://music.163.com/api/forwards/get`, data, { - crypto: "weapi", + return request('POST', `https://music.163.com/api/forwards/get`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/msg_notices.js b/module/msg_notices.js index 94a62cf..241d3a2 100644 --- a/module/msg_notices.js +++ b/module/msg_notices.js @@ -4,10 +4,10 @@ module.exports = (query, request) => { const data = { offset: query.offset || 0, limit: query.limit || 30, - total: "true", + total: 'true', }; - return request("POST", `https://music.163.com/api/msg/notices`, data, { - crypto: "weapi", + return request('POST', `https://music.163.com/api/msg/notices`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/msg_private.js b/module/msg_private.js index 3351c0f..91f9ea5 100644 --- a/module/msg_private.js +++ b/module/msg_private.js @@ -4,10 +4,10 @@ module.exports = (query, request) => { const data = { offset: query.offset || 0, limit: query.limit || 30, - total: "true", + total: 'true', }; - return request("POST", `https://music.163.com/api/msg/private/users`, data, { - crypto: "weapi", + return request('POST', `https://music.163.com/api/msg/private/users`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/msg_private_history.js b/module/msg_private_history.js index dcd72c2..08605c2 100644 --- a/module/msg_private_history.js +++ b/module/msg_private_history.js @@ -5,14 +5,14 @@ module.exports = (query, request) => { userId: query.uid, offset: query.offset || 0, limit: query.limit || 30, - total: "true" + total: 'true' }; return request( - "POST", + 'POST', `https://music.163.com/api/msg/private/history`, data, { - crypto: "weapi", + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } diff --git a/module/mv_all.js b/module/mv_all.js index 4beac71..42777df 100644 --- a/module/mv_all.js +++ b/module/mv_all.js @@ -3,16 +3,16 @@ module.exports = (query, request) => { const data = { tags: JSON.stringify({ - 地区: query.area || "全部", - 类型: query.type || "全部", - 排序: query.order || "上升最快" + 地区: query.area || '全部', + 类型: query.type || '全部', + 排序: query.order || '上升最快' }), offset: query.offset || 0, - total: "true", + total: 'true', limit: query.limit || 30 }; - return request("POST", `https://interface.music.163.com/api/mv/all`, data, { - crypto: "weapi", + return request('POST', `https://interface.music.163.com/api/mv/all`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/mv_detail.js b/module/mv_detail.js index 9f7a79a..f46ef81 100644 --- a/module/mv_detail.js +++ b/module/mv_detail.js @@ -1,11 +1,11 @@ // MV详情 module.exports = (query, request) => { - const data = { - id: query.mvid - } - return request( - 'POST', `https://music.163.com/weapi/mv/detail`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.mvid + } + return request( + 'POST', `https://music.163.com/weapi/mv/detail`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/mv_exclusive_rcmd.js b/module/mv_exclusive_rcmd.js index 7efd248..a11b2aa 100644 --- a/module/mv_exclusive_rcmd.js +++ b/module/mv_exclusive_rcmd.js @@ -6,11 +6,11 @@ module.exports = (query, request) => { limit: query.limit || 30 }; return request( - "POST", + 'POST', `https://interface.music.163.com/api/mv/exclusive/rcmd`, data, { - crypto: "weapi", + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } diff --git a/module/mv_first.js b/module/mv_first.js index d13284c..e83e372 100644 --- a/module/mv_first.js +++ b/module/mv_first.js @@ -3,12 +3,12 @@ module.exports = (query, request) => { const data = { // 'offset': query.offset || 0, - area: query.area || "", + area: query.area || '', limit: query.limit || 30, total: true }; - return request("POST", `https://interface.music.163.com/weapi/mv/first`, data, { - crypto: "weapi", + return request('POST', `https://interface.music.163.com/weapi/mv/first`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/mv_sub.js b/module/mv_sub.js index fa068f0..9f2c225 100644 --- a/module/mv_sub.js +++ b/module/mv_sub.js @@ -1,13 +1,13 @@ // 收藏与取消收藏MV module.exports = (query, request) => { - query.t = (query.t == 1 ? 'sub' : 'unsub') - const data = { - mvId: query.mvid, - mvIds: '["' + query.mvid + '"]' - } - return request( - 'POST', `https://music.163.com/weapi/mv/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.t = (query.t == 1 ? 'sub' : 'unsub') + const data = { + mvId: query.mvid, + mvIds: '["' + query.mvid + '"]' + } + return request( + 'POST', `https://music.163.com/weapi/mv/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/mv_sublist.js b/module/mv_sublist.js index e0a5571..2d5713a 100644 --- a/module/mv_sublist.js +++ b/module/mv_sublist.js @@ -1,13 +1,13 @@ // // 已收藏MV列表 module.exports = (query, request) => { - const data = { - limit: query.limit || 25, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/cloudvideo/allvideo/sublist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 25, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/cloudvideo/allvideo/sublist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/mv_url.js b/module/mv_url.js index 4351efd..d4bb7d2 100644 --- a/module/mv_url.js +++ b/module/mv_url.js @@ -1,12 +1,12 @@ // MV链接 module.exports = (query, request) => { - const data = { - id: query.id, - r: query.res || 1080 - } - return request( - 'POST', `https://music.163.com/weapi/song/enhance/play/mv/url`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.id, + r: query.res || 1080 + } + return request( + 'POST', `https://music.163.com/weapi/song/enhance/play/mv/url`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/personal_fm.js b/module/personal_fm.js index 3f5cc40..7c0d70f 100644 --- a/module/personal_fm.js +++ b/module/personal_fm.js @@ -1,8 +1,8 @@ // 私人FM module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/v1/radio/get`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/v1/radio/get`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/personalized.js b/module/personalized.js index b52c082..889c40c 100644 --- a/module/personalized.js +++ b/module/personalized.js @@ -1,14 +1,14 @@ // 推荐歌单 module.exports = (query, request) => { - const data = { - limit: query.limit || 30, - offset: query.limit || 0, - total: true, - n: 1000 - } - return request( - 'POST', `https://music.163.com/weapi/personalized/playlist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 30, + offset: query.limit || 0, + total: true, + n: 1000 + } + return request( + 'POST', `https://music.163.com/weapi/personalized/playlist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/personalized_djprogram.js b/module/personalized_djprogram.js index cfd0970..4e43afc 100644 --- a/module/personalized_djprogram.js +++ b/module/personalized_djprogram.js @@ -1,8 +1,8 @@ // 推荐电台 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/personalized/djprogram`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/personalized/djprogram`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/personalized_mv.js b/module/personalized_mv.js index b830c42..325a764 100644 --- a/module/personalized_mv.js +++ b/module/personalized_mv.js @@ -1,8 +1,8 @@ // 推荐MV module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/personalized/mv`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/personalized/mv`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/personalized_newsong.js b/module/personalized_newsong.js index c0e648b..7ce289b 100644 --- a/module/personalized_newsong.js +++ b/module/personalized_newsong.js @@ -1,11 +1,11 @@ // 推荐新歌 module.exports = (query, request) => { - const data = { - type: "recommend" - } - return request( - 'POST', `https://music.163.com/weapi/personalized/newsong`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + type: 'recommend' + } + return request( + 'POST', `https://music.163.com/weapi/personalized/newsong`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/personalized_privatecontent.js b/module/personalized_privatecontent.js index 8c4f744..2c9b3ae 100644 --- a/module/personalized_privatecontent.js +++ b/module/personalized_privatecontent.js @@ -1,8 +1,8 @@ // 独家放送 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/personalized/privatecontent`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/personalized/privatecontent`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/playlist_catlist.js b/module/playlist_catlist.js index b359ac8..e354d4a 100644 --- a/module/playlist_catlist.js +++ b/module/playlist_catlist.js @@ -1,8 +1,8 @@ // 全部歌单分类 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/playlist/catalogue`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/playlist/catalogue`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/playlist_create.js b/module/playlist_create.js index bd4181c..a8abe54 100644 --- a/module/playlist_create.js +++ b/module/playlist_create.js @@ -1,13 +1,13 @@ // 创建歌单 module.exports = (query, request) => { - query.cookie.os = "pc"; + query.cookie.os = 'pc'; const data = { name: query.name, privacy: query.privacy //0 为普通歌单,10 为隐私歌单 }; - return request("POST", `https://music.163.com/weapi/playlist/create`, data, { - crypto: "weapi", + return request('POST', `https://music.163.com/weapi/playlist/create`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/playlist_desc_update.js b/module/playlist_desc_update.js index e6db820..316df10 100644 --- a/module/playlist_desc_update.js +++ b/module/playlist_desc_update.js @@ -6,12 +6,12 @@ module.exports = (query, request) => { desc: query.desc } return request( - 'POST', `http://interface3.music.163.com/eapi/playlist/desc/update`, data, - { - crypto: 'eapi', - cookie: query.cookie, - proxy: query.proxy, - url: '/api/playlist/desc/update' - } + 'POST', `http://interface3.music.163.com/eapi/playlist/desc/update`, data, + { + crypto: 'eapi', + cookie: query.cookie, + proxy: query.proxy, + url: '/api/playlist/desc/update' + } ) } \ No newline at end of file diff --git a/module/playlist_detail.js b/module/playlist_detail.js index 441b81e..22f36e0 100644 --- a/module/playlist_detail.js +++ b/module/playlist_detail.js @@ -1,13 +1,13 @@ // 歌单详情 module.exports = (query, request) => { - const data = { - id: query.id, - n: 100000, - s: query.s || 8 - } - return request( - 'POST', `https://music.163.com/weapi/v3/playlist/detail`, data, - {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.id, + n: 100000, + s: query.s || 8 + } + return request( + 'POST', `https://music.163.com/weapi/v3/playlist/detail`, data, + {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/playlist_hot.js b/module/playlist_hot.js index d26c123..8e8c256 100644 --- a/module/playlist_hot.js +++ b/module/playlist_hot.js @@ -1,8 +1,8 @@ // 热门歌单分类 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/playlist/hottags`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/playlist/hottags`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/playlist_name_update.js b/module/playlist_name_update.js index d6e04c0..12cb602 100644 --- a/module/playlist_name_update.js +++ b/module/playlist_name_update.js @@ -6,12 +6,12 @@ module.exports = (query, request) => { name: query.name } return request( - 'POST', `http://interface3.music.163.com/eapi/playlist/update/name`, data, - { - crypto: 'eapi', - cookie: query.cookie, - proxy: query.proxy, - url: '/api/playlist/update/name' - } + 'POST', `http://interface3.music.163.com/eapi/playlist/update/name`, data, + { + crypto: 'eapi', + cookie: query.cookie, + proxy: query.proxy, + url: '/api/playlist/update/name' + } ) } \ No newline at end of file diff --git a/module/playlist_subscribe.js b/module/playlist_subscribe.js index 9228675..9f94b9d 100644 --- a/module/playlist_subscribe.js +++ b/module/playlist_subscribe.js @@ -1,12 +1,12 @@ // 收藏与取消收藏歌单 module.exports = (query, request) => { - query.t = (query.t == 1 ? 'subscribe' : 'unsubscribe') - const data = { - id: query.id - } - return request( - 'POST', `https://music.163.com/weapi/playlist/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.t = (query.t == 1 ? 'subscribe' : 'unsubscribe') + const data = { + id: query.id + } + return request( + 'POST', `https://music.163.com/weapi/playlist/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/playlist_subscribers.js b/module/playlist_subscribers.js index 9274b15..f610bef 100644 --- a/module/playlist_subscribers.js +++ b/module/playlist_subscribers.js @@ -5,9 +5,9 @@ module.exports = (query, request) => { offset: query.offset || 0 }; return request( - "POST", + 'POST', `https://music.163.com/weapi/playlist/subscribers`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/playlist_tags_update.js b/module/playlist_tags_update.js index 417a1b3..9d81283 100644 --- a/module/playlist_tags_update.js +++ b/module/playlist_tags_update.js @@ -6,12 +6,12 @@ module.exports = (query, request) => { tags: query.tags } return request( - 'POST', `http://interface3.music.163.com/eapi/playlist/tags/update`, data, - { - crypto: 'eapi', - cookie: query.cookie, - proxy: query.proxy, - url: '/api/playlist/tags/update' - } + 'POST', `http://interface3.music.163.com/eapi/playlist/tags/update`, data, + { + crypto: 'eapi', + cookie: query.cookie, + proxy: query.proxy, + url: '/api/playlist/tags/update' + } ) } \ No newline at end of file diff --git a/module/playlist_tracks.js b/module/playlist_tracks.js index 2052bef..b2afe1b 100644 --- a/module/playlist_tracks.js +++ b/module/playlist_tracks.js @@ -1,13 +1,13 @@ // 收藏单曲到歌单 从歌单删除歌曲 module.exports = (query, request) => { - const data = { - op: query.op, // del,add - pid: query.pid, // 歌单id - trackIds: '[' + query.tracks + ']' // 歌曲id - } - return request( - 'POST', `https://music.163.com/weapi/playlist/manipulate/tracks`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + op: query.op, // del,add + pid: query.pid, // 歌单id + trackIds: '[' + query.tracks + ']' // 歌曲id + } + return request( + 'POST', `https://music.163.com/weapi/playlist/manipulate/tracks`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/playlist_update.js b/module/playlist_update.js index 2e454ad..204dd14 100644 --- a/module/playlist_update.js +++ b/module/playlist_update.js @@ -1,16 +1,16 @@ // 编辑歌单 module.exports = (query, request) => { - query.cookie.os = 'pc' - 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},"tags":"${query.tags}"}`, - "/api/playlist/update/name": `{"id":${query.id},"name":"${query.name}"}` - } - return request( - 'POST', `https://music.163.com/weapi/batch`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + 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},"tags":"${query.tags}"}`, + '/api/playlist/update/name': `{"id":${query.id},"name":"${query.name}"}` + } + return request( + 'POST', `https://music.163.com/weapi/batch`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/playmode_intelligence_list.js b/module/playmode_intelligence_list.js index 470cd69..e91ee75 100644 --- a/module/playmode_intelligence_list.js +++ b/module/playmode_intelligence_list.js @@ -3,15 +3,15 @@ module.exports = (query, request) => { const data = { songId: query.id, - type: "fromPlayOne", + type: 'fromPlayOne', playlistId: query.pid, startMusicId: query.sid || query.id, count: query.count || 1 }; return request( - "POST", + 'POST', `http://music.163.com/weapi/playmode/intelligence/list`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/program_recommend.js b/module/program_recommend.js index c4a2316..3d92954 100644 --- a/module/program_recommend.js +++ b/module/program_recommend.js @@ -1,13 +1,13 @@ // 推荐节目 module.exports = (query, request) => { - const data = { - cateId: query.type, - limit: query.limit || 10, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/program/recommend/v1`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + cateId: query.type, + limit: query.limit || 10, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/program/recommend/v1`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/rebind.js b/module/rebind.js index c7d5e12..7de7713 100644 --- a/module/rebind.js +++ b/module/rebind.js @@ -5,12 +5,12 @@ module.exports = (query, request) => { captcha: query.captcha, phone: query.phone, oldcaptcha: query.oldcaptcha, - ctcode: query.ctcode || "86" + ctcode: query.ctcode || '86' }; return request( - "POST", + 'POST', `https://music.163.com/api/user/replaceCellphone`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/recommend_resource.js b/module/recommend_resource.js index 49ddc14..ce53c52 100644 --- a/module/recommend_resource.js +++ b/module/recommend_resource.js @@ -1,8 +1,8 @@ // 每日推荐歌单 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/v1/discovery/recommend/resource`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/v1/discovery/recommend/resource`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/recommend_songs.js b/module/recommend_songs.js index d031d00..5cdc7fd 100644 --- a/module/recommend_songs.js +++ b/module/recommend_songs.js @@ -1,13 +1,13 @@ // 每日推荐歌曲 module.exports = (query, request) => { - const data = { - limit: 20, - offset: 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/v1/discovery/recommend/songs`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: 20, + offset: 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/v1/discovery/recommend/songs`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/related_allvideo.js b/module/related_allvideo.js index 48a5a65..21d9823 100644 --- a/module/related_allvideo.js +++ b/module/related_allvideo.js @@ -1,12 +1,12 @@ // 相关视频 module.exports = (query, request) => { - const data = { - id: query.id, - type: (/^\d+$/.test(query.id)) ? 0 : 1 - } - return request( - 'POST', `https://music.163.com/weapi/cloudvideo/v1/allvideo/rcmd`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.id, + type: (/^\d+$/.test(query.id)) ? 0 : 1 + } + return request( + 'POST', `https://music.163.com/weapi/cloudvideo/v1/allvideo/rcmd`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/related_playlist.js b/module/related_playlist.js index c867d64..3e4a540 100644 --- a/module/related_playlist.js +++ b/module/related_playlist.js @@ -1,32 +1,32 @@ // 相关歌单 module.exports = (query, request) => { - return request( - 'GET', `https://music.163.com/playlist?id=${query.id}`, {}, - {ua: 'pc', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'GET', `https://music.163.com/playlist?id=${query.id}`, {}, + {ua: 'pc', cookie: query.cookie, proxy: query.proxy} + ) .then(response => { - try{ - const pattern = /
[\s\S]*?[\s\S]*?]*>([^<]+?)<\/a>[\s\S]*?]*>([^<]+?)<\/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.status = 500 - response.body = {code: 500, msg: err.stack} - return Promise.reject(response) + try{ + const pattern = /
[\s\S]*?[\s\S]*?]*>([^<]+?)<\/a>[\s\S]*?]*>([^<]+?)<\/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.status = 500 + response.body = {code: 500, msg: err.stack} + return Promise.reject(response) + } }) } diff --git a/module/resource_like.js b/module/resource_like.js index f48c740..ae192c0 100644 --- a/module/resource_like.js +++ b/module/resource_like.js @@ -1,22 +1,22 @@ // 点赞与取消点赞资源 module.exports = (query, request) => { - query.cookie.os = 'pc' - query.t = (query.t == 1 ? 'like' : 'unlike') - query.type = { - 1: 'R_MV_5_', // MV - 4: 'A_DJ_1_', // 电台 - 5: 'R_VI_62_', // 视频 - 6: 'A_EV_2_' - }[query.type] - const data = { - threadId: query.type + query.id - } - if(query.type=='A_EV_2_'){ - data.threadId=query.threadId - } - return request( - 'POST', `https://music.163.com/weapi/resource/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + query.t = (query.t == 1 ? 'like' : 'unlike') + query.type = { + 1: 'R_MV_5_', // MV + 4: 'A_DJ_1_', // 电台 + 5: 'R_VI_62_', // 视频 + 6: 'A_EV_2_' + }[query.type] + const data = { + threadId: query.type + query.id + } + if(query.type=='A_EV_2_'){ + data.threadId=query.threadId + } + return request( + 'POST', `https://music.163.com/weapi/resource/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/scrobble.js b/module/scrobble.js index 8d7176c..922e931 100644 --- a/module/scrobble.js +++ b/module/scrobble.js @@ -1,23 +1,23 @@ // 听歌打卡 module.exports = (query, request) => { - const data = { - logs: JSON.stringify([{ - action: 'play', - json: { - download: 0, - end: 'playend', - id: query.id, - sourceId: query.sourceid, - time: query.time, - type: 'song', - wifi: 0, - } - }]) - } + const data = { + logs: JSON.stringify([{ + action: 'play', + json: { + download: 0, + end: 'playend', + id: query.id, + sourceId: query.sourceid, + time: query.time, + type: 'song', + wifi: 0, + } + }]) + } - return request( - 'POST', `https://music.163.com/weapi/feedback/weblog`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/feedback/weblog`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } diff --git a/module/search.js b/module/search.js index 6ca3018..07b97ad 100644 --- a/module/search.js +++ b/module/search.js @@ -1,14 +1,14 @@ // 搜索 module.exports = (query, request) => { - const data = { - s: query.keywords, - type: query.type || 1, // 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频 - limit: query.limit || 30, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/search/get`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + s: query.keywords, + type: query.type || 1, // 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频 + limit: query.limit || 30, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/search/get`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/search_hot.js b/module/search_hot.js index 069069d..2a980e5 100644 --- a/module/search_hot.js +++ b/module/search_hot.js @@ -1,11 +1,11 @@ // 热门搜索 module.exports = (query, request) => { - const data = { - type: 1111 - } - return request( - 'POST', `https://music.163.com/weapi/search/hot`, data, - {crypto: 'weapi', ua: 'mobile', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + type: 1111 + } + return request( + 'POST', `https://music.163.com/weapi/search/hot`, data, + {crypto: 'weapi', ua: 'mobile', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/search_hot_detail.js b/module/search_hot_detail.js index 269978a..eb4b01a 100644 --- a/module/search_hot_detail.js +++ b/module/search_hot_detail.js @@ -3,9 +3,9 @@ module.exports = (query, request) => { const data = { }; return request( - "POST", + 'POST', `https://music.163.com/weapi/hotsearchlist/get`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/search_multimatch.js b/module/search_multimatch.js index da113be..623c22e 100644 --- a/module/search_multimatch.js +++ b/module/search_multimatch.js @@ -1,12 +1,12 @@ // 多类型搜索 module.exports = (query, request) => { - const data = { - type: query.type || 1, - s: query.keywords || '' - } - return request( - 'POST', `https://music.163.com/weapi/search/suggest/multimatch`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + type: query.type || 1, + s: query.keywords || '' + } + return request( + 'POST', `https://music.163.com/weapi/search/suggest/multimatch`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/search_suggest.js b/module/search_suggest.js index ef53d9e..2bdb9a4 100644 --- a/module/search_suggest.js +++ b/module/search_suggest.js @@ -1,12 +1,12 @@ // 搜索建议 module.exports = (query, request) => { - const data = { - s: query.keywords || '' - } - let type = query.type == 'mobile' ? 'keyword' : 'web' - return request( - 'POST', `https://music.163.com/weapi/search/suggest/` + type, data, - { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } - ) + const data = { + s: query.keywords || '' + } + let type = query.type == 'mobile' ? 'keyword' : 'web' + return request( + 'POST', `https://music.163.com/weapi/search/suggest/` + type, data, + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } + ) } \ No newline at end of file diff --git a/module/send_playlist.js b/module/send_playlist.js index 5aedaea..f5d7f35 100644 --- a/module/send_playlist.js +++ b/module/send_playlist.js @@ -1,15 +1,15 @@ // 私信歌单 module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - id: query.playlist, - type: 'playlist', - msg: query.msg, - userIds: '[' + query.user_ids + ']' - } - return request( - 'POST', `https://music.163.com/weapi/msg/private/send`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + id: query.playlist, + type: 'playlist', + msg: query.msg, + userIds: '[' + query.user_ids + ']' + } + return request( + 'POST', `https://music.163.com/weapi/msg/private/send`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/send_text.js b/module/send_text.js index d71225a..bfa45dc 100644 --- a/module/send_text.js +++ b/module/send_text.js @@ -1,15 +1,15 @@ // 私信 module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - id: query.playlist, - type: 'text', - msg: query.msg, - userIds: '[' + query.user_ids + ']' - } - return request( - 'POST', `https://music.163.com/weapi/msg/private/send`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.cookie.os = 'pc' + const data = { + id: query.playlist, + type: 'text', + msg: query.msg, + userIds: '[' + query.user_ids + ']' + } + return request( + 'POST', `https://music.163.com/weapi/msg/private/send`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/setting.js b/module/setting.js index 654ffd4..fc745c5 100644 --- a/module/setting.js +++ b/module/setting.js @@ -1,9 +1,9 @@ module.exports = (query, request) => { - const data = { + const data = { - } - return request( - 'POST', `https://music.163.com/api/user/setting`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + } + return request( + 'POST', `https://music.163.com/api/user/setting`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/share_resource.js b/module/share_resource.js index bf2b0ec..ec550cd 100644 --- a/module/share_resource.js +++ b/module/share_resource.js @@ -2,14 +2,14 @@ module.exports = (query, request) => { const data = { - type: query.type || "song", // song,playlist,mv,djprogram,djradio - msg: query.msg || "", - id: query.id || "" + type: query.type || 'song', // song,playlist,mv,djprogram,djradio + msg: query.msg || '', + id: query.id || '' }; return request( - "POST", + 'POST', `http://music.163.com/weapi/share/friends/resource`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/simi_artist.js b/module/simi_artist.js index 646590d..0c7e197 100644 --- a/module/simi_artist.js +++ b/module/simi_artist.js @@ -1,11 +1,11 @@ // 相似歌手 module.exports = (query, request) => { - const data = { - artistid: query.id - } - return request( - 'POST', `https://music.163.com/weapi/discovery/simiArtist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + artistid: query.id + } + return request( + 'POST', `https://music.163.com/weapi/discovery/simiArtist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/simi_mv.js b/module/simi_mv.js index c30ecab..c06c662 100644 --- a/module/simi_mv.js +++ b/module/simi_mv.js @@ -1,11 +1,11 @@ // 相似MV module.exports = (query, request) => { - const data = { - mvid: query.mvid - } - return request( - 'POST', `https://music.163.com/weapi/discovery/simiMV`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + mvid: query.mvid + } + return request( + 'POST', `https://music.163.com/weapi/discovery/simiMV`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/simi_playlist.js b/module/simi_playlist.js index eaec179..22c0ef5 100644 --- a/module/simi_playlist.js +++ b/module/simi_playlist.js @@ -1,13 +1,13 @@ // 相似歌单 module.exports = (query, request) => { - const data = { - songid: query.id, - limit: query.limit || 50, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/discovery/simiPlaylist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + songid: query.id, + limit: query.limit || 50, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/discovery/simiPlaylist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/simi_song.js b/module/simi_song.js index 268ece7..f70615c 100644 --- a/module/simi_song.js +++ b/module/simi_song.js @@ -1,13 +1,13 @@ // 相似歌曲 module.exports = (query, request) => { - const data = { - songid: query.id, - limit: query.limit || 50, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/discovery/simiSong`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + songid: query.id, + limit: query.limit || 50, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/discovery/simiSong`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/simi_user.js b/module/simi_user.js index fc596d0..2058d1a 100644 --- a/module/simi_user.js +++ b/module/simi_user.js @@ -1,13 +1,13 @@ // 相似用户 module.exports = (query, request) => { - const data = { - songid: query.id, - limit: query.limit || 50, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/discovery/simiUser`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + songid: query.id, + limit: query.limit || 50, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/discovery/simiUser`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/song_detail.js b/module/song_detail.js index 82a5b0d..a333af5 100644 --- a/module/song_detail.js +++ b/module/song_detail.js @@ -1,13 +1,13 @@ // 歌曲详情 module.exports = (query, request) => { - query.ids = query.ids.split(/\s*,\s*/) - const data = { - c: '[' + query.ids.map(id => ('{"id":' + id + '}')).join(',') + ']', - ids: '[' + query.ids.join(',') + ']' - } - return request( - 'POST', `https://music.163.com/weapi/v3/song/detail`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.ids = query.ids.split(/\s*,\s*/) + const data = { + c: '[' + query.ids.map(id => ('{"id":' + id + '}')).join(',') + ']', + ids: '[' + query.ids.join(',') + ']' + } + return request( + 'POST', `https://music.163.com/weapi/v3/song/detail`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/song_url.js b/module/song_url.js index 306c565..97ebcf8 100644 --- a/module/song_url.js +++ b/module/song_url.js @@ -3,14 +3,14 @@ const crypto = require('crypto') module.exports = (query, request) => { - if(!('MUSIC_U' in query.cookie)) query.cookie._ntes_nuid = crypto.randomBytes(16).toString("hex") - query.cookie.os = 'pc' - const data = { - ids: '[' + query.id + ']', - br: parseInt(query.br || 999000) - } - return request( - 'POST', `https://music.163.com/api/song/enhance/player/url`, data, - {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} - ) + if(!('MUSIC_U' in query.cookie)) query.cookie._ntes_nuid = crypto.randomBytes(16).toString('hex') + query.cookie.os = 'pc' + const data = { + ids: '[' + query.id + ']', + br: parseInt(query.br || 999000) + } + return request( + 'POST', `https://music.163.com/api/song/enhance/player/url`, data, + {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/top_album.js b/module/top_album.js index 243bc24..98780fc 100644 --- a/module/top_album.js +++ b/module/top_album.js @@ -1,14 +1,14 @@ // 新碟上架 module.exports = (query, request) => { - const data = { - area: query.type || 'ALL', // ALL,ZH,EA,KR,JP - limit: query.limit || 50, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/album/new`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + area: query.type || 'ALL', // ALL,ZH,EA,KR,JP + limit: query.limit || 50, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/album/new`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/top_artists.js b/module/top_artists.js index 1bf90e1..8d1223e 100644 --- a/module/top_artists.js +++ b/module/top_artists.js @@ -1,13 +1,13 @@ // 热门歌手 module.exports = (query, request) => { - const data = { - limit: query.limit || 50, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/artist/top`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 50, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/artist/top`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/top_list.js b/module/top_list.js index edbc40f..141b3b5 100644 --- a/module/top_list.js +++ b/module/top_list.js @@ -1,39 +1,39 @@ // 排行榜 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" //云音乐嘻哈榜 + 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', `https://music.163.com/weapi/v3/playlist/detail`, data, - {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: topList[query.idx], + n: 10000 + } + return request( + 'POST', `https://music.163.com/weapi/v3/playlist/detail`, data, + {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/top_mv.js b/module/top_mv.js index 14bb71f..c94901b 100644 --- a/module/top_mv.js +++ b/module/top_mv.js @@ -2,13 +2,13 @@ module.exports = (query, request) => { const data = { - area: query.area || "", + area: query.area || '', limit: query.limit || 30, offset: query.offset || 0, total: true }; - return request("POST", `https://music.163.com/weapi/mv/toplist`, data, { - crypto: "weapi", + return request('POST', `https://music.163.com/weapi/mv/toplist`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/top_playlist.js b/module/top_playlist.js index 734c4bd..cac0a6d 100644 --- a/module/top_playlist.js +++ b/module/top_playlist.js @@ -1,15 +1,15 @@ // 分类歌单 module.exports = (query, request) => { - const data = { - cat: query.cat || '全部', // 全部,华语,欧美,日语,韩语,粤语,小语种,流行,摇滚,民谣,电子,舞曲,说唱,轻音乐,爵士,乡村,R&B/Soul,古典,民族,英伦,金属,朋克,蓝调,雷鬼,世界音乐,拉丁,另类/独立,New Age,古风,后摇,Bossa Nova,清晨,夜晚,学习,工作,午休,下午茶,地铁,驾车,运动,旅行,散步,酒吧,怀旧,清新,浪漫,性感,伤感,治愈,放松,孤独,感动,兴奋,快乐,安静,思念,影视原声,ACG,儿童,校园,游戏,70后,80后,90后,网络歌曲,KTV,经典,翻唱,吉他,钢琴,器乐,榜单,00后 - order: query.order || 'hot', // hot,new - limit: query.limit || 50, - offset: query.offset || 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/playlist/list`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + cat: query.cat || '全部', // 全部,华语,欧美,日语,韩语,粤语,小语种,流行,摇滚,民谣,电子,舞曲,说唱,轻音乐,爵士,乡村,R&B/Soul,古典,民族,英伦,金属,朋克,蓝调,雷鬼,世界音乐,拉丁,另类/独立,New Age,古风,后摇,Bossa Nova,清晨,夜晚,学习,工作,午休,下午茶,地铁,驾车,运动,旅行,散步,酒吧,怀旧,清新,浪漫,性感,伤感,治愈,放松,孤独,感动,兴奋,快乐,安静,思念,影视原声,ACG,儿童,校园,游戏,70后,80后,90后,网络歌曲,KTV,经典,翻唱,吉他,钢琴,器乐,榜单,00后 + order: query.order || 'hot', // hot,new + limit: query.limit || 50, + offset: query.offset || 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/playlist/list`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/top_playlist_highquality.js b/module/top_playlist_highquality.js index e2c60ae..e9fc0d7 100644 --- a/module/top_playlist_highquality.js +++ b/module/top_playlist_highquality.js @@ -1,14 +1,14 @@ // 精品歌单 module.exports = (query, request) => { - const data = { - cat: query.cat || '全部', // 全部,华语,欧美,韩语,日语,粤语,小语种,运动,ACG,影视原声,流行,摇滚,后摇,古风,民谣,轻音乐,电子,器乐,说唱,古典,爵士 - limit: query.limit || 50, - lasttime: query.before || 0, // 歌单updateTime - total: true - } - return request( - 'POST', `https://music.163.com/weapi/playlist/highquality/list`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + cat: query.cat || '全部', // 全部,华语,欧美,韩语,日语,粤语,小语种,运动,ACG,影视原声,流行,摇滚,后摇,古风,民谣,轻音乐,电子,器乐,说唱,古典,爵士 + limit: query.limit || 50, + lasttime: query.before || 0, // 歌单updateTime + total: true + } + return request( + 'POST', `https://music.163.com/weapi/playlist/highquality/list`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/toplist.js b/module/toplist.js index 62c5b5d..bfc1785 100644 --- a/module/toplist.js +++ b/module/toplist.js @@ -1,8 +1,8 @@ // 所有榜单介绍 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/toplist`, {}, - {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/toplist`, {}, + {crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/toplist_artist.js b/module/toplist_artist.js index 26b7f70..c3d76f7 100644 --- a/module/toplist_artist.js +++ b/module/toplist_artist.js @@ -1,14 +1,14 @@ // 歌手榜 module.exports = (query, request) => { - const data = { - type: 1, - limit: 100, - offset: 0, - total: true - } - return request( - 'POST', `https://music.163.com/weapi/toplist/artist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + type: 1, + limit: 100, + offset: 0, + total: true + } + return request( + 'POST', `https://music.163.com/weapi/toplist/artist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/toplist_detail.js b/module/toplist_detail.js index 59909de..ff7e7c5 100644 --- a/module/toplist_detail.js +++ b/module/toplist_detail.js @@ -1,8 +1,8 @@ // 所有榜单内容摘要 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/toplist/detail`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/toplist/detail`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_audio.js b/module/user_audio.js index 8c14ec6..d258df7 100644 --- a/module/user_audio.js +++ b/module/user_audio.js @@ -1,11 +1,11 @@ // 用户创建的电台 module.exports = (query, request) => { - const data = { - userId: query.uid - } - return request( - 'POST', `https://music.163.com/weapi/djradio/get/byuser`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + userId: query.uid + } + return request( + 'POST', `https://music.163.com/weapi/djradio/get/byuser`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_cloud.js b/module/user_cloud.js index 6ab25ea..3261b82 100644 --- a/module/user_cloud.js +++ b/module/user_cloud.js @@ -1,12 +1,12 @@ // 云盘数据 module.exports = (query, request) => { - const data = { - limit: query.limit || 30, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/v1/cloud/get`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 30, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/v1/cloud/get`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_cloud_del.js b/module/user_cloud_del.js index b2a564d..a00dbda 100644 --- a/module/user_cloud_del.js +++ b/module/user_cloud_del.js @@ -4,8 +4,8 @@ module.exports = (query, request) => { const data = { songIds: [query.id] }; - return request("POST", `http://music.163.com/weapi/cloud/del`, data, { - crypto: "weapi", + return request('POST', `http://music.163.com/weapi/cloud/del`, data, { + crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }); diff --git a/module/user_cloud_detail.js b/module/user_cloud_detail.js index 56a9474..6806e1a 100644 --- a/module/user_cloud_detail.js +++ b/module/user_cloud_detail.js @@ -1,14 +1,14 @@ // 云盘数据详情 module.exports = (query, request) => { - const id = query.id.replace(/\s/g, "").split(","); + const id = query.id.replace(/\s/g, '').split(','); const data = { songIds: id }; return request( - "POST", + 'POST', `https://music.163.com/weapi/v1/cloud/get/byids`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/user_detail.js b/module/user_detail.js index ba74550..4e497bd 100644 --- a/module/user_detail.js +++ b/module/user_detail.js @@ -1,8 +1,8 @@ // 用户详情 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/v1/user/detail/${query.uid}`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/v1/user/detail/${query.uid}`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_dj.js b/module/user_dj.js index 26c9b33..4edd2f5 100644 --- a/module/user_dj.js +++ b/module/user_dj.js @@ -1,12 +1,12 @@ // 用户电台节目 module.exports = (query, request) => { - const data = { - limit: query.limit || 30, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/dj/program/${query.uid}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + limit: query.limit || 30, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/dj/program/${query.uid}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_event.js b/module/user_event.js index c53e9ae..ddc4642 100644 --- a/module/user_event.js +++ b/module/user_event.js @@ -8,9 +8,9 @@ module.exports = (query, request) => { total: false }; return request( - "POST", + 'POST', `https://music.163.com/weapi/event/get/${query.uid}`, data, - { crypto: "weapi", cookie: query.cookie, proxy: query.proxy } + { crypto: 'weapi', cookie: query.cookie, proxy: query.proxy } ); }; diff --git a/module/user_followeds.js b/module/user_followeds.js index 8ebba12..4ea0f1d 100644 --- a/module/user_followeds.js +++ b/module/user_followeds.js @@ -7,14 +7,14 @@ module.exports = (query, request) => { limit: query.limit || 30 }; return request( - "POST", + 'POST', `https://music.163.com/eapi/user/getfolloweds/${query.uid}`, data, { - crypto: "eapi", + crypto: 'eapi', cookie: query.cookie, proxy: query.proxy, - url: "/api/user/getfolloweds" + url: '/api/user/getfolloweds' } ); }; diff --git a/module/user_follows.js b/module/user_follows.js index d1d2c72..1538f3b 100644 --- a/module/user_follows.js +++ b/module/user_follows.js @@ -1,13 +1,13 @@ // TA关注的人(关注) module.exports = (query, request) => { - const data = { - offset: query.offset || 0, - limit: query.limit || 30, - order: true - } - return request( - 'POST', `https://music.163.com/weapi/user/getfollows/${query.uid}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + offset: query.offset || 0, + limit: query.limit || 30, + order: true + } + return request( + 'POST', `https://music.163.com/weapi/user/getfollows/${query.uid}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_playlist.js b/module/user_playlist.js index 6cc59ca..215552c 100644 --- a/module/user_playlist.js +++ b/module/user_playlist.js @@ -1,13 +1,13 @@ // 用户歌单 module.exports = (query, request) => { - const data = { - uid: query.uid, - limit: query.limit || 30, - offset: query.offset || 0 - } - return request( - 'POST', `https://music.163.com/weapi/user/playlist`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + uid: query.uid, + limit: query.limit || 30, + offset: query.offset || 0 + } + return request( + 'POST', `https://music.163.com/weapi/user/playlist`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_record.js b/module/user_record.js index 439dc1c..3b1b4f8 100644 --- a/module/user_record.js +++ b/module/user_record.js @@ -1,12 +1,12 @@ // 听歌排行 module.exports = (query, request) => { - const data = { - uid: query.uid, - type: query.type || 1 // 1: 最近一周, 0: 所有时间 - } - return request( - 'POST', `https://music.163.com/weapi/v1/play/record`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + uid: query.uid, + type: query.type || 1 // 1: 最近一周, 0: 所有时间 + } + return request( + 'POST', `https://music.163.com/weapi/v1/play/record`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_subcount.js b/module/user_subcount.js index 2cfd666..8f564fe 100644 --- a/module/user_subcount.js +++ b/module/user_subcount.js @@ -1,8 +1,8 @@ // 收藏计数 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/subcount`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/subcount`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/user_update.js b/module/user_update.js index 44ef493..789ace2 100644 --- a/module/user_update.js +++ b/module/user_update.js @@ -1,17 +1,17 @@ // 编辑用户信息 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', `https://music.163.com/weapi/user/profile/update`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + 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', `https://music.163.com/weapi/user/profile/update`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/video_detail.js b/module/video_detail.js index b35ed9f..a181205 100644 --- a/module/video_detail.js +++ b/module/video_detail.js @@ -1,11 +1,11 @@ // 视频详情 module.exports = (query, request) => { - const data = { - id: query.id - } - return request( - 'POST', `https://music.163.com/weapi/cloudvideo/v1/video/detail`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + id: query.id + } + return request( + 'POST', `https://music.163.com/weapi/cloudvideo/v1/video/detail`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/video_group_list.js b/module/video_group_list.js index a217fd3..6ee4033 100644 --- a/module/video_group_list.js +++ b/module/video_group_list.js @@ -1,15 +1,15 @@ module.exports = (query, request) => { - const data = { - }; - return request( - "POST", - `https://music.163.com/api/cloudvideo/group/list`, - data, - { - crypto: "weapi", - cookie: query.cookie, - proxy: query.proxy - } - ); + const data = { }; + return request( + 'POST', + `https://music.163.com/api/cloudvideo/group/list`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy + } + ); +}; \ No newline at end of file diff --git a/module/video_sub.js b/module/video_sub.js index 2aaf174..9e83a3a 100644 --- a/module/video_sub.js +++ b/module/video_sub.js @@ -1,12 +1,12 @@ // 收藏与取消收藏视频 module.exports = (query, request) => { - query.t = (query.t == 1 ? 'sub' : 'unsub') - const data = { - id: query.id - } - return request( - 'POST', `https://music.163.com/weapi/cloudvideo/video/${query.t}`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + query.t = (query.t == 1 ? 'sub' : 'unsub') + const data = { + id: query.id + } + return request( + 'POST', `https://music.163.com/weapi/cloudvideo/video/${query.t}`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/video_url.js b/module/video_url.js index a1d0b53..5a4f544 100644 --- a/module/video_url.js +++ b/module/video_url.js @@ -1,12 +1,12 @@ // 视频链接 module.exports = (query, request) => { - const data = { - ids: '["' + query.id + '"]', - resolution: query.res || 1080 - } - return request( - 'POST', `https://music.163.com/weapi/cloudvideo/playurl`, data, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + const data = { + ids: '["' + query.id + '"]', + resolution: query.res || 1080 + } + return request( + 'POST', `https://music.163.com/weapi/cloudvideo/playurl`, data, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/module/weblog.js b/module/weblog.js index fd95b51..d44b581 100644 --- a/module/weblog.js +++ b/module/weblog.js @@ -1,8 +1,8 @@ // 操作记录 module.exports = (query, request) => { - return request( - 'POST', `https://music.163.com/weapi/feedback/weblog`, {}, - {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} - ) + return request( + 'POST', `https://music.163.com/weapi/feedback/weblog`, {}, + {crypto: 'weapi', cookie: query.cookie, proxy: query.proxy} + ) } \ No newline at end of file diff --git a/package.json b/package.json index dd3d9a3..9e77142 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,9 @@ "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", - "test": "mocha -r intelli-espower-loader -t 20000 app.test.js --exit" + "test": "mocha -r intelli-espower-loader -t 20000 app.test.js --exit", + "lint-fix": "eslint --fix --ext .js app.js module/ util/ test/ " + }, "keywords": [ "网易云音乐", @@ -21,6 +23,8 @@ "request": "^2.88.0" }, "devDependencies": { + "eslint": "^6.1.0", + "eslint-config-standard": "^13.0.1", "intelli-espower-loader": "^1.0.1", "mocha": "^6.1.4", "power-assert": "^1.6.1" diff --git a/test/album.test.js b/test/album.test.js index 716f9a3..33270c1 100644 --- a/test/album.test.js +++ b/test/album.test.js @@ -8,7 +8,7 @@ describe('测试获取歌手专辑列表是否正常', () => { id: 32311 } - request.get({url: `${host}/album`,qs: qs}, (err, res, body) => { + request.get({url: `${host}/album`, qs: qs}, (err, res, body) => { if (!err && res.statusCode == 200) { body = JSON.parse(body) assert(body.code === 200) diff --git a/test/comment.test.js b/test/comment.test.js index 5f52e87..595eb1b 100644 --- a/test/comment.test.js +++ b/test/comment.test.js @@ -8,7 +8,7 @@ describe('测试获取评论是否正常', () => { id: 32311 } - request.get({url: `${host}/comment/album`,qs: qs}, (err, res, body) => { + request.get({url: `${host}/comment/album`, qs: qs}, (err, res, body) => { if (!err && res.statusCode == 200) { body = JSON.parse(body) assert(body.code === 200) diff --git a/test/login.test.js b/test/login.test.js index 836363a..0855afe 100644 --- a/test/login.test.js +++ b/test/login.test.js @@ -2,16 +2,16 @@ const assert = require('assert') const request = require('request') const host = global.host || 'http://localhost:3000' -console.log("注意: 测试登录需在 test/login.test.js 中填写账号密码!!!"); +console.log('注意: 测试登录需在 test/login.test.js 中填写账号密码!!!'); -describe("测试登录是否正常", () => { - it("手机登录 code 应该等于200", done => { +describe('测试登录是否正常', () => { + it('手机登录 code 应该等于200', done => { const qs = { phone: phone, password: password } - request.get({url: `${host}/login/cellphone`,qs: qs}, (err, res, body) => { + request.get({url: `${host}/login/cellphone`, qs: qs}, (err, res, body) => { if (!err && res.statusCode == 200) { body = JSON.parse(body) assert(body.code === 200) diff --git a/test/lyric.test.js b/test/lyric.test.js index ae3b52e..19174ff 100644 --- a/test/lyric.test.js +++ b/test/lyric.test.js @@ -2,16 +2,16 @@ const assert = require('assert') const request = require('request') const host = global.host || 'http://localhost:3000' -describe("测试获取歌词是否正常", () => { - it("数据应该有 lrc 字段", done => { +describe('测试获取歌词是否正常', () => { + it('数据应该有 lrc 字段', done => { const qs = { id: 347230 } - request.get({url: `${host}/lyric`,qs: qs}, (err, res, body) => { + request.get({url: `${host}/lyric`, qs: qs}, (err, res, body) => { if (!err && res.statusCode == 200) { body = JSON.parse(body) - assert(typeof body.lrc !== "undefined") + assert(typeof body.lrc !== 'undefined') done() } else{ diff --git a/test/music_url.test.js b/test/music_url.test.js index 7dcbefd..411c6e1 100644 --- a/test/music_url.test.js +++ b/test/music_url.test.js @@ -2,14 +2,14 @@ const assert = require('assert') const request = require('request') const host = global.host || 'http://localhost:3000' -describe("测试获取歌曲是否正常", () => { - it("歌曲的 url 不应该为空", done => { +describe('测试获取歌曲是否正常', () => { + it('歌曲的 url 不应该为空', done => { const qs = { id: 462791935, br: 999000 } - request.get({url: `${host}/music/url`,qs: qs}, (err, res, body) => { + request.get({url: `${host}/music/url`, qs: qs}, (err, res, body) => { if (!err && res.statusCode == 200) { body = JSON.parse(body) assert(!!body.data[0].url) diff --git a/test/search.test.js b/test/search.test.js index 2882852..49b93a8 100644 --- a/test/search.test.js +++ b/test/search.test.js @@ -8,7 +8,7 @@ describe('测试搜索是否正常', () => { keywords: '海阔天空', type: 1 } - request.get({url: `${host}/search`,qs: qs}, (err, res, body) => { + request.get({url: `${host}/search`, qs: qs}, (err, res, body) => { if (!err && res.statusCode == 200) { body = JSON.parse(body) assert(body.result.songs[0].name === '海阔天空') diff --git a/util/crypto.js b/util/crypto.js index 5d747ab..b3a6392 100644 --- a/util/crypto.js +++ b/util/crypto.js @@ -7,44 +7,44 @@ const publicKey = '-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBi const eapiKey = 'e82ckenh8dichen8' const aesEncrypt = (buffer, mode, key, iv) => { - const cipher = crypto.createCipheriv('aes-128-' + mode, key, iv) - return Buffer.concat([cipher.update(buffer),cipher.final()]) + const cipher = crypto.createCipheriv('aes-128-' + mode, key, iv) + return Buffer.concat([cipher.update(buffer), cipher.final()]) } const rsaEncrypt = (buffer, key) => { - buffer = Buffer.concat([Buffer.alloc(128 - buffer.length), buffer]) - return crypto.publicEncrypt({key: key, padding: crypto.constants.RSA_NO_PADDING}, buffer) + buffer = Buffer.concat([Buffer.alloc(128 - buffer.length), buffer]) + return crypto.publicEncrypt({key: key, padding: crypto.constants.RSA_NO_PADDING}, buffer) } const weapi = (object) => { - const text = JSON.stringify(object) - const secretKey = crypto.randomBytes(16).map(n => (base62.charAt(n % 62).charCodeAt())) - return { - params: aesEncrypt(Buffer.from(aesEncrypt(Buffer.from(text), 'cbc', presetKey, iv).toString('base64')), 'cbc', secretKey, iv).toString('base64'), - encSecKey: rsaEncrypt(secretKey.reverse(), publicKey).toString('hex') - } + const text = JSON.stringify(object) + const secretKey = crypto.randomBytes(16).map(n => (base62.charAt(n % 62).charCodeAt())) + return { + params: aesEncrypt(Buffer.from(aesEncrypt(Buffer.from(text), 'cbc', presetKey, iv).toString('base64')), 'cbc', secretKey, iv).toString('base64'), + encSecKey: rsaEncrypt(secretKey.reverse(), publicKey).toString('hex') + } } const linuxapi = (object) => { - const text = JSON.stringify(object) - return { - eparams: aesEncrypt(Buffer.from(text), 'ecb', linuxapiKey, '').toString('hex').toUpperCase() - } + const text = JSON.stringify(object) + return { + eparams: aesEncrypt(Buffer.from(text), 'ecb', linuxapiKey, '').toString('hex').toUpperCase() + } } const eapi = (url, object) => { - const text = typeof object === 'object' ? JSON.stringify(object) : object; - const message = `nobody${url}use${text}md5forencrypt` - const digest = crypto.createHash('md5').update(message).digest('hex') - const data = `${url}-36cd479b6b5-${text}-36cd479b6b5-${digest}` - return { - params: aesEncrypt(Buffer.from(data), 'ecb', eapiKey, '').toString('hex').toUpperCase() - } + const text = typeof object === 'object' ? JSON.stringify(object) : object; + const message = `nobody${url}use${text}md5forencrypt` + const digest = crypto.createHash('md5').update(message).digest('hex') + const data = `${url}-36cd479b6b5-${text}-36cd479b6b5-${digest}` + return { + params: aesEncrypt(Buffer.from(data), 'ecb', eapiKey, '').toString('hex').toUpperCase() + } } const decrypt = cipherBuffer => { - const decipher = crypto.createDecipheriv('aes-128-ecb',eapiKey,'') - return Buffer.concat([decipher.update(cipherBuffer), decipher.final()]) + const decipher = crypto.createDecipheriv('aes-128-ecb', eapiKey, '') + return Buffer.concat([decipher.update(cipherBuffer), decipher.final()]) } module.exports = {weapi, linuxapi, eapi, decrypt} \ No newline at end of file diff --git a/util/request.js b/util/request.js index 8cf4897..92b3a81 100644 --- a/util/request.js +++ b/util/request.js @@ -70,20 +70,20 @@ const createRequest = (method, url, data, options) => { const cookie = options.cookie || {}; const csrfToken = cookie['__csrf'] || '' const header = { - "osver": cookie.osver, //系统版本 - "deviceId": cookie.deviceId, //encrypt.base64.encode(imei + '\t02:00:00:00:00:00\t5106025eb79a5247\t70ffbaac7') - "appver": cookie.appver || "6.1.1", // app版本 - "versioncode": cookie.versioncode || "140", //版本号 - "mobilename": cookie.mobilename, //设备model - "buildver": cookie.buildver || Date.now().toString().substr(0, 10), - "resolution": cookie.resolution || "1920x1080", //设备分辨率 - "__csrf": csrfToken, - "os": cookie.os || 'android', - "channel": cookie.channel, - "requestId":`${Date.now()}_${Math.floor(Math.random() * 1000).toString().padStart(4, '0')}` + 'osver': cookie.osver, //系统版本 + 'deviceId': cookie.deviceId, //encrypt.base64.encode(imei + '\t02:00:00:00:00:00\t5106025eb79a5247\t70ffbaac7') + 'appver': cookie.appver || '6.1.1', // app版本 + 'versioncode': cookie.versioncode || '140', //版本号 + 'mobilename': cookie.mobilename, //设备model + 'buildver': cookie.buildver || Date.now().toString().substr(0, 10), + 'resolution': cookie.resolution || '1920x1080', //设备分辨率 + '__csrf': csrfToken, + 'os': cookie.os || 'android', + 'channel': cookie.channel, + 'requestId': `${Date.now()}_${Math.floor(Math.random() * 1000).toString().padStart(4, '0')}` } - if (cookie.MUSIC_U) header["MUSIC_U"] = cookie.MUSIC_U - if (cookie.MUSIC_A) header["MUSIC_A"] = cookie.MUSIC_A + if (cookie.MUSIC_U) header['MUSIC_U'] = cookie.MUSIC_U + if (cookie.MUSIC_A) header['MUSIC_A'] = cookie.MUSIC_A headers['Cookie'] = Object.keys(header) .map( key => @@ -94,7 +94,7 @@ const createRequest = (method, url, data, options) => { .join('; ') data.header = header data = encrypt.eapi(options.url, data) - url = url.replace(/\w*api/,'eapi') + url = url.replace(/\w*api/, 'eapi') } const answer = { status: 500, body: {}, cookie: [] }