diff --git a/router/banner.js b/router/banner.js index 2cb92eff511d8ae9fe3e8ab06a59dd6029934d59..d3584109fc02999dfe46783be7bc70be82ee966e 100644 --- a/router/banner.js +++ b/router/banner.js @@ -1,24 +1,30 @@ const express = require("express"); const router = express(); -const { createWebAPIRequest } = require("../util/util"); +const request = require("request"); router.get("/", (req, res) => { - const cookie = req.get("Cookie") ? req.get("Cookie") : ""; - const data = { - timeStamp: 0 + new Date(), - csrf_token: "" + const options = { + url: "http://music.163.com/discover", + method: "GET", + headers: { + Referer: "http://music.163.com", + "User-Agent": + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3380.0 Safari/537.36" + } }; - createWebAPIRequest( - "music.163.com", - "/api/v2/banner/get", - "POST", - data, - cookie, - music_req => { - res.send(music_req); - }, - err => res.status(502).send("fetch error") - ); + request(options, (error, response, body) => { + if (error) { + res.status(502).send("fetch error"); + } else { + try { + const pattern = /]*>\s*window\.Gbanners\s*=\s*([^;]+?);\s*<\/script>/g; + const banners = pattern.exec(body)[1]; + res.send(JSON.stringify(eval(banners))); + } catch (error) { + res.status(502).send("fetch error"); + } + } + }); }); module.exports = router;