From d4d6b9c9aaaca0c5f1f3dbad30b2f2995c7ab893 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 6 Jan 2020 00:30:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=92=AA=E5=92=95=E6=BA=90?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=90=9C=E7=B4=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/renderer/utils/music/mg/musicSearch.js | 128 ++++++++++++++------- 2 files changed, 87 insertions(+), 42 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 504687ef..fe029be5 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -9,6 +9,7 @@ ### 修复 +- 修复咪咕源无法搜索的问题 - 修复更新弹窗底部文字颜色没有适配当前主题颜色的问题 - 修复导入设置窗口大小、代理设置不立即生效的问题 diff --git a/src/renderer/utils/music/mg/musicSearch.js b/src/renderer/utils/music/mg/musicSearch.js index 81a0b008..9632e80f 100644 --- a/src/renderer/utils/music/mg/musicSearch.js +++ b/src/renderer/utils/music/mg/musicSearch.js @@ -1,7 +1,7 @@ // import '../../polyfill/array.find' // import jshtmlencode from 'js-htmlencode' import { httpFetch } from '../../request' -import { sizeFormate } from '../../index' +// import { sizeFormate } from '../../index' // import { debug } from '../../utils/env' // import { formatSinger } from './util' @@ -13,7 +13,8 @@ export default { allPage: 1, musicSearch(str, page) { if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() - searchRequest = httpFetch(`https://app.c.nf.migu.cn/MIGUM2.0/v1.0/content/search_all.do?isCopyright=1&isCorrect=1&pageNo=${page}&pageSize=${this.limit}&searchSwitch={%22song%22:1,%22album%22:0,%22singer%22:0,%22tagSong%22:0,%22mvSong%22:0,%22songlist%22:0,%22bestShow%22:0}&sort=0&text=${encodeURIComponent(str)}`) + searchRequest = httpFetch(`http://m.music.migu.cn/migu/remoting/scr_search_tag?rows=${this.limit}&type=2&keyword=${encodeURIComponent(str)}&pgc=${page}`) + // searchRequest = httpFetch(`https://app.c.nf.migu.cn/MIGUM2.0/v1.0/content/search_all.do?isCopyright=1&isCorrect=1&pageNo=${page}&pageSize=${this.limit}&searchSwitch={%22song%22:1,%22album%22:0,%22singer%22:0,%22tagSong%22:0,%22mvSong%22:0,%22songlist%22:0,%22bestShow%22:0}&sort=0&text=${encodeURIComponent(str)}`) return searchRequest.promise.then(({ body }) => body) }, getSinger(singers) { @@ -32,54 +33,80 @@ export default { ids.add(item.id) const types = [] const _types = {} - item.rateFormats && item.rateFormats.forEach(type => { - let size - switch (type.formatType) { - case 'PQ': - size = sizeFormate(type.size) - types.push({ type: '128k', size }) - _types['128k'] = { - size, - } - break - case 'HQ': - size = sizeFormate(type.size) - types.push({ type: '320k', size }) - _types['320k'] = { - size, - } - break - case 'SQ': - size = sizeFormate(type.size) - types.push({ type: 'flac', size }) - _types.flac = { - size, - } - break - } - }) - - const albumNInfo = item.albums && item.albums.length ? { - id: item.albums[0].id, - name: item.albums[0].name, - } : {} + types.push({ type: '128k' }) + _types['128k'] = {} + if (item.hasHQqq) { + types.push({ type: '320k' }) + _types['320k'] = {} + } + if (item.hasSQqq) { + types.push({ type: 'flac' }) + _types.flac = {} + } + // item.rateFormats && item.rateFormats.forEach(type => { + // let size + // switch (type.formatType) { + // case 'PQ': + // size = sizeFormate(type.size) + // types.push({ type: '128k', size }) + // _types['128k'] = { + // size, + // } + // break + // case 'HQ': + // size = sizeFormate(type.size) + // types.push({ type: '320k', size }) + // _types['320k'] = { + // size, + // } + // break + // case 'SQ': + // size = sizeFormate(type.size) + // types.push({ type: 'flac', size }) + // _types.flac = { + // size, + // } + // break + // } + // }) list.push({ - singer: this.getSinger(item.singers), - name: item.name, - albumName: albumNInfo.name, - albumId: albumNInfo.id, + singer: item.singerName.replace(', ', '、'), + name: item.songName, + albumName: item.albumName, + albumId: item.albumId, songmid: item.id, copyrightId: item.copyrightId, source: 'mg', interval: null, - img: item.imgItems && item.imgItems.length ? item.imgItems[0].img : null, + img: item.cover, lrc: null, - lrcUrl: item.lyricUrl, + // lrcUrl: item.lyrics, types, _types, typeUrl: {}, }) + // const albumNInfo = item.albums && item.albums.length ? { + // id: item.albums[0].id, + // name: item.albums[0].name, + // } : {} + + // list.push({ + // singer: this.getSinger(item.singers), + // name: item.name, + // albumName: albumNInfo.name, + // albumId: albumNInfo.id, + // songmid: item.id, + // copyrightId: item.copyrightId, + // source: 'mg', + // interval: null, + // img: item.imgItems && item.imgItems.length ? item.imgItems[0].img : null, + // lrc: null, + // lrcUrl: item.lyricUrl, + // types, + // _types, + // typeUrl: {}, + // }) }) return list }, @@ -87,12 +114,13 @@ export default { if (limit != null) this.limit = limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 return this.musicSearch(str, page).then(result => { - if (!result || result.code !== '000000') return this.search(str, page, { limit }) - let list = this.handleResult(result.songResultData.resultList.flat()) + // console.log(result) + if (!result || result.success !== true) return Promise.reject(new Error(result ? result.info : '搜索失败')) + let list = result.musics ? this.handleResult(result.musics) : [] if (list == null) return this.search(str, page, { limit }) - this.total = parseInt(result.songResultData.totalCount) + this.total = parseInt(result.pgt) this.page = page this.allPage = Math.ceil(this.total / this.limit) @@ -103,6 +131,22 @@ export default { total: this.total, source: 'mg', }) + // if (!result || result.code !== '000000') return Promise.reject(new Error(result ? result.info : '搜索失败')) + // let list = this.handleResult(result.songResultData.resultList.flat()) + + // if (list == null) return this.search(str, page, { limit }) + + // this.total = parseInt(result.songResultData.totalCount) + // this.page = page + // this.allPage = Math.ceil(this.total / this.limit) + + // return Promise.resolve({ + // list, + // allPage: this.allPage, + // limit: this.limit, + // total: this.total, + // source: 'mg', + // }) }) }, }