26 lines
728 B
JavaScript
26 lines
728 B
JavaScript
import { createHttpFetch } from './utils'
|
|
|
|
export default {
|
|
requestObj: null,
|
|
cancelTipSearch() {
|
|
if (this.requestObj && this.requestObj.cancelHttp) this.requestObj.cancelHttp()
|
|
},
|
|
tipSearchBySong(str) {
|
|
this.cancelTipSearch()
|
|
this.requestObj = createHttpFetch(`https://music.migu.cn/v3/api/search/suggest?keyword=${encodeURIComponent(str)}`, {
|
|
headers: {
|
|
referer: 'https://music.migu.cn/v3',
|
|
},
|
|
})
|
|
return this.requestObj.then(body => {
|
|
return body.songs
|
|
})
|
|
},
|
|
handleResult(rawData) {
|
|
return rawData.map(info => `${info.name} - ${info.singerName}`)
|
|
},
|
|
async search(str) {
|
|
return this.tipSearchBySong(str).then(result => this.handleResult(result))
|
|
},
|
|
}
|