From 64febaced84fe1e049a4c3b3c715946221731971 Mon Sep 17 00:00:00 2001 From: Folltoshe Date: Tue, 11 Apr 2023 23:25:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/utils/musicSdk/kg/songList.js | 12 +++++++-- src/renderer/utils/musicSdk/mg/musicSearch.js | 27 +++++++------------ src/renderer/utils/musicSdk/mg/util.js | 2 +- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/renderer/utils/musicSdk/kg/songList.js b/src/renderer/utils/musicSdk/kg/songList.js index 0dfc82f3..6bc02ef7 100644 --- a/src/renderer/utils/musicSdk/kg/songList.js +++ b/src/renderer/utils/musicSdk/kg/songList.js @@ -568,9 +568,9 @@ export default { const requestObj_listDetail = httpFetch(link) return requestObj_listDetail.promise.then(async({ body }) => { if (!body.data.info) return this.getListDetail(id, page, ++tryNum) - let listData = body.data.info + let listData = await Promise.all(this.createTask(body.data.info.map(item => ({ hash: item.hash })))).then(([...datas]) => datas.flat()) let listInfo = await this.getSpecialListInfo(id) - listData = this.filterDatav9(listData) + listData = this.filterData2(listData) return { list: listData, page: 1, @@ -738,6 +738,14 @@ export default { hash: item.audio_info.hash_flac, } } + if (item.audio_info.filesize_high !== '0') { + let size = sizeFormate(parseInt(item.audio_info.filesize_high)) + types.push({ type: 'flac24bit', size, hash: item.audio_info.hash_high }) + _types.flac24bit = { + size, + hash: item.audio_info.hash_high, + } + } list.push({ singer: decodeName(item.author_name), name: decodeName(item.ori_audio_name), diff --git a/src/renderer/utils/musicSdk/mg/musicSearch.js b/src/renderer/utils/musicSdk/mg/musicSearch.js index c78c8705..03caa044 100644 --- a/src/renderer/utils/musicSdk/mg/musicSearch.js +++ b/src/renderer/utils/musicSdk/mg/musicSearch.js @@ -1,9 +1,6 @@ -// import '../../polyfill/array.find' import { httpFetch } from '../../request' import { sizeFormate, formatPlayTime } from '../../index' -import { encode } from './util' -// import { debug } from '../../utils/env' -// import { formatSinger } from './util' +import { sign } from './util' export default { limit: 20, @@ -11,27 +8,21 @@ export default { page: 0, allPage: 1, musicSearch(str, page, limit) { - const timestamp = Date.now() - const encodeData = encode(str, timestamp) + const time = Date.now() + const signData = sign(str, time) const searchRequest = httpFetch(`https://jadeite.migu.cn/music_search/v3/search/searchAll?pageNo=${page}&pageSize=${limit}&sort=0&text=${encodeURI(str)}&searchSwitch={"song":1}&isCopyright=1&isCorrect=1`, { headers: { - // sign: 'c3b7ae985e2206e97f1b2de8f88691e2', - // timestamp: 1578225871982, - // appId: 'yyapp2', - // mode: 'android', - // ua: 'Android_migu', - // version: '6.9.4', - // osVersion: 'android 10.0', uiVersion: 'A_music_3.6.1', - deviceId: encodeData.deviceId, - timestamp: timestamp.toString(), - sign: encodeData.sign, - 'User-Agent': 'Mozilla/5.0 (Linux; U; Android 11.0.0; zh-cn; MI 11 Build/OPR1.170623.032) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', + deviceId: signData.deviceId, + timestamp: time.toString(), + sign: signData.sign, channel: '0146921', + 'User-Agent': 'Mozilla/5.0 (Linux; U; Android 11.0.0; zh-cn; MI 11 Build/OPR1.170623.032) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', }, }) // searchRequest = httpFetch(`http://pd.musicapp.migu.cn/MIGUM2.0/v1.0/content/search_all.do?ua=Android_migu&version=5.0.1&text=${encodeURIComponent(str)}&pageNo=${page}&pageSize=${limit}&searchSwitch=%7B%22song%22%3A1%2C%22album%22%3A0%2C%22singer%22%3A0%2C%22tagSong%22%3A0%2C%22mvSong%22%3A0%2C%22songlist%22%3A0%2C%22bestShow%22%3A1%7D`, { // 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`, { + // 旧版接口 // 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) }, @@ -76,7 +67,7 @@ export default { size, } break - case 'ZQ': + case 'ZQ24': size = sizeFormate(type.asize ?? type.isize) types.push({ type: 'flac24bit', size }) _types.flac24bit = { diff --git a/src/renderer/utils/musicSdk/mg/util.js b/src/renderer/utils/musicSdk/mg/util.js index 43f4178d..9c62c5c5 100644 --- a/src/renderer/utils/musicSdk/mg/util.js +++ b/src/renderer/utils/musicSdk/mg/util.js @@ -1,6 +1,6 @@ import { toMD5 } from '../utils' -export const encode = (keyword, timestamp) => { +export const sign = (keyword, timestamp) => { const deviceId = '963B7AA0D21511ED807EE5846EC87D16' const signatureMd5 = '6cdc72a439cef99a3418d2a78aa28c73' const text = `${keyword}${signatureMd5}yyapp2d16148780a1dcc7408e06336b98cfd50${deviceId}${timestamp}`