From f405907cda78df7af515c84c6daa789a7bc02765 Mon Sep 17 00:00:00 2001 From: Folltoshe Date: Thu, 8 Jun 2023 08:56:18 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dwy=E6=BA=90=E7=83=AD?= =?UTF-8?q?=E6=90=9C=E8=AF=8D=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/utils/musicSdk/wy/hotSearch.js | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/renderer/utils/musicSdk/wy/hotSearch.js b/src/renderer/utils/musicSdk/wy/hotSearch.js index 5ee4ffa4..ee1f9d20 100644 --- a/src/renderer/utils/musicSdk/wy/hotSearch.js +++ b/src/renderer/utils/musicSdk/wy/hotSearch.js @@ -1,5 +1,4 @@ -import { httpFetch } from '../../request' -import { weapi } from './utils/crypto' +import { eapiRequest } from './utils/index' export default { _requestObj: null, @@ -7,20 +6,15 @@ export default { if (this._requestObj) this._requestObj.cancelHttp() if (retryNum > 2) return Promise.reject(new Error('try max num')) - const _requestObj = httpFetch('https://music.163.com/weapi/search/hot', { - method: 'post', - headers: { - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36', - origin: 'https://music.163.com', - }, - form: weapi({ type: 1111 }), + const _requestObj = eapiRequest('/api/search/chart/detail', { + id: 'HOT_SEARCH_SONG#@#', }) const { body, statusCode } = await _requestObj.promise if (statusCode != 200 || body.code !== 200) throw new Error('获取热搜词失败') - // console.log(body) - return { source: 'wy', list: this.filterList(body.result.hots) } + + return { source: 'wy', list: this.filterList(body.data.itemList) } }, filterList(rawList) { - return rawList.map(item => item.first) + return rawList.map(item => item.searchWord) }, } From d93fbd699d00bc28c55f1295f04f30ed442d81bf Mon Sep 17 00:00:00 2001 From: Folltoshe Date: Thu, 8 Jun 2023 09:50:16 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dwy=E6=BA=90=E7=83=AD?= =?UTF-8?q?=E6=90=9C=E8=AF=8D=20(#1403)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复wy源热搜词失效 * 添加更新日志 --------- Co-authored-by: lyswhut --- publish/changeLog.md | 1 + src/renderer/utils/musicSdk/wy/hotSearch.js | 18 ++++++------------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index de5fa76c..572ad326 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -16,6 +16,7 @@ - 修复播放某些在线音频会没有声音的问题 - 修复改变播放速率时会导致歌词报错的问题 - 修复tx热门评论昵称被错误切割的问题 (#1397, By: @helloplhm-qwq, @Folltoshe) +- 修复wy源热搜词失效的问题(#1401, @Folltoshe) - 修复Deepin 20下启用桌面歌词时可能会导致桌面卡死的问题(#1288) ### 其他 diff --git a/src/renderer/utils/musicSdk/wy/hotSearch.js b/src/renderer/utils/musicSdk/wy/hotSearch.js index 5ee4ffa4..ee1f9d20 100644 --- a/src/renderer/utils/musicSdk/wy/hotSearch.js +++ b/src/renderer/utils/musicSdk/wy/hotSearch.js @@ -1,5 +1,4 @@ -import { httpFetch } from '../../request' -import { weapi } from './utils/crypto' +import { eapiRequest } from './utils/index' export default { _requestObj: null, @@ -7,20 +6,15 @@ export default { if (this._requestObj) this._requestObj.cancelHttp() if (retryNum > 2) return Promise.reject(new Error('try max num')) - const _requestObj = httpFetch('https://music.163.com/weapi/search/hot', { - method: 'post', - headers: { - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36', - origin: 'https://music.163.com', - }, - form: weapi({ type: 1111 }), + const _requestObj = eapiRequest('/api/search/chart/detail', { + id: 'HOT_SEARCH_SONG#@#', }) const { body, statusCode } = await _requestObj.promise if (statusCode != 200 || body.code !== 200) throw new Error('获取热搜词失败') - // console.log(body) - return { source: 'wy', list: this.filterList(body.result.hots) } + + return { source: 'wy', list: this.filterList(body.data.itemList) } }, filterList(rawList) { - return rawList.map(item => item.first) + return rawList.map(item => item.searchWord) }, } From 76981a59d473f1060e2190c6bc245a2f766dc62a Mon Sep 17 00:00:00 2001 From: lyswhut Date: Tue, 6 Jun 2023 12:20:29 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/defaultSetting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/defaultSetting.ts b/src/common/defaultSetting.ts index 422ebb18..1a9f896b 100644 --- a/src/common/defaultSetting.ts +++ b/src/common/defaultSetting.ts @@ -75,7 +75,7 @@ const defaultSetting: LX.AppSetting = { 'desktopLyric.height': 300, 'desktopLyric.x': null, 'desktopLyric.y': null, - 'desktopLyric.isLockScreen': true, + 'desktopLyric.isLockScreen': isWin, 'desktopLyric.isDelayScroll': true, 'desktopLyric.scrollAlign': 'center', 'desktopLyric.isHoverHide': false, From 988236e198b74a4caa41051675ba28cb976a0be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E7=8B=B8=E8=8A=B1=E5=96=B5?= Date: Thu, 8 Jun 2023 23:16:12 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0kg=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E8=AF=84=E8=AE=BA=E6=8E=A5=E5=8F=A3(cmtlist->newest)=20&=20kg?= =?UTF-8?q?=E6=BA=90=E6=AD=8C=E6=89=8B=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/utils/musicSdk/kg/comment.js | 2 +- src/renderer/utils/musicSdk/kg/singer.js | 59 +++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/renderer/utils/musicSdk/kg/singer.js diff --git a/src/renderer/utils/musicSdk/kg/comment.js b/src/renderer/utils/musicSdk/kg/comment.js index 91f9fe0f..7d40ffe2 100644 --- a/src/renderer/utils/musicSdk/kg/comment.js +++ b/src/renderer/utils/musicSdk/kg/comment.js @@ -10,7 +10,7 @@ export default { let timestamp = Date.now() const params = `appid=1005&clienttime=${timestamp}&clienttoken=0&clientver=11409&code=fc4be23b4e972707f36b8a828a93ba8a&dfid=0&extdata=${hash}&kugouid=0&mid=16249512204336365674023395779019&mixsongid=0&p=${page}&pagesize=${limit}&uuid=0&ver=10` - const _requestObj = httpFetch(`http://m.comment.service.kugou.com/v1/cmtlist?${params}&signature=${signatureParams(params)}`, { + const _requestObj = httpFetch(`http://m.comment.service.kugou.com/r/v1/rank/newest?${params}&signature=${signatureParams(params)}`, { headers: { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.24', }, diff --git a/src/renderer/utils/musicSdk/kg/singer.js b/src/renderer/utils/musicSdk/kg/singer.js new file mode 100644 index 00000000..0109c4a3 --- /dev/null +++ b/src/renderer/utils/musicSdk/kg/singer.js @@ -0,0 +1,59 @@ +import { httpFetch } from '../../request' +// import { decodeName, formatPlayTime, sizeFormate } from '../../index' +// import { signatureParams } from './util' +import { getMusicInfosByList } from './musicInfo' + +export default { + filterAlbum(rawList) { + let returnList = [] + rawList.forEach((albumInfo) => { + returnList.push({ + name: albumInfo.albumname, + author: albumInfo.singername, + img: albumInfo.replaceAll('{size}', '480'), + album_id: albumInfo.albumid, + }) + }) + }, + async getSingerInfo(singerid) { + if (singerid == 0) throw new Error('歌手不存在') // kg源某些歌曲在歌手没被kg收录时返回的歌手id为0 + const requestObj = httpFetch(`http://mobiles.kugou.com/api/v5/singer/info?singerid=${singerid}`) + let { body, statusCode } = await requestObj.promise + if (statusCode !== 200) throw new Error('获取歌手信息失败') + return { + source: 'kg', + singerid, + info: { + name: body.data.singername, + desc: body.data.intro, + img: body.data.imgurl.replace('{size}', '480') + } + } + }, + async getSingerSongList(singerid, page, limit) { + if (singerid == 0) throw new Error('歌手不存在') // kg源某些歌曲在歌手没被kg收录时返回的歌手id为0 + const requestObj = httpFetch(`http://mobiles.kugou.com/api/v5/singer/song?singerid=${singerid}&page=${page}&pagesize=${limit}`) + let { body, statusCode } = await requestObj.promise + if (statusCode !== 200) throw new Error('获取歌手歌曲列表失败') + let listData = await getMusicInfosByList(body.data.info) + return { + source: 'kg', + list: listData, + id: `kg__singer_${singerid}`, + singerid, + total: body.data.total, + allPage: Math.ceil(body.data.total / limit), + } + }, + async getSingerAlbumList(singerid, page, limit) { + if (singerid == 0) throw new Error('歌手不存在') // kg源某些歌曲在歌手没被kg收录时返回的歌手id为0 + const requestObj = httpFetch(`http://mobiles.kugou.com/api/v5/singer/song?singerid=${singerid}&page=${page}&pagesize=${limit}`) + let { body, statusCode } = await requestObj.promise + if (statusCode !== 200) throw new Error('获取歌手专辑列表失败') + return { + source: 'kg', + albums: this.filterAlbum(body.data.info), + singerid, + } + } +}