diff --git a/src/renderer/utils/music/kw/songList.js b/src/renderer/utils/music/kw/songList.js index 65c87f36..f507bc03 100644 --- a/src/renderer/utils/music/kw/songList.js +++ b/src/renderer/utils/music/kw/songList.js @@ -21,6 +21,7 @@ export default { }, ], regExps: { + mInfo: /bitrate:(\d+),format:(\w+),size:([\w.]+)/, // http://www.kuwo.cn/playlist_detail/2886046289 // https://m.kuwo.cn/h5app/playlist/2736267853?t=qqfriend listDetailLink: /^.+\/playlist(?:_detail)?\/(\d+)(?:\?.*|&.*$|#.*$|$)/, @@ -189,29 +190,42 @@ export default { }) }, filterListDetail(rawData) { - // console.log(rawList) - return rawData.map((item, inedx) => { - let formats = item.formats.split('|') + // console.log(rawData) + return rawData.map(item => { + let infoArr = item.MINFO.split(';') let types = [] let _types = {} - if (formats.includes('MP3128')) { - types.push({ type: '128k', size: null }) - _types['128k'] = { - size: null, - } - } - if (formats.includes('MP3H')) { - types.push({ type: '320k', size: null }) - _types['320k'] = { - size: null, - } - } - if (formats.includes('ALFLAC')) { - types.push({ type: 'flac', size: null }) - _types.flac = { - size: null, + for (let info of infoArr) { + info = info.match(this.regExps.mInfo) + if (info) { + switch (info[2]) { + case 'flac': + types.push({ type: 'flac', size: info[3] }) + _types.flac = { + size: info[3].toLocaleUpperCase(), + } + break + case 'mp3': + switch (info[1]) { + case '320': + types.push({ type: '320k', size: info[3] }) + _types['320k'] = { + size: info[3].toLocaleUpperCase(), + } + break + case '192': + case '128': + types.push({ type: '128k', size: info[3] }) + _types['128k'] = { + size: info[3].toLocaleUpperCase(), + } + break + } + break + } } } + types.reverse() return { singer: formatSinger(decodeName(item.artist)),