From e75863e99d6d2bc3c8c699de41d89df81a7788fd Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 10 Apr 2022 22:25:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=B3=E8=BF=87=E7=A9=BA=E7=99=BD=E6=AD=8C?= =?UTF-8?q?=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/store/modules/download.js | 6 +++--- src/renderer/store/modules/player.js | 6 +++--- src/renderer/utils/music/kw/lyric.js | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/renderer/store/modules/download.js b/src/renderer/store/modules/download.js index e7a96a89..3aa9e885 100644 --- a/src/renderer/store/modules/download.js +++ b/src/renderer/store/modules/download.js @@ -153,6 +153,7 @@ const getPic = function(musicInfo, retryedSource = [], originMusic) { }) } +const existTimeExp = /\[\d{1,2}:.*\d{1,4}\]/ const handleGetLyric = function(musicInfo, retryedSource = [], originMusic) { if (!originMusic) originMusic = musicInfo let reqPromise @@ -162,8 +163,7 @@ const handleGetLyric = function(musicInfo, retryedSource = [], originMusic) { reqPromise = Promise.reject(err) } return reqPromise.then(lyricInfo => { - if (!lyricInfo.lyric.trim()) return Promise.reject(new Error('failed')) - return lyricInfo + return existTimeExp.test(lyricInfo.lyric) ? lyricInfo : Promise.reject(new Error('failed')) }).catch(err => { // console.log(err) if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) @@ -184,7 +184,7 @@ const handleGetLyric = function(musicInfo, retryedSource = [], originMusic) { const getLyric = function(musicInfo, isUseOtherSource, isS2t) { return getLyricFromStorage(musicInfo).then(lrcInfo => { return ( - lrcInfo.lyric && lrcInfo.lyric.trim() + existTimeExp.test(lrcInfo.lyric) ? Promise.resolve({ lyric: lrcInfo.lyric, tlyric: lrcInfo.tlyric || '' }) : ( isUseOtherSource diff --git a/src/renderer/store/modules/player.js b/src/renderer/store/modules/player.js index f90ab7e4..0aa7a89f 100644 --- a/src/renderer/store/modules/player.js +++ b/src/renderer/store/modules/player.js @@ -150,6 +150,7 @@ const getPic = function(musicInfo, retryedSource = [], originMusic) { }) }) } +const existTimeExp = /\[\d{1,2}:.*\d{1,4}\]/ const getLyric = function(musicInfo, retryedSource = [], originMusic) { if (!originMusic) originMusic = musicInfo let reqPromise @@ -159,8 +160,7 @@ const getLyric = function(musicInfo, retryedSource = [], originMusic) { reqPromise = Promise.reject(err) } return reqPromise.then(lyricInfo => { - if (!lyricInfo.lyric.trim()) return Promise.reject(new Error('failed')) - return lyricInfo + return existTimeExp.test(lyricInfo.lyric) ? lyricInfo : Promise.reject(new Error('failed')) }).catch(err => { if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) return this.dispatch('list/getOtherSource', originMusic).then(otherSource => { @@ -216,7 +216,7 @@ const actions = { const lrcInfo = await getStoreLyric(musicInfo) // lrcInfo = {} // if (lrcRequest && lrcRequest.cancelHttp) lrcRequest.cancelHttp() - if (lrcInfo.lyric && lrcInfo.lyric.trim() && lrcInfo.tlyric != null) { + if (existTimeExp.test(lrcInfo.lyric) && lrcInfo.tlyric != null) { // if (musicInfo.lrc.startsWith('\ufeff[id:$00000000]')) { // let str = musicInfo.lrc.replace('\ufeff[id:$00000000]\n', '') // commit('setLrc', { musicInfo, lyric: str, tlyric: musicInfo.tlrc, lxlyric: musicInfo.tlrc }) diff --git a/src/renderer/utils/music/kw/lyric.js b/src/renderer/utils/music/kw/lyric.js index 8e508f68..d828fa44 100644 --- a/src/renderer/utils/music/kw/lyric.js +++ b/src/renderer/utils/music/kw/lyric.js @@ -91,6 +91,7 @@ const buildParams = (id, isGetLyricx) => { // console.log(buildParams('207527604', true)) const timeExp = /^\[([\d:.]*)\]{1}/g +const existTimeExp = /\[\d{1,2}:.*\d{1,4}\]/ export default { sortLrcArr(arr) { const lrcSet = new Set() @@ -201,7 +202,7 @@ export default { lrcInfo.lxlyric = '' } lrcInfo.lyric = lrcInfo.lyric.replace(lrcTools.rxps.wordTimeAll, '') - if (!lrcInfo.lyric.trim()) return Promise.reject(new Error('Get lyric failed')) + if (!existTimeExp.test(lrcInfo.lyric)) return Promise.reject(new Error('Get lyric failed')) // console.log(lrcInfo) return lrcInfo })