From 914e73893179713349ca6d91109a14288fea0adf Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 13 Jan 2020 12:49:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8=E7=BA=BF=E9=9F=B3?= =?UTF-8?q?=E4=B9=90=E5=88=97=E8=A1=A8=E8=8E=B7=E5=8F=96=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=E6=97=A0=E9=99=90=E5=BE=AA=E7=8E=AF=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=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/bd/musicSearch.js | 7 ++++--- src/renderer/utils/music/kg/musicSearch.js | 7 ++++--- src/renderer/utils/music/kw/leaderboard.js | 7 ++++--- src/renderer/utils/music/kw/musicSearch.js | 6 ++++-- src/renderer/utils/music/kw/songList.js | 2 +- src/renderer/utils/music/mg/musicSearch.js | 5 +++-- src/renderer/utils/music/wy/musicSearch.js | 7 ++++--- 8 files changed, 25 insertions(+), 17 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 0ed14f8c..473e0ec4 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -14,6 +14,7 @@ - 修复咪咕源无法搜索的问题 - 修复更新弹窗底部文字颜色没有适配当前主题颜色的问题 - 修复导入设置窗口大小、代理设置不立即生效的问题 +- 修复在线音乐列表获取失败时无限循环请求的问题 ### 其他 diff --git a/src/renderer/utils/music/bd/musicSearch.js b/src/renderer/utils/music/bd/musicSearch.js index 95c3e4b7..d1b00903 100644 --- a/src/renderer/utils/music/bd/musicSearch.js +++ b/src/renderer/utils/music/bd/musicSearch.js @@ -64,14 +64,15 @@ export default { }) return list }, - search(str, page = 1, { limit } = {}) { + search(str, page = 1, { limit } = {}, retryNum = 0) { + if (++retryNum > 3) return Promise.reject(new Error('try max num')) if (limit != null) this.limit = limit return this.musicSearch(str, page).then(result => { - if (!result || result.error_code !== 22000) return this.search(str, page, { limit }) + if (!result || result.error_code !== 22000) return this.search(str, page, { limit }, retryNum) let list = this.handleResult(result.result.song_info.song_list) - if (list == null) return this.search(str, page, { limit }) + if (list == null) return this.search(str, page, { limit }, retryNum) this.total = result.result.song_info.total this.page = page diff --git a/src/renderer/utils/music/kg/musicSearch.js b/src/renderer/utils/music/kg/musicSearch.js index 726a27cd..62f8b61a 100644 --- a/src/renderer/utils/music/kg/musicSearch.js +++ b/src/renderer/utils/music/kg/musicSearch.js @@ -68,14 +68,15 @@ export default { }) return list }, - search(str, page = 1, { limit } = {}) { + search(str, page = 1, { limit } = {}, retryNum = 0) { + if (++retryNum > 3) return Promise.reject(new Error('try max num')) if (limit != null) this.limit = limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 return this.musicSearch(str, page).then(result => { - if (!result || result.errcode !== 0) return this.search(str, page, { limit }) + if (!result || result.errcode !== 0) return this.search(str, page, { limit }, retryNum) let list = this.handleResult(result.data.info) - if (list == null) return this.search(str, page, { limit }) + if (list == null) return this.search(str, page, { limit }, retryNum) this.total = result.data.total this.page = page diff --git a/src/renderer/utils/music/kw/leaderboard.js b/src/renderer/utils/music/kw/leaderboard.js index 76559ee4..d0373b84 100644 --- a/src/renderer/utils/music/kw/leaderboard.js +++ b/src/renderer/utils/music/kw/leaderboard.js @@ -169,17 +169,18 @@ export default { } }) }, - loadData(p1, p2, page, bangid) { + loadData(p1, p2, page, bangid, retryNum = 0) { + if (++retryNum > 3) return Promise.reject(new Error('try max num')) return Promise.all([p1, p2]).then(([data1, data2]) => { // console.log(data1, data2) if (!data1.musiclist.length) { return this.loadData(this.getData(this.getUrl(page, this.limit, bangid)), data2.data.musicList.length ? Promise.resolve(data2) - : this.getData2(this.getUrl2(page, this.limit, bangid)), page, bangid) + : this.getData2(this.getUrl2(page, this.limit, bangid)), page, bangid, retryNum) } if (!data2.data.musicList.length) { - return this.loadData(Promise.resolve(data1), this.getData2(this.getUrl2(page, this.limit, bangid)), page, bangid) + return this.loadData(Promise.resolve(data1), this.getData2(this.getUrl2(page, this.limit, bangid)), page, bangid, retryNum) } return Promise.resolve([data1, data2]) }) diff --git a/src/renderer/utils/music/kw/musicSearch.js b/src/renderer/utils/music/kw/musicSearch.js index ed80758a..5021834e 100644 --- a/src/renderer/utils/music/kw/musicSearch.js +++ b/src/renderer/utils/music/kw/musicSearch.js @@ -121,11 +121,13 @@ export default { } return result }, - search(str, page = 1, { limit } = {}) { + search(str, page = 1, { limit } = {}, retryNum = 0) { + if (retryNum > 2) return Promise.reject(new Error('try max num')) if (limit != null) this.limit = limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 return this.musicSearch(str, page).then(result => { - if (!result || (result.TOTAL !== '0' && result.SHOW === '0')) return this.search(str, page, { limit }) + if (!result || (result.TOTAL !== '0' && result.SHOW === '0')) return this.search(str, page, { limit }, ++retryNum) + console.log(result) let list = this.handleResult(result.abslist) if (list == null) return this.search(str, page, { limit }) diff --git a/src/renderer/utils/music/kw/songList.js b/src/renderer/utils/music/kw/songList.js index d06d2330..38de9bf9 100644 --- a/src/renderer/utils/music/kw/songList.js +++ b/src/renderer/utils/music/kw/songList.js @@ -93,7 +93,7 @@ export default { this._requestObj_list = httpFetch(this.getListUrl({ sortId, id, type, page })) return this._requestObj_list.promise.then(({ body }) => { if (!id || type == '10000') { - if (body.code !== this.successCode) return this.getList(sortId, id, type, page, ++tryNum) + if (body.code !== this.successCode) return this.getList(sortId, tagId, page, ++tryNum) return { list: this.filterList(body.data.data), total: body.data.total, diff --git a/src/renderer/utils/music/mg/musicSearch.js b/src/renderer/utils/music/mg/musicSearch.js index 5529a2d4..24f4d629 100644 --- a/src/renderer/utils/music/mg/musicSearch.js +++ b/src/renderer/utils/music/mg/musicSearch.js @@ -110,7 +110,8 @@ export default { }) return list }, - search(str, page = 1, { limit } = {}) { + search(str, page = 1, { limit } = {}, retryNum = 0) { + if (++retryNum > 3) return Promise.reject(new Error('try max num')) if (limit != null) this.limit = limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 return this.musicSearch(str, page).then(result => { @@ -118,7 +119,7 @@ export default { 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 }) + if (list == null) return this.search(str, page, { limit }, retryNum) this.total = parseInt(result.pgt) this.page = page diff --git a/src/renderer/utils/music/wy/musicSearch.js b/src/renderer/utils/music/wy/musicSearch.js index 0de96087..bd081e9a 100644 --- a/src/renderer/utils/music/wy/musicSearch.js +++ b/src/renderer/utils/music/wy/musicSearch.js @@ -77,14 +77,15 @@ export default { } }) }, - search(str, page = 1, { limit } = {}) { + search(str, page = 1, { limit } = {}, retryNum = 0) { + if (++retryNum > 3) return Promise.reject(new Error('try max num')) if (limit != null) this.limit = limit return this.musicSearch(str, page).then(result => { // console.log(JSON.stringify(result)) - if (!result || result.code !== 200) return this.search(str, page, { limit }) + if (!result || result.code !== 200) return this.search(str, page, { limit }, retryNum) let list = this.handleResult(result.result.songs) - if (list == null) return this.search(str, page, { limit }) + if (list == null) return this.search(str, page, { limit }, retryNum) this.total = result.result.songCount this.page = page