text: var express = require('express')
  var compression = require('compression')
  var axios = require('axios')
  const bodyParser = require('body-parser')
  
  var port = process.env.PORT || 9000
  
  var app = express()
  
  var apiRoutes = express.Router()
  
  apiRoutes.get('/getDiscList', function (req, res) {
    const url = 'https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg';
    axios
      .get(url, {
        headers: {
          referer: 'https://c.y.qq.com/',
          host: 'c.y.qq.com'
        },
        params: req.query
      })
      .then(response => {
        res.json(response.data)
      })
      .catch(e => {
        console.log(e)
      })
  })
  
  apiRoutes.get('/getCdInfo', function (req, res) {
    var url = 'https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg';
    axios
      .get(url, {
        headers: {
          referer: 'https://c.y.qq.com/',
          host: 'c.y.qq.com'
        },
        params: req.query
      })
      .then(response => {
        var ret = response.data
        if (typeof ret === 'string') {
          var reg = /^\w+\(({.+})\)$/
          var matches = ret.match(reg)
          if (matches) {
            ret = JSON.parse(matches[1])
          }
        }
        res.json(ret)
      })
      .catch(e => {
        console.log(e)
      })
  })
  
  apiRoutes.get('/lyric', function (req, res) {
    var url = 'https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg';
  
    axios
      .get(url, {
        headers: {
          referer: 'https://c.y.qq.com/',
          host: 'c.y.qq.com'
        },
        params: req.query
      })
      .then(response => {
        var ret = response.data
        if (typeof ret === 'string') {
          var reg = /^\w+\(({.+})\)$/
          var matches = response.data.match(reg)
          if (matches) {
            ret = JSON.parse(matches[1])
          }
        }
        res.json(ret)
      })
      .catch(e => {
        console.log(e)
      })
  })
  app.get('/api/getSongInfo', function (req, res) {
    const url = 'https://u.y.qq.com/cgi-bin/musicu.fcg';
    axios
      .get(url, {
        headers: {
          referer: 'https://u.y.qq.com/',
          host: 'u.y.qq.com'
        },
        params: req.query
      })
      .then(response => {
        res.json(response.data)
      })
      .catch(e => {
        console.log(e)
      })
  })
  
  app.post('/api/getTopList', bodyParser.json(), function (req, res) {
    const url = 'https://u.y.qq.com/cgi-bin/musicu.fcg';
    axios
      .post(url, req.body, {
        headers: {
          referer: 'https://y.qq.com/',
          origin: 'https://y.qq.com',
          'Content-type': 'application/x-www-form-urlencoded'
        }
      })
      .then(response => {
        res.json(response.data)
      })
      .catch(e => {
        console.log(e)
      })
  })
  
  app.post('/api/getPurlUrl', bodyParser.json(), function (req, res) {
    const url = 'https://u.y.qq.com/cgi-bin/musicu.fcg';
    axios
      .post(url, req.body, {
        headers: {
          referer: 'https://y.qq.com/',
          origin: 'https://y.qq.com',
          'Content-type': 'application/x-www-form-urlencoded'
        }
      })
      .then(response => {
        res.json(response.data)
      })
      .catch(e => {
        console.log(e)
      })
  })
  
  apiRoutes.get('/search', function (req, res) {
    const url = 'https://c.y.qq.com/soso/fcgi-bin/search_for_qq_cp';
    axios
      .get(url, {
        headers: {
          referer: 'https://c.y.qq.com/',
          host: 'c.y.qq.com'
        },
        params: req.query
      })
      .then(response => {
        res.json(response.data)
      })
      .catch(e => {
        console.log(e)
      })
  })
  
  apiRoutes.get('/getTopBanner', function (req, res) {
    // eslint-disable-next-line semi
    const url = 'https://u.y.qq.com/cgi-bin/musicu.fcg';
    // eslint-disable-next-line semi
    const jumpPrefix = 'https://y.qq.com/n/yqq/album/';
  
    axios
      .get(url, {
        headers: {
          referer: 'https://u.y.qq.com/',
          host: 'u.y.qq.com'
        },
        params: req.query
      })
      .then(response => {
        response = response.data
        if (response.code === 0) {
          const slider = []
          const content = response.focus.data && response.focus.data.content
          if (content) {
            for (let i = 0; i < content.length; i++) {
              const item = content[i]
              const sliderItem = {}
              sliderItem.id = item.id
              sliderItem.linkUrl = jumpPrefix + item.jump_info.url + '.html';
              sliderItem.picUrl = item.pic_info.url
              slider.push(sliderItem)
            }
          }
          res.json({
            code: 0,
            data: {
              slider
            }
          })
        } else {
          res.json(response)
        }
      })
      .catch(e => {
        console.log(e)
      })
  })
  
  app.use('/api', apiRoutes)
  
  app.use(compression())
  
  app.use(express.static('./dist'))
  
  module.exports = app.listen(port, function (err) {
    if (err) {
      console.log(err)
      return;
    }
    console.log('Listening at http://localhost:' + port + '\n')
  })
  