upgrade version 2.0,add login api,upgrade api verison,add document and unit test

This commit is contained in:
binaryify
2017-04-01 18:42:51 +08:00
parent 35f37afd77
commit a2e4d26401
46 changed files with 714 additions and 614 deletions
+26
View File
@@ -0,0 +1,26 @@
const express = require("express")
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {
"action": req.query.action,
"json": req.query.json,
"csrf_token": "",
}
createWebAPIRequest(
'music.163.com',
'/weapi/log/web',
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
+34
View File
@@ -0,0 +1,34 @@
const express = require("express")
const crypto = require('crypto')
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const email = req.query.email
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const md5sum = crypto.createHash('md5')
md5sum.update(req.query.password)
const data = {
'username': email,
'password': md5sum.digest('hex'),
'rememberLogin': 'true'
}
createWebAPIRequest(
'music.163.com',
'/weapi/login',
'POST',
data,
cookie,
(music_req, cookie) => {
console.log(music_req)
res.set({
'Set-Cookie': cookie,
})
res.send(music_req)
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
+34
View File
@@ -0,0 +1,34 @@
const express = require("express")
const crypto = require('crypto')
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const phone = req.query.phone
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const md5sum = crypto.createHash('md5')
md5sum.update(req.query.password)
const data = {
'phone': phone,
'password': md5sum.digest('hex'),
'rememberLogin': 'true'
}
createWebAPIRequest(
'music.163.com',
'/weapi/login/cellphone',
'POST',
data,
cookie,
(music_req, cookie) => {
console.log(music_req)
res.set({
'Set-Cookie': cookie,
})
res.send(music_req)
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
+18
View File
@@ -0,0 +1,18 @@
const express = require("express")
const router = express()
const { createRequest } = require("../util/util")
router.get("/", (req, res) => {
const id = req.query.id
createRequest('/api/song/lyric?os=osx&id=' + id + '&lv=-1&kv=-1&tv=-1', 'GET', null)
.then(result => {
res.setHeader("Content-Type", "application/json")
res.send(result)
})
.catch(err => {
res.status(502).send('fetch error')
})
})
module.exports = router
+31
View File
@@ -0,0 +1,31 @@
const express = require("express")
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const id = parseInt(req.query.id)
const br = parseInt(req.query.br || 999000)
const data = {
"ids": [id],
"br": br,
"csrf_token": ""
}
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
createWebAPIRequest(
'music.163.com',
'/weapi/song/enhance/player/url',
'POST',
data,
cookie,
music_req => {
res.setHeader("Content-Type", "application/json")
res.send(music_req)
},
err => {
res.status(502).send('fetch error')
}
)
})
module.exports = router
+68
View File
@@ -0,0 +1,68 @@
const http = require('http')
const express = require("express")
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
let detail, imgurl
const data = {
"id": req.query.id,
"offset": 0,
"total": true,
"limit": 1000,
"n": 1000,
"csrf_token": ""
}
createWebAPIRequest(
'music.163.com',
'/weapi/v3/playlist/detail',
'POST',
data,
cookie,
music_req=> {
console.log(music_req)
detail = music_req
mergeRes()
},
err =>{
res.status(502).send('fetch error')
}
)
// FIXME:i dont know the api to get coverimgurl
// so i get it by parsing html
const http_client = http.get({
hostname: 'music.163.com',
path: '/playlist?id=' + req.query.id,
headers: {
'Referer': 'http://music.163.com',
},
}, function (res) {
res.setEncoding('utf8')
let html = ''
res.on('data', function (chunk) {
html += chunk
})
res.on('end', function () {
console.log('end', html)
const regImgCover = /\<img src=\"(.*)\" class="j-img"/ig
imgurl = regImgCover.exec(html)[1]
mergeRes()
})
})
function mergeRes() {
if (imgurl != undefined && detail != undefined) {
detail = JSON.parse(detail)
detail.playlist.picUrl = imgurl
res.send(detail)
}
}
})
module.exports = router
+30
View File
@@ -0,0 +1,30 @@
const express = require("express")
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const op = req.query.op
const pid = req.query.pid
const tracks = req.query.tracks
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// console.log('COOKIESS', cookie)
const data = {
"op": op,
"pid": pid,
"tracks": tracks,
"trackIds": JSON.stringify([tracks]),
"csrf_token": "",
}
createWebAPIRequest(
'music.163.com',
'/weapi/playlist/manipulate/tracks',
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
+24
View File
@@ -0,0 +1,24 @@
const express = require("express")
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {
"csrf_token": ""
}
createWebAPIRequest(
'music.163.com',
'/weapi/v1/discovery/recommend/resource',
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
+27
View File
@@ -0,0 +1,27 @@
const express = require("express")
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/",(req,res)=>{
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {
"offset": 0,
"total": true,
"limit": 20,
"csrf_token": ""
}
createWebAPIRequest(
'music.163.com',
'/weapi/v1/discovery/recommend/songs',
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports=router
+20
View File
@@ -0,0 +1,20 @@
const express = require("express")
const router = express()
const { createRequest } = require("../util/util")
router.get("/", (req, res) => {
const keywords = req.query.keywords
const type = req.query.type || 1
const limit = req.query.limit || 30
const data = 's=' + keywords + '&limit=' + limit + '&type=' + type + '&offset=0'
createRequest('/api/search/pc/', 'POST', data)
.then(result => {
res.setHeader("Content-Type", "application/json")
res.send(result)
})
.catch(err => {
res.status(502).send('fetch error')
})
})
module.exports = router
+24
View File
@@ -0,0 +1,24 @@
const express = require("express")
const router = express()
const { createWebAPIRequest } = require("../util/util")
router.get("/", (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {
"offset": 0,
"uid": req.query.uid,
"limit": 1000,
"csrf_token": ""
}
createWebAPIRequest(
'music.163.com',
'/weapi/user/playlist',
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router