From 2c5dcdfe8ea501534d30b7accc4daeeb924a394b Mon Sep 17 00:00:00 2001 From: Nzix Date: Fri, 27 Jul 2018 00:19:18 +0800 Subject: [PATCH] related playlist recommendation --- router/related_playlist.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 router/related_playlist.js diff --git a/router/related_playlist.js b/router/related_playlist.js new file mode 100644 index 0000000..d855122 --- /dev/null +++ b/router/related_playlist.js @@ -0,0 +1,37 @@ +//related ,相关歌单 +module.exports = (req, res, createWebAPIRequest, request) => { + const options = { + url: "http://music.163.com/playlist?id=" + req.query.id, + method: "GET", + headers: { + Referer: "http://music.163.com", + "User-Agent": + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3380.0 Safari/537.36" + } + }; + request(options, (error, response, body) => { + if (error) { + res.status(502).send("fetch error"); + } else { + try { + const pattern = /
[\s\S]*?[\s\S]*?]*>([^<]+?)<\/a>[\s\S]*?]*>([^<]+?)<\/a>/g; + const data = {playlists:[],code:200}; + let result; + while ((result = pattern.exec(body)) != null) { + data.playlists.push({ + creator: { + userId: result[4].slice('/user/home?id='.length), + nickname: result[5] + }, + coverImgUrl: result[1].slice(0,-('?param=50y50'.length)), + name: result[3], + id: result[2].slice('/playlist?id='.length) + }); + } + res.send(JSON.stringify(data)); + } catch (error) { + res.status(502).send("fetch error"); + } + } + }); +};