This commit is contained in:
2025-01-16 07:14:36 -05:00
parent 915b77fe19
commit d58f2f9413
5 changed files with 21 additions and 12 deletions

View File

@@ -32,7 +32,7 @@ class LRCLib:
self.matcher = utils.TrackMatcher()
self.cache = cache.Cache()
async def search(self, artist: str, song: str) -> Optional[LyricsResult]:
async def search(self, artist: str, song: str, plain: bool = True) -> Optional[LyricsResult]:
"""
@artist: the artist to search
@song: the song to search
@@ -81,14 +81,18 @@ class LRCLib:
if not isinstance(search_data[best_match_id]['trackName'], str):
raise InvalidResponseException(f"Invalid JSON: Cannot find trackName key.\n{search_data}")
if not isinstance(search_data[best_match_id]['plainLyrics'], str):
raise InvalidResponseException(f"Invalid JSON: Cannot find plainLyrics key.\n{search_data}")
returned_artist: str = search_data[best_match_id]['artistName']
returned_song: str = search_data[best_match_id]['trackName']
returned_lyrics: str = search_data[best_match_id]['plainLyrics']
returned_lyrics = self.datautils.scrub_lyrics(returned_lyrics)
if plain:
if not isinstance(search_data[best_match_id]['plainLyrics'], str):
raise InvalidResponseException(f"Invalid JSON: Cannot find plainLyrics key.\n{search_data}")
returned_lyrics: str = search_data[best_match_id]['plainLyrics']
returned_lyrics = self.datautils.scrub_lyrics(returned_lyrics)
else:
if not isinstance(search_data[best_match_id]['syncedLyrics'], str):
raise InvalidResponseException(f"Invalid JSON: Cannot find syncedLyrics key.\n{search_data}")
returned_lyrics: str = search_data[best_match_id]['syncedLyrics']
returned_track: str = f"{returned_artist} - {returned_song}"
(_matched, confidence) = self.matcher.find_best_match(input_track=input_track,
candidate_tracks=[(0, returned_track)])