diff --git a/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts b/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts index 877ca659..174ad17d 100644 --- a/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts +++ b/src/plugins/synced-lyrics/renderer/lyrics/fetch.ts @@ -19,13 +19,6 @@ export const [differentDuration, setDifferentDuration] = createSignal(false); // eslint-disable-next-line prefer-const export let foundPlainTextLyrics = false; -export type SongData = { - title: string; - artist: string; - album: string; - songDuration: number; -}; - export const extractTimeAndText = ( line: string, index: number, @@ -33,7 +26,7 @@ export const extractTimeAndText = ( const groups = /\[(\d+):(\d+)\.(\d+)\](.+)/.exec(line); if (!groups) return null; - const [_, rMinutes, rSeconds, rMillis, text] = groups; + const [, rMinutes, rSeconds, rMillis, text] = groups; const [minutes, seconds, millis] = [ parseInt(rMinutes), parseInt(rSeconds), @@ -46,7 +39,7 @@ export const extractTimeAndText = ( return { index, timeInMs, - time: `${minutes}:${seconds}:${millis}`, + time: `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}:${millis}`, text: text?.trim() ?? config()!.defaultTextString, status: 'upcoming', duration: 0, @@ -55,7 +48,7 @@ export const extractTimeAndText = ( export const makeLyricsRequest = async (extractedSongInfo: SongInfo) => { setLineLyrics([]); - const songData: SongData = { + const songData: Parameters[0] = { title: `${extractedSongInfo.title}`, artist: `${extractedSongInfo.artist}`, album: `${extractedSongInfo.album}`, @@ -67,7 +60,7 @@ export const makeLyricsRequest = async (extractedSongInfo: SongInfo) => { }; export const getLyricsList = async ( - songData: SongData, + songData: Pick, ): Promise => { setIsFetching(true); setIsInstrumental(false); @@ -80,7 +73,7 @@ export const getLyricsList = async ( track_name: songData.title, }); - if (songData.album?.length ?? 0 > 1) { + if (songData.album) { query.set('album_name', songData.album); } @@ -174,14 +167,14 @@ export const getLyricsList = async ( // Add a blank line at the beginning raw.unshift('[0:0.0] '); - const syncedLyricList = []; - - for (let idx = 0; idx < raw.length; idx++) { - const syncedLine = extractTimeAndText(raw[idx], idx); + const syncedLyricList = raw.reduce((acc, line, index) => { + const syncedLine = extractTimeAndText(line, index); if (syncedLine) { - syncedLyricList.push(syncedLine); + acc.push(syncedLine); } - } + + return acc; + }, []); for (const line of syncedLyricList) { const next = syncedLyricList[line.index + 1];