mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-15 20:31:46 +00:00
fix(synced-lyrics): fix text extract logic
This commit is contained in:
@ -8,20 +8,16 @@ import { setDebugInfo, setLineLyrics } from '../components/LyricsContainer';
|
|||||||
import type { SongInfo } from '@/providers/song-info';
|
import type { SongInfo } from '@/providers/song-info';
|
||||||
import type { LineLyrics, LRCLIBSearchResponse } from '../../types';
|
import type { LineLyrics, LRCLIBSearchResponse } from '../../types';
|
||||||
|
|
||||||
// prettier-ignore
|
|
||||||
export const [isInstrumental, setIsInstrumental] = createSignal(false);
|
export const [isInstrumental, setIsInstrumental] = createSignal(false);
|
||||||
// prettier-ignore
|
|
||||||
export const [isFetching, setIsFetching] = createSignal(false);
|
export const [isFetching, setIsFetching] = createSignal(false);
|
||||||
// prettier-ignore
|
|
||||||
export const [hadSecondAttempt, setHadSecondAttempt] = createSignal(false);
|
export const [hadSecondAttempt, setHadSecondAttempt] = createSignal(false);
|
||||||
// prettier-ignore
|
|
||||||
export const [differentDuration, setDifferentDuration] = createSignal(false);
|
export const [differentDuration, setDifferentDuration] = createSignal(false);
|
||||||
|
|
||||||
export const extractTimeAndText = (
|
export const extractTimeAndText = (
|
||||||
line: string,
|
line: string,
|
||||||
index: number,
|
index: number,
|
||||||
): LineLyrics | null => {
|
): LineLyrics | null => {
|
||||||
const groups = /\[(\d+):(\d+)\.(\d+)\](.+)/.exec(line);
|
const groups = /\[(\d+):(\d+)\.(\d+)](.+)/.exec(line);
|
||||||
if (!groups) return null;
|
if (!groups) return null;
|
||||||
|
|
||||||
const [, rMinutes, rSeconds, rMillis, text] = groups;
|
const [, rMinutes, rSeconds, rMillis, text] = groups;
|
||||||
@ -31,14 +27,13 @@ export const extractTimeAndText = (
|
|||||||
parseInt(rMillis),
|
parseInt(rMillis),
|
||||||
];
|
];
|
||||||
|
|
||||||
// prettier-ignore
|
|
||||||
const timeInMs = (minutes * 60 * 1000) + (seconds * 1000) + millis;
|
const timeInMs = (minutes * 60 * 1000) + (seconds * 1000) + millis;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
index,
|
index,
|
||||||
timeInMs,
|
timeInMs,
|
||||||
time: `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}:${millis}`,
|
time: `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}:${millis}`,
|
||||||
text: text?.trim().length ? text?.trim() : config()!.defaultTextString,
|
text: text?.trim() || config()!.defaultTextString,
|
||||||
status: 'upcoming',
|
status: 'upcoming',
|
||||||
duration: 0,
|
duration: 0,
|
||||||
};
|
};
|
||||||
@ -123,7 +118,7 @@ export const getLyricsList = async (
|
|||||||
setHadSecondAttempt(true);
|
setHadSecondAttempt(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
const filteredResults = [];
|
const filteredResults: LRCLIBSearchResponse = [];
|
||||||
for (const item of data) {
|
for (const item of data) {
|
||||||
const { artist } = songData;
|
const { artist } = songData;
|
||||||
const { artistName } = item;
|
const { artistName } = item;
|
||||||
|
|||||||
Reference in New Issue
Block a user