From 76a8742d614c6dc1d222869f905affe7bd9dacf9 Mon Sep 17 00:00:00 2001 From: memorydream <34763046+memorydream@users.noreply.github.com> Date: Tue, 11 Jan 2022 19:06:47 +0800 Subject: [PATCH] feat: better lyrics filter (#1210) * feat: better filter lyrics * change * replace filter text with RegExp * more change * add try catch * better author filter --- src/utils/lyrics.js | 6 +++++- src/views/lyrics.vue | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/utils/lyrics.js b/src/utils/lyrics.js index 1b2e064..aa7f23e 100644 --- a/src/utils/lyrics.js +++ b/src/utils/lyrics.js @@ -25,7 +25,11 @@ export function parseLyric(lrc) { const ms = Number(t.match(/\d*\]/i)[0].slice(0, 2)) / 100; const time = min * 60 + sec + ms; if (content !== '') { - lrcObj.push({ time: time, rawTime: timeRegExpArr[0], content }); + lrcObj.push({ + time: time, + rawTime: timeRegExpArr[0], + content: content.trim(), + }); } } } diff --git a/src/views/lyrics.vue b/src/views/lyrics.vue index d299408..76602b9 100644 --- a/src/views/lyrics.vue +++ b/src/views/lyrics.vue @@ -327,7 +327,23 @@ export default { return false; } else { let { lyric, tlyric } = lyricParser(data); - if (lyric.length === 1 && lyric[0].content === '纯音乐,请欣赏') { + lyric = lyric.filter( + l => !/^作(词|曲)\s*(:|:)\s*无$/.exec(l.content) + ); + let includeAM = + lyric.length <= 10 && + lyric.map(l => l.content).includes('纯音乐,请欣赏'); + if (includeAM) { + let reg = /^作(词|曲)\s*(:|:)\s*/; + let author = this.currentTrack?.ar[0]?.name; + lyric = lyric.filter(l => { + let regExpArr = l.content.match(reg); + return ( + !regExpArr || l.content.replace(regExpArr[0], '') !== author + ); + }); + } + if (lyric.length === 1 && includeAM) { this.lyric = []; this.tlyric = []; return false;