35 lines
1007 B
JavaScript
35 lines
1007 B
JavaScript
import { httpGet } from '../../request'
|
|
|
|
if (!window.kw_token) {
|
|
window.kw_token = {
|
|
token: null,
|
|
isGetingToken: false,
|
|
}
|
|
}
|
|
|
|
export const formatSinger = rawData => rawData.replace(/&/g, '、')
|
|
|
|
export const matchToken = headers => {
|
|
try {
|
|
return headers['set-cookie'][0].match(/kw_token=(\w+)/)[1]
|
|
} catch (err) {
|
|
return null
|
|
}
|
|
}
|
|
|
|
const wait = time => new Promise(resolve => setTimeout(() => resolve(), time))
|
|
|
|
|
|
export const getToken = () => new Promise((resolve, reject) => {
|
|
if (window.kw_token.isGetingToken) return wait(1000).then(() => getToken().then(token => resolve(token)))
|
|
if (window.kw_token.token) return resolve(window.kw_token.token)
|
|
window.kw_token.isGetingToken = true
|
|
httpGet('http://www.kuwo.cn', (err, resp) => {
|
|
window.kw_token.isGetingToken = false
|
|
if (err) return reject(err)
|
|
if (resp.statusCode != 200) return reject(new Error('获取失败'))
|
|
const token = window.kw_token.token = matchToken(resp.headers)
|
|
resolve(token)
|
|
})
|
|
})
|