优化歌词解析

This commit is contained in:
lyswhut
2025-08-11 13:49:26 +08:00
parent af2623d16c
commit eab7bc3f5f
+4 -4
View File
@@ -53,14 +53,14 @@ export const parseLyric = (lrc: string): LX.Music.LyricInfo => {
name: 'rlyric', name: 'rlyric',
verify: verifylrc, verify: verifylrc,
}, },
rxp: /(?:^|\n\s*)\[(?:awlrc):([^\]]+)]/i,
rxp2: /^(lrc|awlrc|tlrc|rlrc):([^,]+)$/i,
} as const } as const
const tagRxp = /(?:^|\n\s*)\[awlrc:([^\]]+)]/i
const lrcRxp = /^(lrc|awlrc|tlrc|rlrc):([^,]+)$/i
const parse = (content: string) => { const parse = (content: string) => {
const lyricInfo: Partial<LX.Music.LyricInfo> = {} const lyricInfo: Partial<LX.Music.LyricInfo> = {}
const lrcs = content.trim().split(',') const lrcs = content.trim().split(',')
for (const lrc of lrcs) { for (const lrc of lrcs) {
const result = lrcTags.rxp2.exec(lrc.trim()) const result = lrcRxp.exec(lrc.trim())
if (!result) continue if (!result) continue
const target = lrcTags[result[1].toLowerCase() as 'tlrc' | 'rlrc' | 'lrc' | 'awlrc'] const target = lrcTags[result[1].toLowerCase() as 'tlrc' | 'rlrc' | 'lrc' | 'awlrc']
if (!target) continue if (!target) continue
@@ -70,7 +70,7 @@ export const parseLyric = (lrc: string): LX.Music.LyricInfo => {
return lyricInfo return lyricInfo
} }
let parsedInfo: Partial<LX.Music.LyricInfo> = {} let parsedInfo: Partial<LX.Music.LyricInfo> = {}
let lyric = lrc.replace(lrcTags.rxp, (_: string, p1: string) => { let lyric = lrc.replace(tagRxp, (_: string, p1: string) => {
parsedInfo = parse(p1) parsedInfo = parse(p1)
return '' return ''
}).trim() }).trim()