diff --git a/publish/changeLog.md b/publish/changeLog.md index e98d237b..4fca36d7 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -5,3 +5,4 @@ ### 修复 - 修复某些情况下自动换源的时间过长时会终止换源自动切歌的问题 +- 修复自动换源导致的搜索列表每页变成10条数据的问题 diff --git a/src/renderer/utils/music/bd/musicSearch.js b/src/renderer/utils/music/bd/musicSearch.js index d1b00903..c7574b81 100644 --- a/src/renderer/utils/music/bd/musicSearch.js +++ b/src/renderer/utils/music/bd/musicSearch.js @@ -11,9 +11,9 @@ export default { total: 0, page: 0, allPage: 1, - musicSearch(str, page) { + musicSearch(str, page, limit) { if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() - searchRequest = httpFetch(`http://tingapi.ting.baidu.com/v1/restserver/ting?from=android&version=5.6.5.6&method=baidu.ting.search.merge&format=json&query=${encodeURIComponent(str)}&page_no=${page}&page_size=${this.limit}&type=0&data_source=0&use_cluster=1`) + searchRequest = httpFetch(`http://tingapi.ting.baidu.com/v1/restserver/ting?from=android&version=5.6.5.6&method=baidu.ting.search.merge&format=json&query=${encodeURIComponent(str)}&page_no=${page}&page_size=${limit}&type=0&data_source=0&use_cluster=1`) return searchRequest.promise.then(({ body }) => body) }, handleResult(rawData) { @@ -66,9 +66,9 @@ export default { }, search(str, page = 1, { limit } = {}, retryNum = 0) { if (++retryNum > 3) return Promise.reject(new Error('try max num')) - if (limit != null) this.limit = limit + if (limit == null) limit = this.limit - return this.musicSearch(str, page).then(result => { + return this.musicSearch(str, page, limit).then(result => { if (!result || result.error_code !== 22000) return this.search(str, page, { limit }, retryNum) let list = this.handleResult(result.result.song_info.song_list) @@ -76,12 +76,12 @@ export default { this.total = result.result.song_info.total this.page = page - this.allPage = Math.ceil(this.total / this.limit) + this.allPage = Math.ceil(this.total / limit) return Promise.resolve({ list, allPage: this.allPage, - limit: this.limit, + limit: limit, total: this.total, source: 'bd', }) diff --git a/src/renderer/utils/music/kg/musicSearch.js b/src/renderer/utils/music/kg/musicSearch.js index 364229f1..13cb9f0b 100644 --- a/src/renderer/utils/music/kg/musicSearch.js +++ b/src/renderer/utils/music/kg/musicSearch.js @@ -11,9 +11,9 @@ export default { total: 0, page: 0, allPage: 1, - musicSearch(str, page) { + musicSearch(str, page, limit) { if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() - searchRequest = httpFetch(`http://ioscdn.kugou.com/api/v3/search/song?keyword=${encodeURIComponent(str)}&page=${page}&pagesize=${this.limit}&showtype=10&plat=2&version=7910&tag=1&correct=1&privilege=1&sver=5`) + searchRequest = httpFetch(`http://ioscdn.kugou.com/api/v3/search/song?keyword=${encodeURIComponent(str)}&page=${page}&pagesize=${limit}&showtype=10&plat=2&version=7910&tag=1&correct=1&privilege=1&sver=5`) return searchRequest.promise.then(({ body }) => body) }, handleResult(rawData) { @@ -71,9 +71,9 @@ export default { }, search(str, page = 1, { limit } = {}, retryNum = 0) { if (++retryNum > 3) return Promise.reject(new Error('try max num')) - if (limit != null) this.limit = limit + if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 - return this.musicSearch(str, page).then(result => { + return this.musicSearch(str, page, limit).then(result => { if (!result || result.errcode !== 0) return this.search(str, page, { limit }, retryNum) let list = this.handleResult(result.data.info) @@ -81,12 +81,12 @@ export default { this.total = result.data.total this.page = page - this.allPage = Math.ceil(this.total / this.limit) + this.allPage = Math.ceil(this.total / limit) return Promise.resolve({ list, allPage: this.allPage, - limit: this.limit, + limit, total: this.total, source: 'kg', }) diff --git a/src/renderer/utils/music/kw/musicSearch.js b/src/renderer/utils/music/kw/musicSearch.js index 4f201de9..8931d338 100644 --- a/src/renderer/utils/music/kw/musicSearch.js +++ b/src/renderer/utils/music/kw/musicSearch.js @@ -16,14 +16,14 @@ export default { page: 0, allPage: 1, // cancelFn: null, - musicSearch(str, page) { + musicSearch(str, page, limit) { if (this._musicSearchRequestObj != null) { cancelHttp(this._musicSearchRequestObj) this._musicSearchPromiseCancelFn(new Error('取消http请求')) } return new Promise((resolve, reject) => { this._musicSearchPromiseCancelFn = reject - this._musicSearchRequestObj = httpGet(`http://search.kuwo.cn/r.s?client=kt&all=${encodeURIComponent(str)}&pn=${page - 1}&rn=${this.limit}&uid=794762570&ver=kwplayer_ar_9.2.2.1&vipver=1&show_copyright_off=1&newver=1&ft=music&cluster=0&strategy=2012&encoding=utf8&rformat=json&vermerge=1&mobi=1&issubtitle=1`, (err, resp, body) => { + this._musicSearchRequestObj = httpGet(`http://search.kuwo.cn/r.s?client=kt&all=${encodeURIComponent(str)}&pn=${page - 1}&rn=${limit}&uid=794762570&ver=kwplayer_ar_9.2.2.1&vipver=1&show_copyright_off=1&newver=1&ft=music&cluster=0&strategy=2012&encoding=utf8&rformat=json&vermerge=1&mobi=1&issubtitle=1`, (err, resp, body) => { this._musicSearchRequestObj = null this._musicSearchPromiseCancelFn = null if (err) { @@ -125,9 +125,9 @@ export default { }, search(str, page = 1, { limit } = {}, retryNum = 0) { if (retryNum > 2) return Promise.reject(new Error('try max num')) - if (limit != null) this.limit = limit + if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 - return this.musicSearch(str, page).then(result => { + return this.musicSearch(str, page, limit).then(result => { // console.log(result) if (!result || (result.TOTAL !== '0' && result.SHOW === '0')) return this.search(str, page, { limit }, ++retryNum) let list = this.handleResult(result.abslist) @@ -136,13 +136,13 @@ export default { this.total = parseInt(result.TOTAL) this.page = page - this.allPage = Math.ceil(this.total / this.limit) + this.allPage = Math.ceil(this.total / limit) return Promise.resolve({ list, allPage: this.allPage, total: this.total, - limit: this.limit, + limit, source: 'kw', }) }) diff --git a/src/renderer/utils/music/mg/musicSearch.js b/src/renderer/utils/music/mg/musicSearch.js index 8ed3d238..183a3d56 100644 --- a/src/renderer/utils/music/mg/musicSearch.js +++ b/src/renderer/utils/music/mg/musicSearch.js @@ -11,9 +11,9 @@ export default { total: 0, page: 0, allPage: 1, - musicSearch(str, page) { + musicSearch(str, page, limit) { if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() - searchRequest = httpFetch(`http://jadeite.migu.cn:7090/music_search/v2/search/searchAll?sid=4f87090d01c84984a11976b828e2b02c18946be88a6b4c47bcdc92fbd40762db&isCorrect=1&isCopyright=1&searchSwitch=%7B%22song%22%3A1%2C%22album%22%3A0%2C%22singer%22%3A0%2C%22tagSong%22%3A1%2C%22mvSong%22%3A0%2C%22bestShow%22%3A1%2C%22songlist%22%3A0%2C%22lyricSong%22%3A0%7D&pageSize=${this.limit}&text=${encodeURIComponent(str)}&pageNo=${page}&sort=0`, { + searchRequest = httpFetch(`http://jadeite.migu.cn:7090/music_search/v2/search/searchAll?sid=4f87090d01c84984a11976b828e2b02c18946be88a6b4c47bcdc92fbd40762db&isCorrect=1&isCopyright=1&searchSwitch=%7B%22song%22%3A1%2C%22album%22%3A0%2C%22singer%22%3A0%2C%22tagSong%22%3A1%2C%22mvSong%22%3A0%2C%22bestShow%22%3A1%2C%22songlist%22%3A0%2C%22lyricSong%22%3A0%7D&pageSize=${limit}&text=${encodeURIComponent(str)}&pageNo=${page}&sort=0`, { headers: { sign: 'c3b7ae985e2206e97f1b2de8f88691e2', timestamp: 1578225871982, @@ -25,7 +25,7 @@ export default { 'User-Agent': 'okhttp/3.9.1', }, }) - // 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(`https://app.c.nf.migu.cn/MIGUM2.0/v1.0/content/search_all.do?isCopyright=1&isCorrect=1&pageNo=${page}&pageSize=${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) { @@ -99,9 +99,9 @@ export default { }, search(str, page = 1, { limit } = {}, retryNum = 0) { if (++retryNum > 3) return Promise.reject(new Error('try max num')) - if (limit != null) this.limit = limit + if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 - return this.musicSearch(str, page).then(result => { + return this.musicSearch(str, page, limit).then(result => { // console.log(result) if (!result || result.code !== '000000') return Promise.reject(new Error(result ? result.info : '搜索失败')) const songResultData = result.songResultData || { resultList: [], totalCount: 0 } @@ -111,12 +111,12 @@ export default { this.total = parseInt(songResultData.totalCount) this.page = page - this.allPage = Math.ceil(this.total / this.limit) + this.allPage = Math.ceil(this.total / limit) return Promise.resolve({ list, allPage: this.allPage, - limit: this.limit, + limit, total: this.total, source: 'mg', }) diff --git a/src/renderer/utils/music/tx/musicSearch.js b/src/renderer/utils/music/tx/musicSearch.js index c2d21f92..db638542 100644 --- a/src/renderer/utils/music/tx/musicSearch.js +++ b/src/renderer/utils/music/tx/musicSearch.js @@ -12,13 +12,13 @@ export default { page: 0, allPage: 1, successCode: 0, - musicSearch(str, page, retryNum = 0) { + musicSearch(str, page, limit, retryNum = 0) { if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() if (retryNum > 5) return Promise.reject(new Error('搜索失败')) - searchRequest = httpFetch(`https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=sizer.yqq.song_next&searchid=49252838123499591&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=${page}&n=${this.limit}&w=${encodeURIComponent(str)}&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0`) + searchRequest = httpFetch(`https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=sizer.yqq.song_next&searchid=49252838123499591&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=${page}&n=${limit}&w=${encodeURIComponent(str)}&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0`) // searchRequest = httpFetch(`http://ioscdn.kugou.com/api/v3/search/song?keyword=${encodeURIComponent(str)}&page=${page}&pagesize=${this.limit}&showtype=10&plat=2&version=7910&tag=1&correct=1&privilege=1&sver=5`) return searchRequest.promise.then(({ body }) => { - if (body.code !== this.successCode) return this.musicSearch(str, page, ++retryNum) + if (body.code !== this.successCode) return this.musicSearch(str, page, limit, ++retryNum) return body.data }) }, @@ -86,19 +86,19 @@ export default { }) }, search(str, page = 1, { limit } = {}) { - if (limit != null) this.limit = limit + if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 - return this.musicSearch(str, page).then(({ song }) => { + return this.musicSearch(str, page, limit).then(({ song }) => { let list = this.handleResult(song.list) this.total = song.totalnum this.page = page - this.allPage = Math.ceil(this.total / this.limit) + this.allPage = Math.ceil(this.total / limit) return Promise.resolve({ list, allPage: this.allPage, - limit: this.limit, + limit, total: this.total, source: 'tx', }) diff --git a/src/renderer/utils/music/wy/musicSearch.js b/src/renderer/utils/music/wy/musicSearch.js index d7a40fd9..4fdf8558 100644 --- a/src/renderer/utils/music/wy/musicSearch.js +++ b/src/renderer/utils/music/wy/musicSearch.js @@ -9,7 +9,7 @@ export default { total: 0, page: 0, allPage: 1, - musicSearch(str, page) { + musicSearch(str, page, limit) { if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() searchRequest = httpFetch('https://music.163.com/weapi/search/get', { method: 'post', @@ -20,8 +20,8 @@ export default { form: weapi({ s: str, type: 1, // 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频 - limit: this.limit, - offset: this.limit * (page - 1), + limit, + offset: limit * (page - 1), }), }) return searchRequest.promise.then(({ body }) => @@ -29,13 +29,13 @@ export default { ? musicDetailApi.getList(body.result.songs.map(s => s.id)).then(({ list }) => { this.total = body.result.songCount || 0 this.page = page - this.allPage = Math.ceil(this.total / this.limit) + this.allPage = Math.ceil(this.total / limit) return { code: 200, data: { list, allPage: this.allPage, - limit: this.limit, + limit, total: this.total, source: 'wy', }, @@ -103,8 +103,8 @@ export default { }, */ 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 (limit == null) limit = this.limit + return this.musicSearch(str, page, limit).then(result => { // console.log(result) if (!result || result.code !== 200) return this.search(str, page, { limit }, retryNum) // let list = this.handleResult(result.result.songs || []) diff --git a/src/renderer/utils/music/xm/musicSearch.js b/src/renderer/utils/music/xm/musicSearch.js index b4a7ff6c..1971c190 100644 --- a/src/renderer/utils/music/xm/musicSearch.js +++ b/src/renderer/utils/music/xm/musicSearch.js @@ -11,13 +11,13 @@ export default { total: 0, page: 0, allPage: 1, - musicSearch(str, page) { + musicSearch(str, page, limit) { if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() searchRequest = xmRequest('/api/search/searchSongs', { key: str, pagingVO: { page: page, - pageSize: this.limit, + pageSize: limit, }, }) return searchRequest.promise.then(({ body }) => body) @@ -89,9 +89,9 @@ export default { }, search(str, page = 1, { limit } = {}, retryNum = 0) { if (++retryNum > 3) return Promise.reject(new Error('try max num')) - if (limit != null) this.limit = limit + if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 - return this.musicSearch(str, page).then(result => { + return this.musicSearch(str, page, limit).then(result => { if (!result) return this.search(str, page, { limit }, retryNum) if (result.code !== 'SUCCESS') return this.search(str, page, { limit }, retryNum) // const songResultData = result.data || { songs: [], total: 0 } @@ -101,12 +101,12 @@ export default { this.total = parseInt(result.result.data.pagingVO.count) this.page = page - this.allPage = Math.ceil(this.total / this.limit) + this.allPage = Math.ceil(this.total / limit) return Promise.resolve({ list, allPage: this.allPage, - limit: this.limit, + limit, total: this.total, source: 'xm', })